private void LoadFence(int number) { var fence_id = DataManager.GetInstance().dicFencePositionData[number].fence_id; var fence_position_data = DataManager.GetInstance().dicFencePositionData[number]; var data = DataManager.GetInstance().dicFenceData[fence_id]; UnityEngine.Object prefab = (from obj in App.instance.resource where obj.name == data.prefab_name select obj).FirstOrDefault(); GameObject go = (GameObject)Instantiate(prefab); go.transform.SetParent(go.transform, false); go.transform.position = new Vector3(fence_position_data.x, fence_position_data.y, fence_position_data.z); TestFence fence = go.AddComponent <TestFence>(); fence.Init(data); this.fence = fence; this.fence.OnChangeFenceHp = (percentage) => { Debug.Log($"OnChangeFenceHp:{percentage}"); uI_FenceHp.ChangeFillAmount(percentage); }; fence.OnMonsterRange = (gameObject) => { if (gameObject != null && gameObject.tag == "Monster") { gameObject.GetComponent <TestMonster>().ChangeBehavior(TestMonster.eMonsterState.ATTACK); } }; }
public void Init(Vector3 navDestination, DefenseMonsterData data, TestFence fence, Material mat) { this.navDestination = navDestination; this.data = data; this.hp = data.maxHp; this.fence = fence; this.whiteMaterial = mat; if (monsterAttackEvent == null) { this.monsterAttackEvent = this.gameObject.transform.GetChild(0).gameObject.AddComponent <MonsterAttackEvent>(); } this.isTargetedByBomber = false; if (model == null) { this.model = this.transform.GetChild(0).gameObject; } this.model.transform.localPosition = Vector3.zero; if (agent == null) { this.agent = this.gameObject.AddComponent <NavMeshAgent>(); } if (animator == null) { this.animator = this.gameObject.GetComponentInChildren <Animator>(); } if (boxCollider == null) { this.boxCollider = this.gameObject.AddComponent <BoxCollider>(); this.boxCollider.size = new Vector3(1, 3, 1); this.boxCollider.center = new Vector3(0, 1.2f, 0); this.boxCollider.isTrigger = true; } this.gameObject.layer = LayerMask.NameToLayer("Monster"); //레이어를 몬스터로 this.skinnedMeshRenderer = this.gameObject.GetComponentInChildren <SkinnedMeshRenderer>(); this.defaultMaterial = this.skinnedMeshRenderer.material; this.CheckHp(); }