0
マウスをクリックして速度を使用してマウスに向かってオブジェクトを移動しようとしていますが、オブジェクトをクリックすると通常は別の方向に移動します。私は基本的に別のプロジェクトのコードをコピーし、そのプロジェクトでは動作します。唯一の違いは、速度を設定するのではなく、もう1つのプロジェクトではAddForce
です。これが原因で何がやっているのですか?マウスクリックの方へ移動
using UnityEngine;
using System.Collections;
public class ShootBall : MonoBehaviour {
public float shootDelay = 0.03f;
public GameObject[] balls;
bool hasShot = false;
Vector3 clickPosition = Vector3.zero;
// Update is called once per frame
void Update() {
if (Input.GetMouseButtonUp(0) && !hasShot) {
hasShot = true;
Vector3 point = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Vector2 direction = point - transform.position;
StartCoroutine(Shoot(direction));
}
}
IEnumerator Shoot(Vector2 direction) {
foreach (GameObject ball in balls) {
float speed = ball.GetComponent<Ball>().speed;
ball.GetComponent<Ball>().rb.velocity = direction.normalized * speed;
yield return new WaitForSeconds(shootDelay);
}
}
}
それらのどちらもがそれを修正。 –
[方向]が正しいかどうかを確認するには、[Gizmos.DrawLine](https://docs.unity3d.com/ScriptReference/Gizmos.DrawLine.html)を使用してみてください。 – Iggy
実際のボールのボール[0] .transform.postionの代わりにmanagerオブジェクトの 'transform.position'を使っていました。 –