private void UpdateOrSpawnCharacter(int a_onlineId, Vector3 a_pos, float a_rot, eCharType a_type, CharAnim2.ePose a_anim, float a_health, float a_energy = 100f) { RemoteCharacter[] array = null; switch (a_type) { case eCharType.ePlayer: case eCharType.ePlayerFemale: array = m_players; break; case eCharType.eCar: array = m_cars; break; default: array = m_npcs; break; } if (a_onlineId <= -1 || a_onlineId >= array.Length) { return; } bool flag = array != null && null == array[a_onlineId]; if (flag && !(0f < a_health)) { return; } CharData[] array2 = null; switch (a_type) { case eCharType.ePlayer: case eCharType.ePlayerFemale: array2 = m_playerData; break; default: array2 = m_npcData; break; case eCharType.eCar: break; } if (flag) { GameObject gameObject = (GameObject)Object.Instantiate(m_remoteCharPrefab); array[a_onlineId] = gameObject.GetComponent <RemoteCharacter>(); array[a_onlineId].Spawn(a_onlineId, a_type, (a_type == eCharType.ePlayer || a_type == eCharType.ePlayerFemale) && m_myOnlineId == a_onlineId); if (array2 != null) { array[a_onlineId].SetInfo(array2[a_onlineId]); } switch (a_type) { case eCharType.ePlayer: case eCharType.ePlayerFemale: gameObject.name = "player_" + array2[a_onlineId].name + "_" + a_onlineId; if (m_myOnlineId == a_onlineId) { BirdCam birdCam = (BirdCam)Object.FindObjectOfType(typeof(BirdCam)); birdCam.m_target = gameObject.transform; AudioListener audioListener = (AudioListener)Object.FindObjectOfType(typeof(AudioListener)); if (null != audioListener) { Object.Destroy(audioListener); } gameObject.AddComponent <AudioListener>(); } break; default: gameObject.name = "npc_" + a_onlineId; break; case eCharType.eCar: gameObject.name = "car_" + a_onlineId; break; } } array[a_onlineId].Refresh(a_pos, a_rot, a_anim, a_health, a_energy); }
private void UpdateOrSpawnCharacter(int a_onlineId, Vector3 a_pos, float a_rot, eCharType a_type, CharAnim2.ePose a_anim, float a_health, float a_energy = 100f) { RemoteCharacter[] array; if (a_type == eCharType.ePlayer || a_type == eCharType.ePlayerFemale) { array = this.m_players; } else if (a_type == eCharType.eCar) { array = this.m_cars; } else { array = this.m_npcs; } if (a_onlineId > -1 && a_onlineId < array.Length) { bool flag = array != null && null == array[a_onlineId]; if (!flag || 0f < a_health) { CharData[] array2 = null; if (a_type == eCharType.ePlayer || a_type == eCharType.ePlayerFemale) { array2 = this.m_playerData; } else if (a_type != eCharType.eCar) { array2 = this.m_npcData; } if (flag) { GameObject gameObject = (GameObject)UnityEngine.Object.Instantiate(this.m_remoteCharPrefab); array[a_onlineId] = gameObject.GetComponent <RemoteCharacter>(); array[a_onlineId].Spawn(a_onlineId, a_type, (a_type == eCharType.ePlayer || a_type == eCharType.ePlayerFemale) && this.m_myOnlineId == a_onlineId); if (array2 != null) { array[a_onlineId].SetInfo(array2[a_onlineId]); } if (a_type == eCharType.ePlayer || a_type == eCharType.ePlayerFemale) { gameObject.name = string.Concat(new object[] { "player_", array2[a_onlineId].name, "_", a_onlineId }); if (this.m_myOnlineId == a_onlineId) { BirdCam birdCam = (BirdCam)UnityEngine.Object.FindObjectOfType(typeof(BirdCam)); birdCam.m_target = gameObject.transform; AudioListener audioListener = (AudioListener)UnityEngine.Object.FindObjectOfType(typeof(AudioListener)); if (null != audioListener) { UnityEngine.Object.Destroy(audioListener); } gameObject.AddComponent <AudioListener>(); } } else if (a_type != eCharType.eCar) { gameObject.name = "npc_" + a_onlineId; } else { gameObject.name = "car_" + a_onlineId; } } array[a_onlineId].Refresh(a_pos, a_rot, a_anim, a_health, a_energy); } } }