コード例 #1
0
ファイル: EnemyIns.cs プロジェクト: Aetulier/Unity3D_ARPGDemo
    /// <summary>
    /// 生成敌人类型1
    /// </summary>
    /// <param name="Rooms"></param>
    public void generatingLocation1(List <Transform> Rooms)
    {
        foreach (var item in Rooms)
        {
            RoomEnemy Re = item.gameObject.AddComponent(typeof(RoomEnemy)) as RoomEnemy;
            roomEne.Add(Re);

            GetCollisionDetection(item.transform.Find("CollisionDetection").GetComponentsInChildren <EnterRoom>(), Re);

            SkeletonrInitial SI = item.gameObject.AddComponent(typeof(SkeletonrInitial)) as SkeletonrInitial;
            skeletonrIn.Add(SI);
            Transform    EnemyPos = item.gameObject.transform.Find("EnemyPos");
            SkeletonPhys Sp       = EnemyPos.gameObject.AddComponent(typeof(SkeletonPhys)) as SkeletonPhys;

            SI.skeletonPhys = Sp;

            insPos1.Add(EnemyPos.GetComponentsInChildren <Transform>());
        }
        foreach (var item in insPos1)
        {
            int         a      = Random.Range(1, 4);
            Transform[] enemys = new Transform[a];
            int[]       k      = randomPos(a, item.Length - 1);
            for (int i = 0; i < a; i++)
            {
                enemys[i] = InsEnemy1(item[k[i]]);
            }
            roomEne[roomEneCount].getBehaviorTree(enemys);
            skeletonrIn[roomEneCount].getTransform(enemys);
            roomEneCount++;
        }
    }
コード例 #2
0
ファイル: EnemyIns.cs プロジェクト: Aetulier/Unity3D_ARPGDemo
 private void GetCollisionDetection(EnterRoom[] enterRooms, RoomEnemy roomEnemy)
 {
     foreach (var item in enterRooms)
     {
         item.roomEnemy = roomEnemy;
     }
 }
コード例 #3
0
 void Start()
 {
     skeletonPhys.EnemyCount = skeleTrans.Length;
     roomEnemy = GetComponent <RoomEnemy>();
     Player    = GameObject.FindGameObjectWithTag("Player").transform;
     upBehaviors();
     roomEnemy.upEnemyCount(upBehaviors);
 }
コード例 #4
0
    public override void OnAwake()
    {
        anim          = gameObject.GetComponent <Animator>();
        deathParticle = this.transform.Find("Death_Particle").GetComponent <ParticleSystem>();
        room          = roomEnemy.Value.GetComponent <RoomEnemy>();



        foreach (Transform child in this.transform.GetComponentsInChildren <Transform>(true))
        {
            if (child.tag == "Dissolve")
            {
                materials.Add(child.GetComponent <Renderer>().material);
            }
        }
    }
コード例 #5
0
    public EnemyDead_S_2(SkeletonBehaviorTree skeletonBehaviorTree) : base("EnemyDead_S_2")
    {
        anim           = skeletonBehaviorTree.Anim;
        transform      = skeletonBehaviorTree.transform;
        deathParticle  = this.transform.Find("Death_Particle").GetComponent <ParticleSystem>();
        room           = roomEnemy.GetComponent <RoomEnemy>();
        StartCoroutine = skeletonBehaviorTree.StartCoroutine_BehaviorTree;

        foreach (Transform child in this.transform.GetComponentsInChildren <Transform>(true))
        {
            if (child.tag == "Dissolve")
            {
                materials.Add(child.GetComponent <Renderer>().material);
            }
        }
    }
コード例 #6
0
ファイル: EnemyIns.cs プロジェクト: Aetulier/Unity3D_ARPGDemo
    /// <summary>
    /// 生成敌人2
    /// </summary>
    /// <param name="Rooms"></param>
    public void generatingLocation2(List <Transform> Rooms)
    {
        foreach (var item in Rooms)
        {
            RoomEnemy Re = item.gameObject.AddComponent(typeof(RoomEnemy)) as RoomEnemy;
            roomEne.Add(Re);
            GetCollisionDetection(item.transform.Find("CollisionDetection").GetComponentsInChildren <EnterRoom>(), Re);

            Transform EnemyPos = item.gameObject.transform.Find("EnemyPos");

            insPos2.Add(EnemyPos.GetComponentsInChildren <Transform>());
        }
        //foreach (var item in insPos2)
        //{
        //    int a = 2;
        //    Transform[] enemys = new Transform[a];
        //    int[] k = randomPos(a);
        //    for (int i = 0; i < a; i++)
        //    {
        //        enemys[i] = InsEnemy2(item[k[i]]);
        //    }
        //    roomEne[l++].getBehaviorTree(enemys);

        //}

        for (int i = 0; i < insPos2.Count; i++)
        {
            int         a      = 2;
            Transform[] enemys = new Transform[a];
            int[]       k      = randomPos(a, 4);
            for (int j = 0; j < a; j++)
            {
                enemys[j] = InsEnemy2(insPos2[i][k[j]]);
                //BearInitial BI = enemys[j].gameObject.AddComponent(typeof(BearInitial)) as BearInitial;
            }

            roomEne[roomEneCount + i].getBehaviorTree(enemys);
        }
    }
コード例 #7
0
    private IEnumerator TransitionRoutine()
    {
        new GameFlowEvent(EGameFlowAction.StartTransition).Push();
        // Teleport the player to the nex room
        m_PlayerTransform.position = new Vector3(m_PlayerNode.position.x, m_PlayerTransform.position.y, m_PlayerTransform.position.z);
        m_PlayerMovement.Freeze();

        yield return(new WaitForSecondsRealtime(m_TransitionTime));

        m_CurrentMinX = m_EnterRoom.GetMinX();
        m_CurrentMaxX = m_EnterRoom.GetMaxX();
        m_CurrentMinY = m_EnterRoom.GetMinY();
        m_CurrentMaxY = m_EnterRoom.GetMaxY();
        m_EnterRoom.gameObject.SetActive(true);
        RoomEnemy enemies = m_EnterRoom.GetComponent <RoomEnemy>();

        if (enemies != null)
        {
            enemies.ResetEnemies();
        }
        m_ExitRoom.gameObject.SetActive(false);
        m_PlayerMovement.Unfreeze();
        new GameFlowEvent(EGameFlowAction.EndTransition).Push();
    }
コード例 #8
0
 public override void OnAwake()
 {
     anim          = gameObject.GetComponent <Animator>();
     deathParticle = this.transform.Find("Death_Particle").GetComponent <ParticleSystem>();
     room          = roomEnemy.Value.GetComponent <RoomEnemy>();
 }