我试图在官方统一网站页面上统一做教程,我有一些疑惑,因为教程有点老了,事情不能正常工作,所以我已经设置了播放器和背景,现在我必须编写脚本来移动播放器并检查x和z轴之间的分割,所以我所做的基本上是使用Math.clamp方法,但是当我设置x轴时,例如, min -6和max 6,它只是在-1和1之间移动z轴同样发生,我不知道它为什么会发生:S
这是代码
using UnityEngine;
using System.Collections;
public class PlayerController : MonoBehaviour {
private Rigidbody rb;
public float velocity;
public float xMin, xMax, zMin, zMax;
void Start () {
rb = GetComponent<Rigidbody> ();
velocity = 3.0f;
xMin = -6.0f;
xMax = 6.0f;
zMin = -4.0f;
zMax = 7.0f;
}
// Update is called once per frame
void FixedUpdate () {
float xAxis = Input.GetAxis ("Horizontal");
float zAxis = Input.GetAxis ("Vertical");
rb.velocity = new Vector3 (xAxis, 0.0f, zAxis) * velocity;
rb.position = new Vector3 (Mathf.Clamp (xAxis, xMin, xMax), 0.0f, Mathf.Clamp (zAxis, zMin, zMax));
}
}
答案 0 :(得分:1)
Mathf.Clamp设置值的范围。所以它不会比这些更多或更少。如果您希望值超过-6和+6,只需从检查器中增加xMin,xMax,zMin,zMax值。并且Input.GetAxis的范围在-1到+1之间,所以你不会比这更进一步。因此,尝试将xAxis和zAxis值乘以一些大数。例如10。
void FixedUpdate ()
{
float xAxis = Input.GetAxis ("Horizontal") * 10;
float zAxis = Input.GetAxis ("Vertical") * 10;
rb.velocity = new Vector3 (xAxis, 0.0f, zAxis) * velocity;
rb.position = new Vector3 (Mathf.Clamp (xAxis, xMin, xMax), 0.0f, Mathf.Clamp (zAxis, zMin, zMax));
}