0
我正在做一個對象跟隨我的手指的遊戲。但是如果我點擊屏幕上的任何地方,我不想讓對象跳到我的手指上。我正在使用光線投射來做到這一點。除非我的手指太快移動,物體會凍結,否則它會很好地工作。Raycast不工作在更新()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