public void SyncEnemyPosition()
    {
        if (syncEnemyList != null || syncBoss != null)
        {
            EnemyPositionModel model = new EnemyPositionModel();
            foreach (Enemy enemy in syncEnemyList)
            {
                if (enemy != null)  //同步期间敌人可能被杀死而出现空指针
                {
                    EnemyPositionProperty property = new EnemyPositionProperty {
                        guid = enemy.guid, position = new Vector3Object(enemy.transform.position), eulerAngles = new Vector3Object(enemy.transform.eulerAngles)
                    };
                    model.list.Add(property);
                }
            }
            if (syncBoss != null)
            {
                EnemyPositionProperty property = new EnemyPositionProperty {
                    guid = syncBoss.guid, position = new Vector3Object(syncBoss.transform.position), eulerAngles = new Vector3Object(syncBoss.transform.eulerAngles)
                };
                model.list.Add(property);
            }

            enemyController.SyncEnemyPosition(model);
            syncEnemyList.Clear();
            syncBoss = null;
        }
    }
 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();
     }
 }
Example #3
0
    //发起同步敌人位置和旋转的请求
    private 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();
        }
    }