//同步敌人 public void SyncEnemyPosition(EnemyPositionModel model) { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); ParameterTool.AddParmeter(parameters, ParameterCode.EnemyPositionModel, model); PhotonEngine.Instance.SendRequest(OpCode, SubCode.SyncPositionAndRotation, parameters); }
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(); } }
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; } }
public override void OnEventData(EventData data) { SubCode subCode = ParameterTool.GetSubCode(data.Parameters); switch (subCode) { case SubCode.SyncEnemyCreat: //Debug.Log("SubCode.CreatEnemy"); EnemyCreatModel model = ParameterTool.GetParameter <EnemyCreatModel>(data.Parameters, ParameterCode.CreatEnemy); OnSyncEnemyCreat(model); break; case SubCode.SyncPositionAndRotation: //Debug.Log("SubCode.SyncPositionAndRotation"); EnemyPositionModel model2 = ParameterTool.GetParameter <EnemyPositionModel>(data.Parameters, ParameterCode.EnemyPosition); OnSyncEnemyPosition(model2); break; case SubCode.SyncEnemyAnim: //Debug.Log("SubCode.SyncPositionAndRotation"); EnemyAnimModel model3 = ParameterTool.GetParameter <EnemyAnimModel>(data.Parameters, ParameterCode.EnemyAnim); OnSyncEnemyAnim(model3); break; } }
public override void OnEvent(EventData eventData) { SubCode subcode = ParameterTool.GetSubcode(eventData.Parameters); switch (subcode) { case SubCode.CreateEnemy: CreateEnemyModel model = ParameterTool.GetParameter <CreateEnemyModel>(eventData.Parameters, ParameterCode.CreateEnemyModel); if (OnCreateEnemy != null) { OnCreateEnemy(model); } break; case SubCode.SyncPositionAndRotation: EnemyPositionModel model1 = ParameterTool.GetParameter <EnemyPositionModel>(eventData.Parameters, ParameterCode.EnemyPositionModel); if (OnSyncEnemyPositionAndRotation != null) { OnSyncEnemyPositionAndRotation(model1); } break; case SubCode.SyncAnimation: EnemyAnimationModel model2 = ParameterTool.GetParameter <EnemyAnimationModel>(eventData.Parameters, ParameterCode.EnemyAnimationModel); if (OnSyncEnemyAnimation != null) { OnSyncEnemyAnimation(model2); } break; } }
void OnSyncEnemyPositionAndRotation(EnemyPositionModel model) { foreach (EnemyPositionProperty property in model.list) { GameObject enemyGo; bool isGet = enemyDict.TryGetValue(property.guid, out enemyGo); if (isGet) { enemyGo.transform.position = property.position.ToVector3(); enemyGo.transform.eulerAngles = property.eulerAngles.ToVector3(); } } }
public void OnSyncEnemyPosition(EnemyPositionModel model) { foreach (EnemyPositionProperty property in model.list) { GameObject go; bool isSuccess = enemyDict.TryGetValue(property.guid, out go); if (isSuccess) { go.transform.position = property.position.ToVector3(); go.transform.eulerAngles = property.eulerAngles.ToVector3(); } } }
//同步敌人位置和旋转 public void SyncEnemyPosition(EnemyPositionModel model) { Dictionary<byte,object> parameters = new Dictionary<byte, object>(); ParameterTool.AddParameter(parameters,ParameterCode.EnemyPositionModel, model); PhotonEngine.Instance.SendRequest(OpCode,SubCode.SyncPositionAndRotation,parameters); }
private void OnSyncEnemyPositionAndRotation(EnemyPositionModel model) { foreach (EnemyPositionProperty property in model.list) { GameObject enemyGo; bool isGet = enemyDict.TryGetValue(property.guid, out enemyGo); if (isGet) { enemyGo.transform.position = property.position.ToVector3(); enemyGo.transform.eulerAngles = property.eulerAngles.ToVector3(); } } }
//发起同步敌人位置和旋转的请求 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(); } }