を実行するたびにクラッシュします。Unityは、私は私がそれを削除した場合、それは正常に動作しますので、それは、しばらくとは何かを持っていると信じて、このスクリプト
using UnityEngine;
using System.Collections;
public class Movement : MonoBehaviour {
public float speed = 1f;
public float pos = 0f;
void Start() {
}
void Update() {
float temp = Input.acceleration.x;
while (pos >= -200f && pos <= 200f){
if (Input.touchCount > 0) {
if ((Input.GetTouch (0).position.x >= 250)) { //Right
transform.Rotate (0, 0, 0);
pos += speed * 500 * Time.deltaTime;
transform.Translate (speed * 500 * Time.deltaTime, 0, 0, Space.World);
} else if ((Input.GetTouch (0).position.x < 250)) { //Left
transform.Rotate (0, 0, 0);
pos -= speed * 500 * Time.deltaTime;
transform.Translate (-speed * 500 * Time.deltaTime, 0, 0, Space.World);
//Time.timeScale = 0.2F;
}
}
}
//Time.timeScale = 1F;
transform.Rotate (0, 0, -temp * 500 * Time.deltaTime); //Rotation
}
}
基本的には、アンドロイドの加速度計とタッチスクリーンを使用して立方体を制御するスクリプトです。それはうまく動作しますが、私はそれを再生するたびにクラッシュする動きを "バインド"するためにwhileを実装するとき。
ループは、それが最も可能性が高い(=無限ループ)を停止しないクラッシュした場合。これは、基本的にループする(Update)という機能で動作するため、悪いです。これは、ゲームがフレーム内の無限ループに詰まり、ゲームが進行できないことを意味します。なぜこれは「中」である必要がありますか?単純な ''もし ''それをしてはいけませんか? –
代わりに[coroutine](http://docs.unity3d.com/Manual/Coroutines.html)を使ってみてください – LibertyLocked
aswersに感謝します!私はプログラミングでかなりの午前:D – user3848742