add ckg
plantilla base para movimiento básico
This commit is contained in:
397
Assets/Game Kit Controller/Scripts/Vehicles/playerHUDManager.cs
Normal file
397
Assets/Game Kit Controller/Scripts/Vehicles/playerHUDManager.cs
Normal file
@@ -0,0 +1,397 @@
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using UnityEngine.UI;
|
||||
using System.Collections.Generic;
|
||||
|
||||
public class playerHUDManager : MonoBehaviour
|
||||
{
|
||||
[Header ("Main Settings")]
|
||||
[Space]
|
||||
|
||||
//this scripts allows to a vehicle to get all the hud elements, so all the sliders values and text info can be showed correctly
|
||||
public string playerHUDName = "Player Info";
|
||||
public string playerBarsName = "Player Bars";
|
||||
public string playerModeName = "Player Mode";
|
||||
|
||||
public GameObject freeInteractionDeviceCursor;
|
||||
|
||||
public bool useBlurUIPanel = true;
|
||||
|
||||
[Space]
|
||||
[Header ("HUD Element List Settings")]
|
||||
[Space]
|
||||
|
||||
public List<HUDElementInfo> HUDElementInfoList = new List<HUDElementInfo> ();
|
||||
|
||||
[Space]
|
||||
[Header ("HUD Elements")]
|
||||
[Space]
|
||||
|
||||
public GameObject playerHUD;
|
||||
public GameObject vehicleHUD;
|
||||
public Slider vehicleHealth;
|
||||
public Slider vehicleBoost;
|
||||
public Slider vehicleFuel;
|
||||
public Slider vehicleAmmo;
|
||||
public Text weaponName;
|
||||
public Text ammoInfo;
|
||||
public GameObject healthContent;
|
||||
public GameObject energyContent;
|
||||
public GameObject ammoContent;
|
||||
public GameObject fuelContent;
|
||||
public GameObject vehicleCursor;
|
||||
public Texture defaultVehicleCursor;
|
||||
public Color defaultVehicleCursorColor;
|
||||
public Vector2 defaultVehicleCursorSize;
|
||||
|
||||
public GameObject speedContent;
|
||||
public Text currentSpeed;
|
||||
public GameObject vehicleControlsMenu;
|
||||
public GameObject vehicleControlsMenuElement;
|
||||
|
||||
[HideInInspector] public vehicleHUDElements hudElements;
|
||||
|
||||
GameObject currentVehicle;
|
||||
List<GameObject> actionList = new List<GameObject> ();
|
||||
vehicleHUDManager currentVehicleHUDManager;
|
||||
|
||||
bool fingerPressingTouchPanel;
|
||||
|
||||
void Start ()
|
||||
{
|
||||
vehicleControlsMenu.SetActive (true);
|
||||
vehicleControlsMenu.SetActive (false);
|
||||
|
||||
hudElements.vehicleHealth = vehicleHealth;
|
||||
hudElements.vehicleBoost = vehicleBoost;
|
||||
hudElements.vehicleFuel = vehicleFuel;
|
||||
hudElements.vehicleAmmo = vehicleAmmo;
|
||||
hudElements.weaponName = weaponName;
|
||||
hudElements.ammoInfo = ammoInfo;
|
||||
hudElements.healthContent = healthContent;
|
||||
hudElements.energyContent = energyContent;
|
||||
hudElements.ammoContent = ammoContent;
|
||||
hudElements.fuelContent = fuelContent;
|
||||
hudElements.vehicleCursor = vehicleCursor;
|
||||
hudElements.currentSpeed = currentSpeed;
|
||||
hudElements.speedContent = speedContent;
|
||||
hudElements.defaultVehicleCursor = defaultVehicleCursor;
|
||||
hudElements.defaultVehicleCursorColor = defaultVehicleCursorColor;
|
||||
hudElements.defaultVehicleCursorSize = defaultVehicleCursorSize;
|
||||
}
|
||||
|
||||
public void setControlList (inputActionManager manager)
|
||||
{
|
||||
for (int i = 0; i < actionList.Count; i++) {
|
||||
Destroy (actionList [i]);
|
||||
}
|
||||
|
||||
actionList.Clear ();
|
||||
|
||||
if (!vehicleControlsMenuElement.activeSelf) {
|
||||
vehicleControlsMenuElement.SetActive (true);
|
||||
}
|
||||
|
||||
if (!vehicleControlsMenu.activeSelf) {
|
||||
vehicleControlsMenu.SetActive (true);
|
||||
}
|
||||
|
||||
//every key field in the edit input button has an editButtonInput component, so create every of them
|
||||
for (int i = 0; i < manager.multiAxesList.Count; i++) {
|
||||
for (int j = 0; j < manager.multiAxesList [i].axes.Count; j++) {
|
||||
|
||||
inputActionManager.Axes currentAxes = manager.multiAxesList [i].axes [j];
|
||||
|
||||
if (currentAxes.showInControlsMenu) {
|
||||
GameObject buttonClone = (GameObject)Instantiate (vehicleControlsMenuElement, vehicleControlsMenuElement.transform.position, Quaternion.identity);
|
||||
buttonClone.transform.SetParent (vehicleControlsMenuElement.transform.parent);
|
||||
buttonClone.transform.localScale = Vector3.one;
|
||||
buttonClone.name = currentAxes.Name;
|
||||
buttonClone.transform.GetChild (0).GetComponent<Text> ().text = currentAxes.Name;
|
||||
buttonClone.transform.GetChild (1).GetComponentInChildren<Text> ().text = currentAxes.keyButton;
|
||||
actionList.Add (buttonClone);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//get the scroller in the edit input menu
|
||||
Scrollbar scroller = vehicleControlsMenu.GetComponentInChildren<Scrollbar> ();
|
||||
|
||||
//set the scroller in the top position
|
||||
scroller.value = 1;
|
||||
|
||||
//disable the menu
|
||||
vehicleControlsMenu.SetActive (false);
|
||||
vehicleControlsMenuElement.SetActive (false);
|
||||
}
|
||||
|
||||
public void setTouchingMenuPanelState (bool state)
|
||||
{
|
||||
fingerPressingTouchPanel = state;
|
||||
}
|
||||
|
||||
public bool isFingerPressingTouchPanel ()
|
||||
{
|
||||
return fingerPressingTouchPanel;
|
||||
}
|
||||
|
||||
public void openOrCloseControlsMenu (bool state)
|
||||
{
|
||||
if (vehicleControlsMenu.activeSelf != state) {
|
||||
vehicleControlsMenu.SetActive (state);
|
||||
}
|
||||
}
|
||||
|
||||
public void setCurrentVehicleHUD (GameObject vehicle)
|
||||
{
|
||||
currentVehicle = vehicle;
|
||||
|
||||
if (currentVehicle) {
|
||||
currentVehicleHUDManager = currentVehicle.GetComponent<vehicleHUDManager> ();
|
||||
} else {
|
||||
currentVehicleHUDManager = null;
|
||||
}
|
||||
}
|
||||
|
||||
public void closeControlsMenu ()
|
||||
{
|
||||
if (currentVehicleHUDManager != null) {
|
||||
currentVehicleHUDManager.IKDrivingManager.openOrCloseControlsMenu (false);
|
||||
}
|
||||
}
|
||||
|
||||
public void destroyCurrentVehicle ()
|
||||
{
|
||||
if (currentVehicleHUDManager != null) {
|
||||
if (!currentVehicleHUDManager.vehicleIsDestroyed () && currentVehicleHUDManager.isVehicleBeingDriven ()) {
|
||||
currentVehicleHUDManager.destroyVehicle ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void damageCurrentVehicle (float damageAmount)
|
||||
{
|
||||
if (currentVehicleHUDManager != null) {
|
||||
if (!currentVehicleHUDManager.vehicleIsDestroyed () && currentVehicleHUDManager.isVehicleBeingDriven ()) {
|
||||
currentVehicleHUDManager.damageVehicle (damageAmount);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void takeEnergyCurrentVehicle (float energyAmount)
|
||||
{
|
||||
if (currentVehicleHUDManager != null) {
|
||||
if (!currentVehicleHUDManager.vehicleIsDestroyed () && currentVehicleHUDManager.isVehicleBeingDriven ()) {
|
||||
currentVehicleHUDManager.removeEnergy (energyAmount);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void takeFuelCurrentVehicle (float fuelAmount)
|
||||
{
|
||||
if (currentVehicleHUDManager != null) {
|
||||
if (!currentVehicleHUDManager.vehicleIsDestroyed () && currentVehicleHUDManager.isVehicleBeingDriven ()) {
|
||||
currentVehicleHUDManager.removeFuel (fuelAmount);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void giveHealthCurrentVehicle (float healthAmount)
|
||||
{
|
||||
if (currentVehicleHUDManager != null) {
|
||||
if (!currentVehicleHUDManager.vehicleIsDestroyed () && currentVehicleHUDManager.isVehicleBeingDriven ()) {
|
||||
currentVehicleHUDManager.getHealth (healthAmount);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void giveEnergyCurrentVehicle (float energyAmount)
|
||||
{
|
||||
if (currentVehicleHUDManager != null) {
|
||||
if (!currentVehicleHUDManager.vehicleIsDestroyed () && currentVehicleHUDManager.isVehicleBeingDriven ()) {
|
||||
currentVehicleHUDManager.getEnergy (energyAmount);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void giveFuelCurrentVehicle (float fuelAmount)
|
||||
{
|
||||
if (currentVehicleHUDManager != null) {
|
||||
if (!currentVehicleHUDManager.vehicleIsDestroyed () && currentVehicleHUDManager.isVehicleBeingDriven ()) {
|
||||
currentVehicleHUDManager.getFuel (fuelAmount);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setInfiniteHealthCurrentVehicleState (bool state)
|
||||
{
|
||||
if (currentVehicleHUDManager != null) {
|
||||
if (!currentVehicleHUDManager.vehicleIsDestroyed () && currentVehicleHUDManager.isVehicleBeingDriven ()) {
|
||||
currentVehicleHUDManager.setInvencibleState (state);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setInfiniteEnergyCurrentVehicleState (bool state)
|
||||
{
|
||||
if (currentVehicleHUDManager != null) {
|
||||
if (!currentVehicleHUDManager.vehicleIsDestroyed () && currentVehicleHUDManager.isVehicleBeingDriven ()) {
|
||||
currentVehicleHUDManager.setInfiniteEnergyState (state);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setInfiniteFuelCurrentVehicleState (bool state)
|
||||
{
|
||||
if (currentVehicleHUDManager != null) {
|
||||
if (!currentVehicleHUDManager.vehicleIsDestroyed () && currentVehicleHUDManager.isVehicleBeingDriven ()) {
|
||||
currentVehicleHUDManager.setInfiniteFuelState (state);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setInfiniteStatCurrentVehicleState (bool state)
|
||||
{
|
||||
setInfiniteHealthCurrentVehicleState (state);
|
||||
|
||||
setInfiniteEnergyCurrentVehicleState (state);
|
||||
|
||||
setInfiniteFuelCurrentVehicleState (state);
|
||||
}
|
||||
|
||||
public vehicleHUDElements getHudElements ()
|
||||
{
|
||||
return hudElements;
|
||||
}
|
||||
|
||||
public GameObject getVehicleCursor ()
|
||||
{
|
||||
return hudElements.vehicleCursor;
|
||||
}
|
||||
|
||||
public void setFreeInteractionDeviceCursorActiveState (bool state)
|
||||
{
|
||||
if (freeInteractionDeviceCursor != null && freeInteractionDeviceCursor.activeSelf != state) {
|
||||
freeInteractionDeviceCursor.SetActive (state);
|
||||
}
|
||||
}
|
||||
|
||||
public void enableOrDisableHUD (bool state)
|
||||
{
|
||||
enableOrDisableHUDElement (playerHUDName, state, false);
|
||||
}
|
||||
|
||||
public void enableOrDisablePlayerBars (bool state)
|
||||
{
|
||||
enableOrDisableHUDElement (playerBarsName, state, false);
|
||||
}
|
||||
|
||||
public void enableOrDisablePlayerMode (bool state)
|
||||
{
|
||||
enableOrDisableHUDElement (playerModeName, state, false);
|
||||
}
|
||||
|
||||
public void enableOrDisableHUDFromEditor (bool state)
|
||||
{
|
||||
enableOrDisableHUDElement (playerHUDName, state, true);
|
||||
}
|
||||
|
||||
public void enableOrDisablePlayerBarsFromEditor (bool state)
|
||||
{
|
||||
enableOrDisableHUDElement (playerBarsName, state, true);
|
||||
}
|
||||
|
||||
public void enableOrDisablePlayerModeFromEditor (bool state)
|
||||
{
|
||||
enableOrDisableHUDElement (playerModeName, state, true);
|
||||
}
|
||||
|
||||
public void enableOrDisableVehicleHUD (bool state)
|
||||
{
|
||||
if (vehicleHUD.activeSelf != state) {
|
||||
vehicleHUD.SetActive (state);
|
||||
}
|
||||
}
|
||||
|
||||
public void enableHUDElement (string elementName)
|
||||
{
|
||||
enableOrDisableHUDElement (elementName, true, false);
|
||||
}
|
||||
|
||||
public void disableHUDElement (string elementName)
|
||||
{
|
||||
enableOrDisableHUDElement (elementName, false, false);
|
||||
}
|
||||
|
||||
public void enableHUDElementFromEditor (string elementName)
|
||||
{
|
||||
enableOrDisableHUDElement (elementName, true, true);
|
||||
}
|
||||
|
||||
public void disableHUDElementFromEditor (string elementName)
|
||||
{
|
||||
enableOrDisableHUDElement (elementName, false, true);
|
||||
}
|
||||
|
||||
public void enableOrDisableHUDElement (string elementName, bool state, bool usedFromEditor)
|
||||
{
|
||||
for (int i = 0; i < HUDElementInfoList.Count; i++) {
|
||||
if (usedFromEditor) {
|
||||
if (HUDElementInfoList [i].Name.Equals (elementName)) {
|
||||
if (HUDElementInfoList [i].HUDElementGameObject.activeSelf != state) {
|
||||
HUDElementInfoList [i].HUDElementGameObject.SetActive (state);
|
||||
}
|
||||
|
||||
HUDElementInfoList [i].HUDElementEnabled = state;
|
||||
}
|
||||
} else {
|
||||
if (HUDElementInfoList [i].HUDElementEnabled && HUDElementInfoList [i].Name.Equals (elementName)) {
|
||||
if (HUDElementInfoList [i].HUDElementGameObject.activeSelf != state) {
|
||||
HUDElementInfoList [i].HUDElementGameObject.SetActive (state);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool isHUDElementEnabled (string elementName)
|
||||
{
|
||||
for (int i = 0; i < HUDElementInfoList.Count; i++) {
|
||||
if (HUDElementInfoList [i].HUDElementEnabled && HUDElementInfoList [i].Name.Equals (elementName)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
public class vehicleHUDElements
|
||||
{
|
||||
public Slider vehicleHealth;
|
||||
public Slider vehicleBoost;
|
||||
public Slider vehicleFuel;
|
||||
public Slider vehicleAmmo;
|
||||
public Text weaponName;
|
||||
public Text ammoInfo;
|
||||
public GameObject healthContent;
|
||||
public GameObject energyContent;
|
||||
public GameObject ammoContent;
|
||||
public GameObject fuelContent;
|
||||
public GameObject vehicleCursor;
|
||||
public Text currentSpeed;
|
||||
public GameObject speedContent;
|
||||
public Texture defaultVehicleCursor;
|
||||
public Color defaultVehicleCursorColor;
|
||||
public Vector2 defaultVehicleCursorSize;
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
public class HUDElementInfo
|
||||
{
|
||||
public string Name;
|
||||
public bool HUDElementEnabled = true;
|
||||
|
||||
public GameObject HUDElementGameObject;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user