public override FireState Fire() { bool isTargVisual = CheckIfLookingAtTarget(lookCheckRange); if (isTargVisual) { if (Time.time > fireTimer) { Transform missileClone = Poolable.Get <UnguidedMissile>(() => Poolable.CreateObj <UnguidedMissile>(projectilePrefab.gameObject), spawnLocation.position, owner.rotation).transform; int layerValue = whatAreOurProjectiles.layermask_to_layer(); missileClone.gameObject.layer = layerValue; UnguidedMissile missile = missileClone.GetComponent <UnguidedMissile>(); TrailRenderer projTrail = missileClone.GetComponent <TrailRenderer>(); projTrail.material = layerValue == 8 ? t1Mat : t2Mat; missile.ActivateBoost(); fireTimer = delayBetweenFire + Time.time; fireSound.Play(); return(FireState.Fired); } else { return(FireState.OnDelay); } } else { return(FireState.Failed); } }
public bool LaunchMissile() { if (Time.time > missileTimer) { Transform missileClone = Poolable.Get <UnguidedMissile>(() => Poolable.CreateObj <UnguidedMissile>(missilePrefab.gameObject), missileBay.position, owner.rotation).transform; int layerValue = whatAreOurProjectiles.layermask_to_layer(); missileClone.gameObject.layer = layerValue; missileClone.gameObject.SetActive(true); UnguidedMissile missile = missileClone.GetComponent <UnguidedMissile>(); missile.ActivateBoost(); missileTimer = missileDelay + Time.time; return(true); } return(false); }