using System.Collections; using System.Collections.Generic; using UnityEngine; public class MonsterController : UnitController { public override UnitType type { get { return UnitType.Monster; } } public override void Initialize(GameObject obj, string folder) { base.Initialize(obj, folder); unitState = gameObject.GetOrAddComponent(); unitState.Initialize(); unitAnimation = gameObject.GetOrAddComponent(); unitAnimation.Initialize(); } public override void Update() { base.Update(); } public override void OnHit(CollisionInfo info) { } public override void OnGetHit(CollisionInfo info) { ColliderBox hitbox = info.collider.colliderInfo.collider; Debug.Assert(hitbox.type == ColliderBox.EColliderType.HitBox); if(hitbox.hitResponse == ColliderBox.EHitResponse.Light) { monsterState.ChangeState(MonsterState.EUnitState.HitLight, new MonsterState.HitLightParam()); } else if(hitbox.hitResponse == ColliderBox.EHitResponse.HitAir) { monsterState.ChangeState(MonsterState.EUnitState.HitAir, new MonsterState.HitAirParam()); } string path = hitbox.sparkPath; GameObject vfx = ResourceManager.Instance.LoadAsset(path); if(vfx != null) { GameObject go = GameObject.Instantiate(vfx); go.transform.position = center + hitbox.sparkOffset; go.transform.localScale = hitbox.sparkScale; } } public override void OnGetShot(CollisionInfo info) { monsterState.ChangeState(MonsterState.EUnitState.HitLight, new MonsterState.HitLightParam()); } }