public AnimeAction CreateHitDamageAction(Model targetModel, GameObject hitEffect = null) { ParallelAction hitDamagePack = new ParallelAction(); hitDamagePack.name = "HitDamage"; ModelHitAction hitAction = new ModelHitAction(); hitAction.name = "enemyHit"; hitAction.actor = targetModel; hitDamagePack.AddAction(hitAction); GameTextAction damageAction = new GameTextAction(); damageAction.textPrefab = damageTextPrefab; damageAction.text = 1000.ToString(); damageAction.spawnPostion = targetModel.transform.position + new Vector3(0, 2, -2); hitDamagePack.AddAction(damageAction); if (hitEffect == null) { return(hitDamagePack); } // EffectAction effectAction = EffectAction.CreatePointEffect(hitEffect, targetModel.GetPosition()); effectAction.onHitAction = hitDamagePack; return(effectAction); // SimpleAnimationAction effectAction = new SimpleAnimationAction(); // effectAction.clip = hitEffect; // effectAction.spawnPosition = targetModel.transform.position + new Vector3(0, 1, -2); // hitDamagePack.AddAction(effectAction); // } // return hitDamagePack; }
public void EffectCloud() { ParallelAction parallel = new ParallelAction(); int effectCount = 30; for (int i = 0; i < effectCount; i++) { float x = Random.Range(-4f, 4f); float y = Random.Range(-2f, 2f); Vector3 spawnPos = new Vector3(x, y, -5); EffectAction effectAction = EffectAction.CreatePointEffect(effectPrefab, spawnPos, null, 3); parallel.AddAction(effectAction); } actionManager.RunAction(parallel); }
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); }
public AnimeAction CreateHitDamageAction(Model targetModel, GameObject hitEffect = null) { ParallelAction hitDamagePack = new ParallelAction(); hitDamagePack.name = "HitDamage"; ModelHitAction hitAction = new ModelHitAction(); hitAction.name = "enemyHit"; hitAction.actor = targetModel; hitDamagePack.AddAction(hitAction); GameTextAction damageAction = new GameTextAction(); damageAction.textPrefab = damageTextPrefab; damageAction.text = 1000.ToString(); damageAction.spawnPostion = targetModel.transform.position + new Vector3(0, 2, -2); hitDamagePack.AddAction(damageAction); if (hitEffect == null) { return(hitDamagePack); } // // Effect effect = hitEffect.GetComponent <Effect>(); PositionType posType = effect == null ? PositionType.Ground : effect.positionType; EffectAction effectAction = EffectAction.CreatePointEffect(hitEffect, targetModel.GetPositionByType(posType)); effectAction.onHitAction = hitDamagePack; return(effectAction); }
public void ParticleEffect() { EffectAction effectAction = EffectAction.CreatePointEffect(particlePrefab, Vector3.zero); actionManager.RunAction(effectAction); }