private void CreateMonster(int index, MonsterType type = MonsterType.Rubbish) { ModelMonsterData data = GetModel <MMonsterData>().GetMonsterData(type); GameObject monster = GameObject.Instantiate(data.Prefab); string nodeName = string.Concat(data.PrefabName, index); monster.name = nodeName; monster.transform.SetParent(m_parent); monster.transform.position = data.GetScenePostion(); ModelMonster script = new ModelMonster(monster, data, type); if (m_dicNameMonster.ContainsKey(nodeName)) { m_dicNameMonster[nodeName] = script; } else { m_dicNameMonster.Add(nodeName, script); } m_listMonster.Add(script); Vector3 screenPos = GameSceneManager.ToScreenPoint(monster.transform.position); script.HPPosY = ModelRoleManager.GetModelRoleHpPosY(data.PrefabName); float distance = GameSceneManager.DistanceToCamera(monster.transform.position); ModelMonsterHPData hpProcessData = new ModelMonsterHPData(monster.name, screenPos, script.HPPosY, distance); EventManager.Dispatch(GameMoudle.Player, GameEvent.Type.MonsterCreate, hpProcessData); }
public void Damage(object arg) { ModelAttackData data = (ModelAttackData)arg; ModelMonster monster = GetMonster(data.receiver); if (monster == null || monster.gameObject == null) { return; } float hpPercent = monster.Damage(data); KeyValuePair <string, float> hpData = new KeyValuePair <string, float>(monster.gameObject.name, hpPercent); EventManager.Dispatch(GameMoudle.Player, GameEvent.Type.MonsterDamage, hpData); }