public void ProjectileEffect() { Vector3 from = new Vector3(3, 2, 0); Vector3 to = new Vector3(-2, 3, 4); float duration = 1.0f; EffectAction effectAction = EffectAction.CreateProjectileEffect(projectilePrefab, from, to, duration); actionManager.RunAction(effectAction); }
public AnimeAction CreateProjectileAction(Model actor, Model target, GameObject projectile, GameObject hitEffect) { // Sequence: Projectile Movement, Hit Effect, ModelHit HitValue SequenceAction sequence = new SequenceAction(); Vector3 launchPos = actor.GetLaunchPosition(); Vector3 targetCenterPos = (Vector3)target.GetCenterPosition() + new Vector3(0, 0, -5); Vector3 targetPos = (Vector3)target.GetOriginPosition() + new Vector3(0, 0, -5); float duration = 0.5f; // Projectile Move EffectAction projectileAction = EffectAction.CreateProjectileEffect( projectile, launchPos, targetCenterPos, duration); sequence.AddAction(projectileAction); // Hit Effect ParallelAction damagePack = new ParallelAction(); sequence.AddAction(damagePack); EffectAction effectAction = EffectAction.CreatePointEffect(hitEffect, targetPos); damagePack.AddAction(effectAction); ModelHitAction hitAction = new ModelHitAction(); hitAction.name = "enemyHit"; hitAction.actor = target; damagePack.AddAction(hitAction); int damage = Random.Range(500, 10000); GameTextAction damageAction = GameTextAction.Create( damageTextPrefab, damage.ToString(), target.transform.position + new Vector3(0, 2, -2)); damagePack.AddAction(damageAction); return(sequence); }