私は関数InvokeRepeating()
についての問題を遭遇しましたが、それらは並行して動作しませんでした。 Update()
のforループを使用して100 floatの配列を調べ、InvokeRepeating()
の数値を1秒ごとに比較します。与えられた数字がUpdate()
のそれよりも小さい場合、それはコンソールに表示されます。InvokeRepeatingがアップデートでうまく動作しませんでした
しかし、私が見たたびにコンソールのInvokeRepeating()
で99となっています。ここで
void Update() {
foreach(int f in test){
target = f;
Debug.Log (target);
}
}
void AccXFunction(int time, float x){
InvokeRepeating ("AccXR", 0.2f, 0.8F);
}
void AccXR(){
float tempAccX = float.Parse(
GameObject.FindGameObjectWithTag("AccX")
.GetComponent<Text>()
.text);
accEvent.AddListener (accXAction);
if (tempAccX < 99) {
Debug.Log ("Hi, got it, the" + target);
}
else
{
Debug.Log ("Func0 " + tempAccX);
}
}
そして、ここでは、コンソールでの結果である私のコードの一部です:唯一の99ではなく、他の番号0から98まで
ありがとうございました!私は本当に彼らが別のスレッドにあると思った。しかし、今私は新しい質問があります:アップデートで大きな計算がある(またはスクリプトがたくさんあり、それぞれに時間がかかります)場合、更新関数はコルーチンをブロックしますか? Unityに大きなプロジェクトがいくつかありますが、彼らは解決策を持っているはずです... – joejoe
アップデートで大きな遅い計算があるとプログラムが遅くなりますが、[統合されたプロファイラ](https: //unity3d.com/learn/tutorials/topics/best-practices/unity-ui-profiling-tools)、どのくらいの減速が発生しているかを確認します。ほとんどの場合、それを修正する方法は、何をしようとしているのかをより効率的に行う方法を見つけ出すことです。 –
私があなたの質問に答えた場合、あなたは答えを受け入れてください –