Asynchronous execution
// use this namespace
using System.Threading.Tasks;
[DataObjectDropdown(true, sceneComponentType: typeof(GameObject))]
public SceneComponent targetGameObject;
public float movementSpeed = 10;
public override void ExecuteNode()
{
// start the async method
Move();
}
// Async method
async void Move()
{
// Get the scene game object reference
var _obj = targetGameObject.GetReference<GameObject>(this);
while (true)
{
// move the object
_obj.transform.position += _obj.transform.forward * Time.deltaTime * movementSpeed;
// similar to Unity's yield return null to wait for one frame
await Task.Yield();
}
}Databrain.UnityAsync
Last updated