//............................................................ //............................................... * TRIGGERS * private void OnTriggerEnter(Collider colliderBox) { GameObject colliderObject; colliderObject = colliderBox.gameObject; BalloonedShark sharkObject; sharkObject = colliderObject.GetComponent <BalloonedShark>(); BalloonedChest treasureChestObject; treasureChestObject = colliderObject.GetComponent <BalloonedChest>(); if (sharkObject != null) { if (m_FiringCooldownTimer <= 0) { m_IsFiring = true; m_Cannon.m_PlayerControlsAreActive = false; m_Cannon.FireCannon(); //make prefab particle fx smoke GameObject confettiParticleFX; confettiParticleFX = Instantiate(confettiPrefab); confettiParticleFX.transform.position = new Vector3(sharkObject.transform.position.x, sharkObject.transform.position.y + m_SpawnPosition, sharkObject.transform.position.z); sharkObject.m_IsGoingUp = false; sharkObject.m_HangTimer = sharkObject.m_HangDur; m_FiringCooldownTimer = m_FiringCooldownDur; } } if (treasureChestObject != null) { if (m_FiringCooldownTimer <= 0) { m_IsFiring = true; m_Cannon.m_PlayerControlsAreActive = false; m_Cannon.FireCannon(); //CannonFireAndSmoke(); GameObject confettiParticleFX; confettiParticleFX = Instantiate(confettiPrefab); confettiParticleFX.transform.position = new Vector3(treasureChestObject.transform.position.x, treasureChestObject.transform.position.y + m_SpawnPosition, treasureChestObject.transform.position.z); BundleOfCoins coinBundleObject; coinBundleObject = Instantiate(m_CoinBundlePrefab) as BundleOfCoins; coinBundleObject.transform.position = new Vector3(treasureChestObject.transform.position.x, treasureChestObject.transform.position.y + m_SpawnPosition, treasureChestObject.transform.position.z); treasureChestObject.m_IsGoingUp = false; treasureChestObject.m_HangTimer = treasureChestObject.m_HangDur; m_FiringCooldownTimer = m_FiringCooldownDur; } } }
//............................................................ //................................................. * UPDATE * void Update() { // RAYCAST m_LineRenderer.SetPosition(0, rayOriginCannonBarrel.transform.position); m_LineRenderer.SetPosition(1, rayOriginCannonBarrel.transform.position + m_CannonFireRange * transform.forward); GameObject a_HitObject; a_HitObject = null; //so the load bar is barely infront of the reticle frame float m_ReticleLoadBarRange = m_ReticleRange + 0.001f; Ray a_Ray = new Ray(); a_Ray.origin = rayOriginCannonBarrel.transform.position; a_Ray.direction = transform.forward; RaycastHit a_RayCastaHit; if (Physics.Raycast(a_Ray, out a_RayCastaHit, m_CannonFireRange)) { m_LineRenderer.SetPosition(1, a_RayCastaHit.point); a_HitObject = a_RayCastaHit.transform.gameObject; m_ReticleFrame.SetActive(true); m_ReticleFrame.transform.position = (a_Ray.origin + a_Ray.direction + m_ReticleRange * transform.forward); } else { m_ReticleFrame.SetActive(true); m_ReticleFrame.transform.position = (a_Ray.origin + a_Ray.direction + m_ReticleRange * transform.forward); m_IsReadyingFire = false; m_Reticle.SetActive(false); } if (a_HitObject != null) { BalloonedObject balloonedTargets; balloonedTargets = a_HitObject.GetComponent <BalloonedObject>(); if (balloonedTargets != null) { m_Reticle.SetActive(true); m_Reticle.transform.position = (a_Ray.origin + a_Ray.direction + m_ReticleLoadBarRange * transform.forward); m_IsReadyingFire = true; } else { m_IsReadyingFire = false; m_Reticle.SetActive(false); } } if (m_IsFiring == true) { m_Cannon.FireCannon(); m_IsReadyingFire = false; m_IsFiring = false; } }