1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- using UnityEngine;
- using UnityEngine.EventSystems;
- using System.Collections;
- namespace EpicToonFX
- {
- public class ETFXFireProjectile : MonoBehaviour
- {
- [SerializeField]
- public GameObject[] projectiles;
- [Header("Missile spawns at attached game object")]
- public Transform spawnPosition;
- [HideInInspector]
- public int currentProjectile = 0;
- public float speed = 500;
- // MyGUI _GUI;
- ETFXButtonScript selectedProjectileButton;
- void Start()
- {
- selectedProjectileButton = GameObject.Find("Button").GetComponent<ETFXButtonScript>();
- }
- RaycastHit hit;
- void Update()
- {
- if (Input.GetKeyDown(KeyCode.RightArrow))
- {
- nextEffect();
- }
- if (Input.GetKeyDown(KeyCode.D))
- {
- nextEffect();
- }
- if (Input.GetKeyDown(KeyCode.A))
- {
- previousEffect();
- }
- else if (Input.GetKeyDown(KeyCode.LeftArrow))
- {
- previousEffect();
- }
- if (Input.GetKeyDown(KeyCode.Mouse0)) //On left mouse down-click
- {
- if (!EventSystem.current.IsPointerOverGameObject()) //Checks if the mouse is not over a UI part
- {
- if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit, 100f)) //Finds the point where you click with the mouse
- {
- GameObject projectile = Instantiate(projectiles[currentProjectile], spawnPosition.position, Quaternion.identity) as GameObject; //Spawns the selected projectile
- projectile.transform.LookAt(hit.point); //Sets the projectiles rotation to look at the point clicked
- projectile.GetComponent<Rigidbody>().AddForce(projectile.transform.forward * speed); //Set the speed of the projectile by applying force to the rigidbody
- }
- }
- }
- Debug.DrawRay(Camera.main.ScreenPointToRay(Input.mousePosition).origin, Camera.main.ScreenPointToRay(Input.mousePosition).direction * 100, Color.yellow);
- }
- public void nextEffect() //Changes the selected projectile to the next. Used by UI
- {
- if (currentProjectile < projectiles.Length - 1)
- currentProjectile++;
- else
- currentProjectile = 0;
- selectedProjectileButton.getProjectileNames();
- }
- public void previousEffect() //Changes selected projectile to the previous. Used by UI
- {
- if (currentProjectile > 0)
- currentProjectile--;
- else
- currentProjectile = projectiles.Length - 1;
- selectedProjectileButton.getProjectileNames();
- }
- public void AdjustSpeed(float newSpeed) //Used by UI to set projectile speed
- {
- speed = newSpeed;
- }
- }
- }
|