C# 通过触摸按钮或图像(而不是a-D键)左右移动曲面上的3d块

C# 通过触摸按钮或图像(而不是a-D键)左右移动曲面上的3d块,c#,unity3d,C#,Unity3d,我在YouTube教程的帮助下制作了一个小游戏,但我遇到了一个问题。 电脑游戏一切正常,我用A,D向左或向右移动一个立方体来避开前面的障碍物。 该块有一个前进速度,可以以给定的速度自行向前移动 但是我想在我的Android手机上测试我的游戏,所以我必须用触摸屏按钮或者触摸手机屏幕的左右部分来控制这个对象。 使用A或D键很容易,但使用移动触摸。。。不是这样。 下面是我现在用来移动和拍照的代码 使用UnityEngine; 公共类玩家运动:单一行为{ //这是对称为“rb”的刚体组件的引用 公共刚体

我在YouTube教程的帮助下制作了一个小游戏,但我遇到了一个问题。 电脑游戏一切正常,我用A,D向左或向右移动一个立方体来避开前面的障碍物。 该块有一个前进速度,可以以给定的速度自行向前移动

但是我想在我的Android手机上测试我的游戏,所以我必须用触摸屏按钮或者触摸手机屏幕的左右部分来控制这个对象。 使用A或D键很容易,但使用移动触摸。。。不是这样。 下面是我现在用来移动和拍照的代码

使用UnityEngine;
公共类玩家运动:单一行为{
//这是对称为“rb”的刚体组件的引用
公共刚体;
public float forwardForce=2000f;//确定前进力的变量
public float sideways force=500f;//确定侧向力的变量
//我们将此标记为“已修复”更新,因为我们
//他们用它来搞物理。
无效固定更新()
{
//增加一个前进的力量
rb.AddForce(0,0,forwardForce*Time.deltaTime);
if(Input.GetKey(“d”)//如果播放器正在按“d”键
{
//在右边加一个力
rb.AddForce(侧向力*Time.deltaTime,0,0,ForceMode.VelocityChange);
}
if(Input.GetKey(“a”)//如果播放器正在按“a”键
{
//向左加一个力
rb.AddForce(-sidewaysForce*Time.deltaTime,0,0,ForceMode.VelocityChange);
}
如果(径向位置y<-1f)
{
FindObjectOfType().EndGame();
}
}
}
这一点也不难。 首先,将运动提取到不同的方法中

public void MoveRight()
{
   rb.AddForce(sidewaysForce * Time.deltaTime, 0, 0, ForceMode.VelocityChange);
}

public void MoveLeft()
{
   rb.AddForce(-sidewaysForce * Time.deltaTime, 0, 0, ForceMode.VelocityChange);
}

void FixedUpdate ()
{
    // Add a forward force
    rb.AddForce(0, 0, forwardForce * Time.deltaTime);
    if (Input.GetKey("d"))  // If the player is pressing the "d" key
            MoveRight();
    if (Input.GetKey("a"))  // If the player is pressing the "a" key
            MoveLeft();
}

剩下要做的就是把你的按钮绑定到编辑器中的那些方法上

这很完美,只需几个tweek,就可以完美地工作了。非常感谢。