Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How can I await function in OnUpdate of Dotween #556

Open
zrp2016 opened this issue Mar 22, 2024 · 1 comment
Open

How can I await function in OnUpdate of Dotween #556

zrp2016 opened this issue Mar 22, 2024 · 1 comment

Comments

@zrp2016
Copy link

zrp2016 commented Mar 22, 2024

See code as following

 _cameraTransform.DOMove(pos, doTweenTime).OnUpdate(() =>
        {
            await MoveEvent.Broadcast(_cameraTransform.position);//when camera move ,refresh some UI
        }).OnComplete(() =>
        {
            _lockTouch = false;
            finishCallback?.Invoke(src);
        });

so how can I await "MoveEvent.Broadcast"(itself is awaitable) ?

@migus88
Copy link

migus88 commented Jun 30, 2024

Don't think it should be in the issues, because it isn't.
You have multiple approaches here. If you just want the code to compile, append the async keyword to the lambda expression:

.OnUpdate(async () => {  } )

Otherwise you can remove the await keyword and append the .Forget() method to the result of the Broadcast method:

MoveEvent.Broadcast(_cameraTransform.position).Forget();

Or you can remove the await keyword and ignore the compiler warning:

MoveEvent.Broadcast(_cameraTransform.position);

All of the above will do a "fire-and-forget" method. Meaning that the "OnUpdate" method will not wait for the end of the execution of your broadcast and depending on the duration of the broadcast method, it can receive multiple invocations.

If you want for each update to wait for the end of the execution, I don't think that DoTween is the way to go here. You'd rather implement the movement on your own with UniTasks (or Coroutines).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants