C# 如何让玩家从一个x位置移动到另一个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")) {
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”;
}
}