void Start() { GameObject NavMesh = new GameObject("NavMesh"); NavMesh.transform.position = transform.position; navmeshAgent = NavMesh.AddComponent <NavMeshAgent> (); navmeshAgent.Warp(transform.position); //nav =new GameObject("navAgent",typeof(NavMeshAgent)).GetComponent<NavMeshAgent>(); //nav.transform.position = transform.position; if (GameDataManager.GetCurrentDifficulty() == Difficulty.Easy) { MAX_FIND_DISTANT = 150; } MaxHealth = Health; //EAS.Health = Health; //EAS.MyTeam = Team; //EAS.TankName = TankName; //EAS.TankScript = TankScript; TankScript.GetComponent <TankFire>().IsOnLine = true; TankScript.GetComponent <TankFire> ().SetAiMode(); //TankScript.GetComponent<MouseTurret> ().AITurret = true; transform.parent.GetComponentInChildren <TankFire> ().InitSystem(); tankFire = TankScript.GetComponent <TankFire> (); tankFire.UseGravity = false; playerTracksController = GetComponent <PlayerTracksController> (); playerTracksController.enableUserInput = false; playerTracksController.isBot = true; // if (GameDataManager.GetVehicleType (TankName) == VehicleType.TD) { // isTurretLess = true; //} Identity MyIdentity = GetComponent <Identity> (); if (GameDataManager.OfflineMode) { ViewPoint = CreateViewPoint(); ViewPoint.transform.SetParent(transform); Invoke("SwtichToNormalMode", 5); navmeshAgent.radius = 4.5f; navmeshAgent.obstacleAvoidanceType = ObstacleAvoidanceType.MedQualityObstacleAvoidance; ControlByLocal = true; InvokeRepeating("AIState", 0, 1); if (GameDataManager.OfflineMode) { MyIdentity.Init(transform.root.GetComponent <TankInitSystem> ().ownerTeam, InstanceNetType.GameNetWorkBotClient); playerTracksController.SetWheels(true, true, true); } else { playerTracksController.SetWheels(true, false, false); } } else { ControlByLocal = false; playerTracksController.SetWheels(false, false, false); } gameObject.SendMessage("GetOwnerInfo"); StartCoroutine(AttackPlayer()); }
public IEnumerator Init() { PTC = GetComponent <PlayerTracksController> (); MaxHealth = Health; #region 多人模式 if (netType == InstanceNetType.GameNetworkClient) { Mine = true; } #endregion #region 单人模式 else if (netType == InstanceNetType.GameNetWorkOffline) { Mine = true; } #endregion Invoke("SwtichToNormalMode", 5); //InitAIObstacle (); if (netType == InstanceNetType.GameNetworkMaster) { PTC.SetWheels(true, false, false); InitExtraTankFires(false); transform.parent.GetComponentInChildren <TankFire> ().InitSystem(); } if (netType == InstanceNetType.GameNetworkOthers) { PTC.SetWheels(false, false, true); InitExtraTankFires(false); TankScript.GetComponent <TankFire>().InitSystem(); } yield return(new WaitForEndOfFrame()); if (netType == InstanceNetType.GameNetworkClient || netType == InstanceNetType.GameNetWorkOffline) { MainCamera = this.transform.root.GetComponentInChildren <Camera>(); PTC.SetWheels(true, true, true); StartCoroutine(InGameVoiceSoundManager.Self.Init(playerStateParameter.nationType, (InGameVoiceSoundManagerReturnValue) => { InGameVoiceSoundManager.PlayVoice(InGameVoiceSoundManager.VoiceType.Start_Battle, InGameVoiceSoundManager.InGameVoiceLanguage(playerStateParameter.nationType)); })); #region UI初始化 StartCoroutine(InitTankUISystem(ReturnValue => { TankUISystemInit(); InitExtraTankFires(true); UpdateHealthBar(); TankScript.GetComponent <TankFire>().isPlayerControl = true; TankScript.GetComponent <TankFire>().InitSystem(); TankScript.GetComponent <TankFire>().OnAmmoOut(); TankScript.GetComponent <TankFire> ().ReSetAmmoSprits(); })); #endregion StartCoroutine(CheckIfPlayerRollOver()); } }