You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
3.0 KiB
86 lines
3.0 KiB
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; |
|
} |
|
} |
|
} |