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);
     }
 }
Beispiel #2
0
 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);
    }
Beispiel #4
0
 void Awake()
 {
     monster        = MonsterActorV1.CreateMonster(eMonsterType.Cactus1, Vector3.zero, Quaternion.identity);
     monster.EState = eMonsterState.Monster_Null;
     monster.UI_BasePlayerInfos.OnStart((BasePlayer)monster);
 }