【发布时间】:2021-10-24 23:34:14
【问题描述】:
我正在制作一个游戏,它使用 WASD 键在不同对象之间移动相机,并使用 Mathf.Clamp 来限制它,但现在它可以做到,所以移动不起作用,我只移动不应该的对角线无需多次按键即可。
{
public Vector3 startPos;
public float moveDistance = 1;
public float minX;
public float minZ;
public float maxX;
public float maxZ;
void Start()
{
transform.position = startPos;
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.W))
{
transform.position += new Vector3(0, 0, moveDistance);
}
else if (Input.GetKeyDown(KeyCode.S))
{
transform.position += new Vector3(0, 0, -moveDistance);
}
else if (Input.GetKeyDown(KeyCode.D))
{
transform.position += new Vector3(moveDistance, 0, 0);
}
else if (Input.GetKeyDown(KeyCode.A))
{
transform.position += new Vector3(-moveDistance, 0, 0);
}
transform.position = new Vector3(Mathf.Clamp(transform.position.x, minX, maxX), transform.position.y, Mathf.Clamp(transform.position.x, minZ, maxZ));
}
}
【问题讨论】:
-
看起来像是一个错字,你的意思是
Mathf.Clamp(transform.position.z, minZ, maxZ)而不是Mathf.Clamp(transform.position.x, minZ, maxZ)