Heim >Backend-Entwicklung >C++ >Wie kann ich die API-Funktionen von Unity-Funktionen aus Nicht-Main-Threads sicher aufrufen?
Lösung
auf Implementieren Sie die folgenden Schritte:
Erstellen Sie eine statische
namensactionQueuesUpdateFunc
kopieren Sie in die lokale Liste (List<Action>
) und führen Sie diese Vorgänge aus. actionQueuesUpdateFunc
), um anzugeben, wann die Funktion ausgeführt wird, wenn die Funktion betrieben wird. actionCopiedQueueUpdateFunc
noActionQueueToExecuteUpdateFunc
Update
auf
oder übergeben Sie die Funktion als Parameter:
Betriebskonporation im Haupt -Thread
<code class="language-csharp">UnityThread.executeInUpdate(() => { // 在主线程中执行的代码 });</code>
für die Coroutine:
<code class="language-csharp">Action rot = Rotate; UnityThread.executeInUpdate(rot); void Rotate() { // 函数代码 }</code>wie man verwendet
Initialisieren in :
<code class="language-csharp">UnityThread.executeCoroutine(myCoroutine()); IEnumerator myCoroutine() { // 协程代码 }</code>
Awake()
UnityThread
in : <code class="language-csharp">UnityThread.initUnityThread();</code>
Update
aus
<code class="language-csharp">UnityThread.executeInUpdate(() => { // Update 代码 });</code>
Update
<code class="language-csharp">Action rot = Rotate; UnityThread.executeInUpdate(rot); void Rotate() { // 方法代码 }</code>Starten Sie die Coroutine:
LateUpdate
<code class="language-csharp">UnityThread.executeInLateUpdate(() => { // LateUpdate 代码 });</code>Um die Leistung zu verbessern, falls dies nicht erforderlich ist, kommentieren Sie bitte
FixedUpdate
<code class="language-csharp">UnityThread.executeInFixedUpdate(() => { // FixedUpdate 代码 });</code>
Das obige ist der detaillierte Inhalt vonWie kann ich die API-Funktionen von Unity-Funktionen aus Nicht-Main-Threads sicher aufrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!