团结 - 让角色走向触摸/拖动位置?在3D空间?

问题描述 投票:1回答:1

好的,我有一个为iOS设计的3D Unity游戏,这些控件将以第一人称射击方式实现:

  1. 相机跟在角色后面
  2. 将手指放在屏幕上使角色走路,手指向上让它停止
  3. 这就是问题所在:无论用户何时开始触摸屏幕,无论他们拖动的方向(向前,向后,向右),角色都会无限期地朝那个方向行走。

这肯定已经完成但我无法在任何地方找到任何东西。我有相机作为角色的孩子,所以我照顾,但对于炭运动我只有:

 void Update()
    {
        if (Input.touchCount == 1 && Input.GetTouch(0).phase == TouchPhase.Moved)
        {

            Vector3 target = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, -10f));
            transform.Translate(Vector3.MoveTowards(transform.position, target, speed * Time.deltaTime) - transform.position);

        } 

这根本不起作用。我能在这做什么?

c# unity3d physics game-development
1个回答
0
投票

您可以尝试使用任何UI操纵杆(https://assetstore.unity.com/packages/tools/input-management/joystick-pack-107631)之王

并访问其参数如下:

public class TestMovement : MonoBehaviour
{
    public float Speed;
    public FloatingJoystick Joystick; //Set in the inspector, prefab from the asset
    private void Update()
    {
        transform.Translate(new Vector2(Joystick.Horizontal, Joystick.Vertical) * Speed * Time.deltaTime);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.