c#向移动触摸方向发展

本文关键字:方向 触摸 移动 | 更新日期: 2023-09-27 18:03:45

我目前正在开发一款游戏,当用户点击屏幕(敌人)时,子弹会从镜头移动到触碰的位置杀死敌人。敌人位于距离摄像机(枪)10个单位的地方。

假设用户触摸(x,y) = 5,5,那么子弹应该从相机位置0,0,-10移动到5,5,0。

我创建了一个spawnPoint并连接到相机上,同时也将射击脚本连接到spawnPoint上。刚体弹丸是子弹预制体。

请帮帮我。

c#向移动触摸方向发展

float distance = 10f;
void Update()
{
    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
    Shoot(ray.GetPoint(distance));
}
public void Shoot(float point)
{
    // shoot from camera location to point here
}

下面的方法对于基于触摸的输入非常有效。

Vector3 fingerPos;

void Update () 
{
    if(Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)
    {
        fingerPos =  Input.GetTouch(0).position;        
        Vector3 pos = fingerPos;
        pos.z = 5;
        Vector3 realWorldPos = Camera.main.ScreenToWorldPoint(pos);
        transform.position = realWorldPos;
    }
}