Ejemplo n.º 1
0
 void SyncEnemyPositionAndRotation()
 {
     if (enemyToSyncList != null && enemyToSyncList.Count > 0)
     {
         EnemyPositionModel model = new EnemyPositionModel();
         foreach (Enemy enemy in enemyToSyncList)
         {
             if (enemy != null)
             {
                 EnemyPositionProperty property = new EnemyPositionProperty()
                 {
                     guid        = enemy.guid,
                     position    = new Vector3Obj(enemy.transform.position),
                     eulerAngles = new Vector3Obj(enemy.transform.eulerAngles),
                 };
                 model.list.Add(property);
             }
         }
         if (bossToSync != null)
         {
             EnemyPositionProperty property = new EnemyPositionProperty()
             {
                 guid        = bossToSync.guid,
                 position    = new Vector3Obj(bossToSync.transform.position),
                 eulerAngles = new Vector3Obj(bossToSync.transform.eulerAngles),
             };
             model.list.Add(property);
         }
         bossToSync = null;
         enemyController.SyncEnemyPosition(model);
         enemyToSyncList.Clear();
     }
 }
Ejemplo n.º 2
0
    IEnumerator SpawnEnemy()
    {
        yield return(new WaitForSeconds(time));

        //发送消息 让其他客户端产生敌人 ,包括数量和类型
        foreach (GameObject go in enemyPrefabs)
        {
            List <CreateEnemyProperty> propertylist = new List <CreateEnemyProperty>();
            foreach (Transform t in spawnPosArray)
            {
                GameObject temp         = GameObject.Instantiate(go, t.position, Quaternion.identity) as GameObject;
                string     guidStr      = Guid.NewGuid().ToString();       //guidStr=GUID
                int        targetRoleId = GameController.Instance.GetRandomRoleID();
                if (temp.GetComponent <Enemy>() != null)
                {
                    Enemy enemy = temp.GetComponent <Enemy>();
                    enemy.guid = guidStr;                                //为每一个新生产的敌人创建一个GUID
                    //temp.GetComponent<Enemy>().enabled = true;
                    enemy.targetRoleId = targetRoleId;
                }
                else
                {
                    BossOrc bossOrc = temp.GetComponent <BossOrc>();
                    bossOrc.guid         = guidStr;                     //为新生产的Boss敌人创建一个GUID
                    bossOrc.targetRoleId = targetRoleId;
                }

                CreateEnemyProperty property = new CreateEnemyProperty()
                {
                    guid         = guidStr,
                    position     = new Vector3Obj(t.position),
                    prefabName   = go.name,
                    targetRoleID = targetRoleId
                };
                propertylist.Add(property);
            }
            if (GameController.Instance.battleType == BattleType.Team && GameController.Instance.isMaster)
            {
                CreateEnemyModel model = new CreateEnemyModel()
                {
                    List = propertylist
                };
                enemyController.SendCreateEnemy(model);
            }
            yield return(new WaitForSeconds(repeateRate));
        }
    }
Ejemplo n.º 3
0
 public void OnCreateEnemy(CreateEnemyModel model)
 {
     foreach (CreateEnemyProperty property in model.List)
     {
         GameObject enemyPrefab = Resources.Load("enemy/" + property.prefabName) as GameObject;
         GameObject go          =
             GameObject.Instantiate(enemyPrefab, property.position.ToVector3(), Quaternion.identity) as GameObject;
         Enemy enemy = go.GetComponent <Enemy>();
         if (enemy != null)
         {
             enemy.guid         = property.guid;
             enemy.targetRoleId = property.targetRoleID;
         }
         else
         {
             BossOrc bossOrc = go.GetComponent <BossOrc>();
             bossOrc.guid         = property.guid;
             bossOrc.targetRoleId = property.targetRoleID;
         }
     }
 }
Ejemplo n.º 4
0
 public void AddBossOrcToSync(BossOrc bossOrc)
 {
     this.bossToSync = bossOrc;
 }