public sealed override void Init(int HP, int damage, List<Vector3Int> path) // 필요한 스탯 최대체력 체력 공격력 공격범위, { if (UnitAnimator == null) { UnitAnimator = gameObject.transform.GetChild(0).GetComponent<Animator>(); } else { UnitAnimator.Rebind(); UnitAnimator.SetBool("dead", false); } gameObject.transform.GetChild(0).transform.localPosition = new Vector3(Random.Range(-0.1f, 0.1f), 0.1f, -0.3f + Random.Range(-0.1f, 0.1f)); unitName = "Kong"; spriteRenderer = gameObject.gameObject.transform.GetChild(0).GetComponent<SpriteRenderer>(); spriteRenderer.material.color = new Color(1, 1, 1, 1); spriteRenderer.flipX = true; monsterTransform = gameObject.transform; DamageMultiplier = 1; AdditionalDamage = 0; MaxHP = HP; this.HP = HP; Damage = damage; AttackDelay = ATTACK_DELAY; speed = SPEED; CurrentAttackDelay = AttackDelay; pathList.Clear(); foreach (var pos in path) pathList.Add(pos); this.gameObject.transform.position = pathList[0]; UnitPosition = pathList[0]; currentState = MonsterUnitState.SetPath; GameManager.Instance.AddUpdate(this); GameManager.Instance.MessageSystem.Subscribe(typeof(PlayerUnitSummonEvent), this); GameManager.Instance.MessageSystem.Subscribe(typeof(DamageEvent), this); for (int i = -2; i < 3; i++) { rangeTile.Add(new Vector3Int(i, 0, -1)); rangeTile.Add(new Vector3Int(i, 0, 0)); rangeTile.Add(new Vector3Int(i, 0, 1)); } }
// 애니메이터 초기화 protected void ResetAnimator() { if (UnitAnimator == null) { UnitAnimator = this.gameObject.GetComponent <Animator>(); } else { UnitAnimator.Rebind(); UnitAnimator.Play("Idle"); } gameObject.transform.GetComponent <SpriteRenderer>().material.color = new Color(1, 1, 1, 1); ResetBlinkCount(); }