根据Touch移动Sprite位置

时间:2015-02-01 05:09:26

标签: c# ios unity3d

我需要从触摸中获取输入,然后将精灵移动到该位置,这是我到目前为止所拥有的

public class PlayerContoller : MonoBehaviour {
    public Sprite Hands;
    public Vector2 HandsLocation;


    void Start () {


    }

    // Update is called once per frame
    void Update () {
        if (Input.touchCount > 0){
            KnifeTouch ();
        }
    }
    void KnifeTouch () {
        Input.GetTouch(0).position = HandsLocation

    }
}

由于

2 个答案:

答案 0 :(得分:1)

我没有使用mono或unity3d,我使用XNA,但我认为规则是相同的。

您的代码:

  

Input.GetTouch(0).position = HandsLocation

您是否尝试将HandsLocation设置为设备输入位置? 我想你可以阅读设备输入数据并将其用于你的行动。

您需要执行逆转操作:

  

HandsLocation = Input.GetTouch(0).position

现在您将输入数据存储在控制器中,然后使用它来移动精灵:

void Update () {
    if (Input.touchCount > 0){
        //KnifeTouch ();
        HandsLocation = Input.GetTouch(0).position; // store input position
    }
    // after read position, use it to move sprite
}

答案 1 :(得分:0)

将Input.GetTouch()。位置返回像素坐标转换为世界坐标,编写此代码。

  

Vector3 pos = Camera.main.ScreenToWorldPoint(Input.touches [0] .position);

将pos.z设置为object.tranform.position.z并将其分配给对象

obj.transform.position = pos;