键值的获取方法:
string currentBTN;//当前按下的按键
void getBTNs()
{
var values = Enum.GetValues(typeof(KeyCode));//存储所有点击按键
for (int i = 0; i < values.Length; i++)
{
if (Input.GetKeyDown((KeyCode)values.GetValue(i)))
{
currentBTN = values.GetValue(i).ToString();//遍历并获取当前按下的按键
}
}
}
轴值的获取方法:
string currentAxis_X, currentAxis_Y, currentAxis_Z;//当前移动的轴向
float axisInput_X, axisInput_Y, axisInput_Z;//当前轴向的值
void getAxis()
{
if (Input.GetAxisRaw("油门台") >= -1|| Input.GetAxisRaw("油门台") <= 1)
{
currentAxis_Z = "油门台";
axisInput_Z = Input.GetAxisRaw("油门台");
}
if (Input.GetAxisRaw("摇杆x轴") >= -1|| Input.GetAxisRaw("摇杆x轴") <= 1)
{
currentAxis_X = "摇杆x轴";
axisInput_X = Input.GetAxisRaw("摇杆x轴");
}
if (Input.GetAxisRaw("摇杆y轴") >= -1 || Input.GetAxisRaw("摇杆y轴") <= 1)
{
currentAxis_Y = "摇杆y轴";
axisInput_Y = Input.GetAxisRaw("摇杆y轴");
}
}
这里使用老版本的Input系统,设置如下:
物理手柄与模型手柄的随动方法(这里使用的是飞行套件油门台和摇杆):
public Transform ymt, yg;
void RotationFollow()
{
yg.rotation = Quaternion.Euler(new Vector3(axisInput_Y * 50, 0, -axisInput_X * 50));
ymt.rotation = Quaternion.Euler(new Vector3(axisInput_Z * 50 + 20f, 0, 0));
}