Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何让玩家从一个x位置移动到另一个x位置?_C#_Unity3d - Fatal编程技术网

C# 如何让玩家从一个x位置移动到另一个x位置?

C# 如何让玩家从一个x位置移动到另一个x位置?,c#,unity3d,C#,Unity3d,当我向左或向右滑动时,我试图使用x位置向左或向右移动我的玩家游戏对象 void OnSwipeLeft() { var oldPosition = transform.position; var newPosition = transform.position; newPosition = newPosition.x - 1; Debug.Log("Swipe Left"); if((controlLocked == "n")) {

当我向左或向右滑动时,我试图使用x位置向左或向右移动我的玩家游戏对象

void OnSwipeLeft()
{
    var oldPosition = transform.position;
    var newPosition = transform.position;
    newPosition = newPosition.x - 1;

    Debug.Log("Swipe Left");
    if((controlLocked == "n"))
    {
        transform.position = Vector3.MoveTowards(oldPosition, newPosition, Time.deltaTime * switchLaneSpeed);
        //horizVel = -2.5f;
        //StartCoroutine(stopSlide());
        controlLocked =  "y";
     }
    }

当我向左滑动时,我需要我的播放器移动到X位置-1,当我向右滑动时,我需要它移动到X位置1。上面的代码是我尝试过的,但是我在声明新位置和旧位置时出现了错误。

这里的问题是您试图将
浮点值分配给
矢量3
。错误消息应为
无法将类型float隐式转换为UnityEngine.Vector3

void OnSwipeLeft()
{
    var oldPosition = transform.position;
    var newPosition = transform.position;
    newPosition = newPosition.x - 1;

    Debug.Log("Swipe Left");
    if((controlLocked == "n"))
    {
        transform.position = Vector3.MoveTowards(oldPosition, newPosition, Time.deltaTime * switchLaneSpeed);
        //horizVel = -2.5f;
        //StartCoroutine(stopSlide());
        controlLocked =  "y";
     }
    }
你想要的是这样的:

void onswipleft()
{
向量3 oldPosition=transform.position;
Vector3 newPosition=transform.position;
newPosition.x-=1;
Log(“向左滑动”);
如果(可控锁定==“n”)
{
transform.position=Vector3.movetoward(oldPosition、newPosition、Time.deltaTime*switchLaneSpeed);
controlLocked=“y”;
}
}