简而言之,每次绕着我的更新循环,变量“ direction”就从true开始,直到我将其更改为false。但是没有什么可以将其更改为true。
在代码下面,您可以看到我的Debug.Logs来检查它的值,当带有登录名的if语句为true时,第一个日志始终输出true,第二个日志输出false。我不确定为什么在循环之间将其设置为true。我是不是很蠢,或者我做事有问题吗?
有关更多信息,该变量控制着我的游戏对象行进的水平方向。为true时,对象将沿x轴正向移动,否则为false。
private bool direction = true;
public int minX;
public int maxX;
public int changeScene;
// Use this for initialization
void Awake() {
instance = this;
}
void Start () {
reference = gameObject;
StartCoroutine (WaitThenDestroy ());
}
// Update is called once per frame
void Update () {
this.transform.Translate (new Vector3 (0, speed * movement.gameSpeed, 0));
moveHorizontal();
}
private void moveHorizontal() {
if (direction = true) {
this.transform.Translate (new Vector3 (speed * movement.gameSpeed, 0, 0));
} else {
this.transform.Translate (new Vector3 (-speed * movement.gameSpeed, 0, 0));
}
// Change horizontal direction
Vector3 p = this.transform.position;
Debug.Log (p.x);
if (p.x > maxX) {
direction = true;
Debug.Log ("WHOOP");
} else if (p.x < minX) {
Debug.Log (direction);
direction = false;
Debug.Log (direction);
}
}
答案 0 :(得分:3)
您正在if
语句中分配值:
if (direction = true)
应该(已编辑以应用评论者的建议。最佳做法是在没有==
运算符的情况下检查布尔值)
if (direction)