是的,Godot中的C#腳本可以實現多線程。Godot引擎支持使用C#編寫腳本,并且提供了內置的多線程支持。你可以使用Thread
類或者Task
類來創建和管理線程。
以下是一個使用Godot C#實現多線程的簡單示例:
using Godot;
using System;
using System.Threading;
public class _Main : Node
{
[Export]
public int num = 1;
private Thread _thread;
private bool _isThreadRunning = false;
public override void _Ready()
{
_thread = new Thread(DoWork);
_isThreadRunning = true;
_thread.Start();
}
private void DoWork()
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine($"Thread: {Thread.CurrentThread.ManagedThreadId}, Value: {num}");
Thread.Sleep(1000);
}
}
public override void _Process(float delta)
{
if (_isThreadRunning)
{
_thread.Join();
_isThreadRunning = false;
}
}
}
在這個示例中,我們創建了一個名為_Main
的類,它繼承自Node
。我們在_Ready
方法中創建了一個新的線程,并啟動它。DoWork
方法是我們的工作線程要執行的任務。在_Process
方法中,我們檢查線程是否仍在運行,如果是,則調用Join
方法等待線程完成。