void OnGUI() { if (GUI.Button(new Rect(0, 0, 250, 100), "Create Monster")) { MonsterActorV1.CreateMonster(AttTypeDefine.eMonsterType.Cactus1, Vector3.zero, Quaternion.Euler(new Vector3(0, 180, 0)), null, null, AttTypeDefine.eMonsterBehaviourType.Type_BezierLine); } }
IEnumerator GeneratingMonster(UIScene_Game _game) { while (true) { float n = Random.Range(4f, 7f); int m = Random.Range(1, (int)(eMonsterType.Monster_Size + 1)); eMonsterType type = (eMonsterType)m; MonsterActorV1.CreateMonster(type, transform.position, transform.rotation, _game.HitMonster, _game.MissMonster, m_eType); yield return(new WaitForSeconds(n)); } }
public static MonsterActorV1 CreateMonster(eMonsterType type, Vector3 pos, Quaternion rot, HitMonter _delHitMonster = null, MissMonster _delMissMonster = null, eMonsterBehaviourType bType = eMonsterBehaviourType.Type_RunAttackRun) { if (!bIsMonsterGlobalDataInitialized) { InitGlobalData(); bIsMonsterGlobalDataInitialized = true; } string path = m_dMonsterPath[type]; //根据指定路径,位置和旋转 MonsterActorV1 ma = LoadPrefab <MonsterActorV1>(path, pos, rot); //=======================设置怪兽的基本属性=============================== //1 设置出生位置 ma.m_vBirthPoint = new Vector3(pos.x + ma.m_fSize, pos.y, pos.z); //2 设置回收未知 //pos.x - Camera.main.position.x得到相机视野宽度 //Camera.main.position.x - (pos.x - Camera.main.position.x) -> 相机视野左边界X坐标 ma.m_vDeadpoint = new Vector3(2 * Camera.main.transform.position.x - pos.x - ma.m_fSize, pos.y, pos.z); //设置怪兽出生速度 ma.m_fSpeed = Random.Range(3f, 5f); //用来判定怪兽什么时候开始转身 ma.m_fPercentage = Random.Range(0.2f, 0.6f); ma.m_eState = eMonsterState.Monster_RunAway; //出生朝向角度 ma.m_qBirthQuaternion = ma.transform.rotation; //攻击朝向角度 ma.m_qTurnQuaternion = ma.transform.rotation * Quaternion.Euler(new Vector3(0f, -90f, 0f)); if (null != ma.RB) { ma.RB.isKinematic = true; GlobalHelper.SetGameObjectLayer(ma.gameObject, "Monster"); //ma.gameObject.layer = LayerMask.NameToLayer("Monster"); } //获取当前游戏对象的动画控制器 if (null != ma.ANIM ) { } //启动怪兽UI ma.UI_BasePlayerInfos.OnStart(ma); //初始化shader ma.InitShaderProperties(); //初始化命中怪兽代理事件 if (null != _delHitMonster) { ma.m_delHitMonster = _delHitMonster; } //初始化丢失怪兽代理事件 if (null != _delMissMonster) { ma.m_delMissMonster = _delMissMonster; } //=================================================================== //设定怪兽出生行为类型 ma.m_eBehaviourType = bType; if (bType == eMonsterBehaviourType.Type_BezierLine) { ma.InitializeBezierLineInfos(); } return(ma); }
void Awake() { monster = MonsterActorV1.CreateMonster(eMonsterType.Cactus1, Vector3.zero, Quaternion.identity); monster.EState = eMonsterState.Monster_Null; monster.UI_BasePlayerInfos.OnStart((BasePlayer)monster); }