私はオブジェクトが私の指に追随するゲームを作っています。しかし、私は画面上のどこかをタップするとオブジェクトが私の指に飛びつくのを望んでいません。私はこれを行うためにレイキャストを使用しています。私が指を動かすのが速すぎる場合を除き、オブジェクトは凍っています。Update()でレイキャストが動作しないUnity c#
私の理論では、Update()
にあると、オブジェクトから指を離すと、ドラッグできなくなったことが検出されます。私はこれをどのように修正するのか分かりません。
public GameObject Bigball;
public GameObject Smallball;
// Update is called once per frame
void Update()
{
//lets ball follow finger
if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved || Input.GetTouch(0).phase
== TouchPhase.Stationary)
{
Touch touch = Input.GetTouch(0);
Vector3 fingerPos = touch.position;
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(fingerPos);
if (Physics.Raycast(ray, out hit) && (hit.collider.tag == "ball"))
{
Smallball.SetActive(false);
Bigball.SetActive(true);
Vector3 pos;
pos = new Vector3((Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position)).x,
(Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position)).y, 0);
Bigball.transform.position = pos;
}
}
else
{
Bigball.SetActive(false);
Smallball.SetActive(true);
Smallball.transform.position = new Vector3(Bigball.transform.position.x, Bigball.transform.position.y, 0);
}
}
あなたはuiドラッグを使うことができますが、たぶんスピードを加えて剛体に役立ちます。 – Bijan