public async UniTask CreateProjectileParticle() { if (prefabProjectileParticle) { GameObject go = Instantiate(prefabProjectileParticle); VFXController t = go.AddComponent <VFXController>(); t.observer = vfXObserver; if (instant) { t.InitInstantProjectile(origin, destination); } else { var p = MyUniTaskExtensions.WaitUntilEvent(t.eHit); t.InitProjectile(origin, destination, speed); await p; } } }