Je le script suivantAddForce ne fonctionne pas dans l'unité
public class SpeedUp : MonoBehaviour {
public Rigidbody2D ball;
void OnTriggerEnter2D(Collider2D col)
{
if (col.tag == "Ball") {
ball.AddForce(Vector2.left * 1000f);
Debug.Log("ABC");
}
}
}
et chaque fois que je lance mon jeu, le debug.log (« ABC ») imprime ABC dans la console, mais le modèle du solide indéformable n » Je bouge, ça reste comme ça. Quelqu'un peut-il me expliquer pourquoi, parce que je ne comprends pas pourquoi le travail d'impression de la console et la ne se déplace pas modèle du solide indéformable
Voici le code pour le Bal
public class Ball : MonoBehaviour {
public Rigidbody2D rb;
public Rigidbody2D hook;
public float releaseTime = 0.15f;
private bool isPressed = false;
void Update()
{
if (isPressed)
{
Vector2 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
if (Vector3.Distance(mousePos, hook.position) > 2.5f)
{
rb.position = hook.position + (mousePos - hook.position).normalized * 2.5f;
}
else
{
rb.position = mousePos;
}
}
}
void OnMouseDown()
{
isPressed = true;
rb.isKinematic = true;
}
void OnMouseUp()
{
isPressed = false;
rb.isKinematic = false;
StartCoroutine(Release());
}
IEnumerator Release()
{
yield return new WaitForSeconds(releaseTime);
GetComponent<SpringJoint2D>().enabled = false;
this.enabled = false;
}
}
Le corps rigide est-il marqué comme cinématique? Pouvez-vous nous montrer une capture d'écran de ses paramètres? – Serlite
@Serlite la balle est cinématique lorsque la souris ne la touche pas, mais pour atteindre le collisionneur, la balle doit être tirée avec la souris et elle devient dynamique dès qu'elle est touchée – Edward
Il n'y a pas de problème avec le code lui-même - votre problème réside soit dans la façon dont le corps rigide de la balle est mis en place, soit dans l'interaction avec la souris et la balle que vous décrivez. – ryeMoss