public static void CreateObject(string spawnedObject, Vector3 p, Vector3 e) { if (GameDataManager.OfflineMode) { PoolManager.CreateObject(spawnedObject, p, e); } }
void SimpleFireMethod() { if (NowTime > tankFireParameter.ReloadTime && BulletCountList[SelectAmmo] > 0) { GameObject ammo = (GameObject)Instantiate(tankFireParameter.bulletType, FFPoint.transform.position, FFPoint.transform.rotation); ammo.GetComponent <BulletScript>().bulletType = SwtichAmmo(SelectAmmo); ammo.GetComponent <BulletScript>().fireOwner = this; ammo.GetComponent <BulletScript>().fireStartPosition = FFPoint.position; ammo.GetComponent <BulletScript>().UseGravity = UseGravity; NowTime = 0; BulletCountList[SelectAmmo] -= 1; CheckAmmoCount(); ammo.GetComponent <BulletScript>().bulletState = BulletState.Master; MainBody.GetComponent <Rigidbody>().AddForceAtPosition(tankFireParameter.recoilTransform.forward * -1000 * tankFireParameter.FireRecoil, tankFireParameter.recoilTransform.position); ReSetAmmoSprits(); ammo.GetComponent <BulletScript>().bulletState = BulletState.Client; PoolManager.CreateObject(tankFireParameter.muzzleFire.ToString(), FireEffectPoint.transform.position, FireEffectPoint.transform.eulerAngles); StartCoroutine(FireSmokeGenerater()); } else { if (isBotControl) { return; } playerState.UpdataGameNote(uGUI_Localsize.GetContent("OnReloading")); } }
private void CreateAsteroid() { float randomSpeed = Random.Range(-_maxSpeed, _maxSpeed); if (randomSpeed <= _minSpeed && randomSpeed >= -_minSpeed) { randomSpeed = _minScale * (TrueFalseRandom() ? 1.0f : -1.0f); } Vector3 randomPosition = new Vector3(); if (TrueFalseRandom()) { //Top or bottom position randomPosition.x = Random.Range(_topLeftScreen.position.x - _spawnRadius, _bottomRightScreen.position.x + _spawnRadius); randomPosition.y = _topLeftScreen.position.y; } else { //Left or right spawn randomPosition.x = TrueFalseRandom() ? _topLeftScreen.position.x : _bottomRightScreen.position.x; randomPosition.y = Random.Range(_topLeftScreen.position.y - _spawnRadius, _bottomRightScreen.position.y + _spawnRadius); } Quaternion randomRotation = Random.rotation; randomRotation.eulerAngles = new Vector3(0.0f, 0.0f, randomRotation.eulerAngles.z); GameObject usedObject = _asteroidPoolManager.CreateObject(randomPosition, randomRotation, randomSpeed); //Applying scale float randomScale = Random.Range(_minScale, _maxScale); usedObject.transform.localScale = new Vector3(randomScale, randomScale, 1.0f); }
public static void PlayVoice(VoiceType voiceType, Language language) { if (Time.time - LastPlayVoiceTime < 1) { return; } LastPlayVoiceTime = Time.time; switch (voiceType) { case VoiceType.Armor_Not_Pierced: PoolManager.CreateObject(RandomStringInList(Self.Armor_Not_Pierced) + language.ToString(), Vector3.zero, Vector3.zero); break; case VoiceType.Armor_Pierced: PoolManager.CreateObject(RandomStringInList(Self.Armor_Pierced) + language.ToString(), Vector3.zero, Vector3.zero); break; case VoiceType.Armor_Ricochet: PoolManager.CreateObject(RandomStringInList(Self.Armor_Ricochet) + language.ToString(), Vector3.zero, Vector3.zero); break; case VoiceType.Enemy_Killed: PoolManager.CreateObject(RandomStringInList(Self.Enemy_Killed) + language.ToString(), Vector3.zero, Vector3.zero); break; case VoiceType.Start_Battle: PoolManager.CreateObject(RandomStringInList(Self.Start_Battle) + language.ToString(), Vector3.zero, Vector3.zero); break; case VoiceType.Vehicle_Destroyed: PoolManager.CreateObject(RandomStringInList(Self.Vehicle_Destroyed) + language.ToString(), Vector3.zero, Vector3.zero); break; } }
//显示倒塌的效果 private void ShowParticle() { if (DestroyEffectType != BuildingDestroyEffectType.None) { PoolManager.CreateObject(DestroyEffectType.ToString(), transform.position, transform.eulerAngles); } }
public void AdvanceFireMethod() { if (BulletCountList[SelectAmmo] > 0) { if (tankFireParameter.advanceFireClass.SmallNowTime > tankFireParameter.advanceFireClass.SmallReloadTime) { if (tankFireParameter.advanceFireClass.LargeFinish && tankFireParameter.advanceFireClass.SmallAmmoLeft > 0) { ReSetAmmoSprits(); tankFireParameter.advanceFireClass.SmallAmmoLeft -= 1; tankFireParameter.advanceFireClass.SmallNowTime = 0; GameObject ammo = Instantiate(tankFireParameter.bulletType, FFPoint.transform.position, FFPoint.transform.rotation) as GameObject; ammo.GetComponent <BulletScript>().fireOwner = this; ammo.GetComponent <BulletScript>().bulletType = SwtichAmmo(SelectAmmo); ammo.GetComponent <BulletScript>().fireStartPosition = FFPoint.position; ammo.GetComponent <BulletScript>().UseGravity = UseGravity; ammo.GetComponent <BulletScript>().bulletState = BulletState.Master; MainBody.GetComponent <Rigidbody>().AddForceAtPosition(tankFireParameter.recoilTransform.forward * -1000 * tankFireParameter.FireRecoil, tankFireParameter.recoilTransform.position); PoolManager.CreateObject(tankFireParameter.muzzleFire.ToString(), FireEffectPoint.transform.position, FireEffectPoint.transform.eulerAngles); StartCoroutine(FireSmokeGenerater()); if (!ExtraTurret) { AmmoInfos[SelectAmmo].text = BulletCountList[SelectAmmo].ToString(); } } BulletCountList[SelectAmmo] -= 1; CheckAmmoCount(); ReSetAmmoSprits(); PoolManager.CreateObject(tankFireParameter.muzzleFire.ToString(), FireEffectPoint.transform.position, FireEffectPoint.transform.eulerAngles); StartCoroutine(FireSmokeGenerater()); } else { if (isBotControl) { return; } playerState.UpdataGameNote(uGUI_Localsize.GetContent("OnReloading")); } } if (tankFireParameter.advanceFireClass.SmallAmmoLeft <= 0) { tankFireParameter.advanceFireClass.LargeFinish = false; } }
void ApplyOnHitSound(float Damage) { if (Damage <= MaxHealth * 0.1f) { PoolManager.CreateObject("ap_critical_hit_small", transform.position, transform.eulerAngles); } else if (Damage > MaxHealth * 0.1f && Damage < Health * 0.5f) { PoolManager.CreateObject("ap_critical_hit_medium", transform.position, transform.eulerAngles); } else { PoolManager.CreateObject("ap_critical_hit_huge", transform.position, transform.eulerAngles); } }
public void Start() { // Initialize the fire sound. if (bulletState == BulletState.Info) { StartCoroutine(InitWeaponSound()); return; } if (bulletType == BulletType.ApAmmo) { shellNormalizationAngle = 3; } else if (bulletType == BulletType.APCRAmmo) { shellNormalizationAngle = 1; Speed *= 1.25f; } else if (bulletType == BulletType.HeAmmo) { Speed *= 0.75f; } PoolManager.CreateObject(ammoAudio.ammoFireAudio.ToString(), transform.position, transform.eulerAngles); //Destroy Recycle if (isMachineAmmo) { StartCoroutine(DelayDestroy(5)); } else { StartCoroutine(DelayDestroy(10)); } weaponProjectileEffect = PoolManager.CreateObject("WeaponProjectile", transform.position, transform.eulerAngles); //Projectile Manager P0 = this.gameObject.transform.position; projectile.Velocity = Speed; projectile.Gravity = GravityDamper; Previous = transform.position; }
public IEnumerator FireSmokeGenerater() { PlayGunAim(); GameObject _FireSmoke = PoolManager.CreateObject("FireSmoke", FireEffectPoint.transform.position, FireEffectPoint.transform.eulerAngles); if (_FireSmoke == null) { yield break; } while (_FireSmoke.activeSelf) { _FireSmoke.transform.position = FireEffectPoint.transform.position; yield return(new WaitForEndOfFrame()); } yield break; }
public System.Action <string, Vector3, Vector3> onGameObjectRaisedSpawnEvent; //Master 物体 public void HandleMasterSpawnedObject(string spawnedObject, Vector3 p, Vector3 e) { PoolManager.CreateObject(spawnedObject, p, e); }
public void OnDeadActionCalled() { Destroy(GetComponent <Identity> ()); StopAllCoroutines(); if (GameDataManager.OfflineMode) { playerTracksController.UpdateWheels(0, 0); playerTracksController.enabled = false; } foreach (HitBox temp in transform.root.GetComponentsInChildren <HitBox>()) { Destroy(temp); } #if ClientCode #region 炮塔飞天 TankScript.GetComponent <TurretController> ().Turret.gameObject.AddComponent <Rigidbody> ().AddForce(Vector3.up * 500); TankScript.GetComponent <TurretController> ().Turret.GetComponent <Rigidbody> ().drag = 0.3f; TankScript.GetComponent <TurretController> ().Turret.GetComponent <Rigidbody> ().mass = 1000; TankScript.GetComponent <TurretController> ().Turret.GetComponent <Rigidbody> ().useGravity = true; #endregion PoolManager.CreateObject("DestroyEffect", transform.position, transform.eulerAngles); #endif foreach (HitBox _HitBox in transform.root.GetComponentsInChildren <HitBox>()) { if (_HitBox) { _HitBox.enabled = false; } } //TankScript.GetComponent<MouseTurret> ().target = null; if (ControlByLocal) { #region PTC关闭 playerTracksController.accelG = 0; playerTracksController.steerG = 0; playerTracksController.UpdateWheels(0, 0); playerTracksController.enabled = false; #endregion #region Nav navmeshAgent.enabled = false; Destroy(navmeshAgent.gameObject); #endregion } #region TankScript TankScript.GetComponent <TankFire>().NowTime = 0; TankScript.GetComponent <TankFire>().enabled = false; TankScript.GetComponent <TurretController>().enabled = false; TankScript.SetActive(false); #endregion Destroy(transform.root.gameObject, 10f); this.enabled = false; }
void OnDeadActionCalled() { Debug.Log("OnDeadActionCalled"); if (netType != InstanceNetType.GameNetworkMaster) { PTC.enableUserInput = false; GetComponent <Rigidbody>().velocity = Vector3.zero; GetComponent <Rigidbody>().angularVelocity = Vector3.zero; if (netType == InstanceNetType.GameNetworkClient || netType == InstanceNetType.GameNetWorkOffline) { PTC.enableUserInput = false; PTC.UpdateWheels(0, 0); PTC.enabled = false; Destroy(TankUIRoot.gameObject); //GameNetwork.Instance.OnClientPlayerDead(); //transform.root.GetComponentInChildren<Camera>().gameObject.AddComponent<Grayscale>().shader = Shader.Find("Hidden/Grayscale Effect"); InGameVoiceSoundManager.PlayVoice(InGameVoiceSoundManager.VoiceType.Vehicle_Destroyed, InGameVoiceSoundManager.InGameVoiceLanguage(playerStateParameter.nationType)); PoolManager.CreateObject("DestroyEffect", transform.position, transform.eulerAngles); } if (netType == InstanceNetType.GameNetworkOthers) { GetComponent <Rigidbody>().isKinematic = true; } #region 炮塔飞天 if (Turret.GetComponent <MeshRenderer>() != null) { if (Turret.GetComponent <Rigidbody>() == null) { Turret.AddComponent <Rigidbody>(); } Turret.GetComponent <Rigidbody>().velocity = GetComponent <Rigidbody>().velocity *0.1f; Turret.GetComponent <Rigidbody>().AddForceAtPosition(Vector3.up * -500, Turret.transform.position); Turret.GetComponent <Rigidbody>().drag = 0.1f; Turret.GetComponent <Rigidbody>().mass = 1000; Turret.GetComponent <Rigidbody>().useGravity = true; } #endregion } else { //GameNetwork.Instance.OnPlayerDead(Util.FindPhotonPlayer (tankInitSystem.PlayerID),tankInitSystem.VehicleName); PTC.SwitchRPM = 0; PTC.UpdateWheels(0, 0); PTC.enabled = false; #region 爆炸特效 PoolManagerSpawnModule.CreateObject("DestroyEffect", transform.position, transform.eulerAngles); #endregion } //foreach(Object temp in DiedDestoryObjects){ // if(temp){ // foreach (HitBox tempHB in ((GameObject)temp).GetComponentsInChildren<HitBox>()){ // if(tempHB){ // tempHB.enabled =false; // } // } // } //} transform.tag = "Untagged"; if (TankScript.GetComponent <TankFire>().tankFireParameter.HasMachineGun) { TankScript.GetComponent <TankFire>().GetComponent <MachineGun>().CancelInvoke(); } TankScript.GetComponent <TankFire>().NowTime = 0; TankScript.GetComponent <TankFire>().enabled = false; TankScript.GetComponent <TurretController>().enabled = false; Destroy(GetComponent <Identity> ()); GameEventManager.onPlayerVehicleDestroyed(); if (GameDataManager.OfflineMode) { Destroy(transform.root.gameObject, 5f); } }
void OnServerOnRicochet() { PoolManager.CreateObject("apcr_ricochet_main", transform.position, transform.eulerAngles); }
void OnServerOnNotBreakDown() { PoolManager.CreateObject("ap_armor_not_pierce_main", transform.position, transform.eulerAngles); }