有这样一种方法可以控制在无尽的跑步者中更新旋转的角色:
private void PlayerMovement()
{
moveVector = Vector3.zero;
moveVector.z = variableJoystick.Horizontal * moveHorizontalSpeed; // был moveVectorZ
moveVector.y = gravityForce;
moveVector.x -= moveVectorX;
characterController.Move(moveVector * Time.deltaTime);
characterController.center = new Vector3(0, 0.85f, -0.3f);
}
X 坐标设置默认的向前加速度,Y 坐标设置自定义重力和 Z - 使用操纵杆进行水平控制。问题是您需要重写此方法以离开操纵杆控制,但这样在滑动时,玩家会发现自己处于所需的坐标中。 问题:当使用下面描述的方法时,角色并没有停在想要的坐标处,而是继续移动,以及如何重写这段代码,以便在无尽的跑步者中有一个默认控件 - 滑动。
private void CoordinatesMovement()
{
float leftPos = -2.3f;
float rightPos = 5.3f;
float centerPos = 2.0f;
if (variableJoystick.Horizontal < 0)
{
moveVectorZ = Mathf.Lerp(transform.position.z, leftPos, Time.deltaTime);
}
else if (variableJoystick.Horizontal > 0)
{
moveVectorZ = Mathf.Lerp(transform.position.z, rightPos, Time.deltaTime);
}
else if(variableJoystick.Horizontal == 0)
{
moveVectorZ = 0;
}
else
{
moveVectorZ = Mathf.Lerp(transform.position.z, centerPos, Time.deltaTime);
}
}
PS>> 使用线性插值是一个测试变体。
1 个回答