如何将ParticleSystem位置设置为触摸位置?

时间:2018-03-12 18:51:27

标签: unity3d touch

我想将particleSystem位置设置为第一个触摸位置。 我使用下面的代码:

public ParticleSystem pSystem;
  Touch firstTouch;

     void LateUpdate(){


    if (Input.touchCount == 1) {    

                firstTouch = Input.GetTouch (0);

                if (firstTouch.phase == TouchPhase.Began) { 

                    pSystem.transform.position = new Vector3 (firstTouch.position.x, firstTouch.position.y, -3);

                    pSystem.Play ();            

                }

            }   

}

但是pSystem位置没有得到触摸的位置。知道我做错了吗?

2 个答案:

答案 0 :(得分:0)

我相信当你获得触摸坐标时,它们会被存储为Touch对象中的屏幕坐标。如果将这些坐标转换为世界空间,它们应该是您在世界中触摸的区域。查看Unity文档中的this link,可能会对您有所帮助。

答案 1 :(得分:0)

Vector3 touchWorld = Camera.main.ScreenToWorldPoint (new Vector3(firstTouch.position.x, firstTouch.position.y));
pSystem.transform.position = touchWorld;