API
質問の説明
Unityの設計は、このような操作を防ぐことを目的としているため、個々のスレッドから直接Unity APIにアクセスすると異常が発生します。 UnityThreadスクリプトは、スレッド間の通信を促進することにより、この問題を解決します。このスクリプトは、メインスレッドのアップデート、LATEUPDATE、およびFixedUpDate関数のメソッドまたは企業方法を提供します。
初期化:
メインスレッドで操作を実行する:
unitythread.executeinLeupdate()を使用して、lateUpdate()で操作を実行します。
unitythread.executeinfixedupdate()を使用して、sixedupdate()で操作を実行します。例を使用
<code class="language-c#"> UnityThread.executeInUpdate(() => transform.Rotate(new Vector3(0f, 90f, 0f)));</code>lateUpdate関数のみからコードを実行する:
<code class="language-c#"> Action rot = Rotate; UnityThread.executeInUpdate(rot); void Rotate() { transform.Rotate(new Vector3(0f, 90f, 0f)); }</code>個々のスレッドからメインスレッドから始まった:
<code class="language-c#"> UnityThread.executeInLateUpdate(() => { /* 相机移动代码 */ });</code>不要な実行関数を無効にしてパフォーマンスを最適化します:
以上が別々のスレッドからUnity APIに安全にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。