我面临的问题如下:
在玩游戏之前,圈子位于circle location。
当按下播放它去另一个地方,如图所示after press play
这是我正在使用的代码,我很确定它是一个if语句问题:
public class circularmouse : MonoBehaviour {
[SerializeField] float timeCounter = 0;
[SerializeField]bool Direction = false;
[SerializeField] float angularSpeed = 0f;
public Vector3 startPosition;
private void Start()
{
startPosition = transform.position;
}
void Update()
{
if (Input.GetKeyDown(KeyCode.LeftArrow))
{
angularSpeed = 4f;
Direction = true;
}
if (Input.GetKeyDown(KeyCode.RightArrow))
{
Direction = false;
angularSpeed = 4f;
}
if (Direction) //if direction is true
{
timeCounter += Time.deltaTime * angularSpeed;
float x = Mathf.Cos(timeCounter);
float y = Mathf.Sin(timeCounter);
transform.position = new Vector3(x, y, 0);
}
else
{
timeCounter -= Time.deltaTime * angularSpeed;
float x = Mathf.Cos(timeCounter);
float y = Mathf.Sin(timeCounter);
transform.position = new Vector3(x, y, 0);
}
感谢您的帮助
您的问题是,由于Direction最初为false,您将立即转到此行:
transform.position = new Vector3(x, y, 0);
这是将您的变换设置为位置(1,0,0)。
不完全确定你想要完成什么,但也许你的意思是将坐标添加到位置?
transform.position += new Vector3(x, y, 0);