我面临以下问题:
玩游戏之前,圈子位于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);
}
感谢您的帮助
答案 0 :(得分:1)
您的问题是,由于Direction最初为false,因此您将立即转到此行:
transform.position = new Vector3(x, y, 0);
这会将您的变换设置为位置(1、0、0)。
不能完全确定您要完成什么,但是也许您是想将坐标添加到该位置?
transform.position += new Vector3(x, y, 0);