using System.Collections; using System.Collections.Generic; using UnityEngine; using Vuforia; public class WeaponChanging : MonoBehaviour, ITrackableEventHandler, IVirtualButtonEventHandler { private TrackableBehaviour mTrackableBehaviour; public GameObject virtualBtn; public GameObject lightSaberWeapon; //public GameObject turretWeapon; //private MeshRenderer turretWeaponRender; public GameObject KnifeWeapon; public GameObject weaponCanvas; public GameObject NinjaCanvas; public GameObject EndCanvas; [System.NonSerialized] public int changingState = 1; private NinjaWeaponChange nWc; void Awake() { nWc = GameObject.FindObjectOfType(); } // Use this for initialization void Start() { mTrackableBehaviour = GetComponent(); if (mTrackableBehaviour) { mTrackableBehaviour.RegisterTrackableEventHandler(this); } virtualBtn = GameObject.Find("VirtualButton"); virtualBtn.GetComponent().RegisterEventHandler(this); NinjaCanvas.GetComponent().enabled = false; EndCanvas.GetComponent().enabled = false; } //// Update is called once per frame //void Update () { //} public void OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { if (newStatus == TrackableBehaviour.Status.DETECTED || newStatus == TrackableBehaviour.Status.TRACKED || newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED) { weaponCanvas.GetComponent().enabled = false; NinjaCanvas.GetComponent().enabled = true; EndCanvas.GetComponent().enabled = false; Debug.Log(mTrackableBehaviour.TrackableName + "::::: NAME"); int stateCorrection = changingState - 1; if (stateCorrection == 0) { stateCorrection = 2; } if (stateCorrection == 1) { var LightSaberComponents = lightSaberWeapon.GetComponentsInChildren(true); foreach (var component in LightSaberComponents) component.enabled = true; //var TurretComponents = turretWeapon.GetComponentsInChildren(true); //foreach (var component in TurretComponents) // component.enabled = false; var KnifeComponents = KnifeWeapon.GetComponentsInChildren(true); foreach (var component in KnifeComponents) component.enabled = false; } else if (stateCorrection == 2) { var LightSaberComponents = lightSaberWeapon.GetComponentsInChildren(true); foreach (var component in LightSaberComponents) component.enabled = false; //var TurretComponents = turretWeapon.GetComponentsInChildren(true); //foreach (var component in TurretComponents) //component.enabled = true; var KnifeComponents = KnifeWeapon.GetComponentsInChildren(true); foreach (var component in KnifeComponents) component.enabled = true; } //else if (changingState == 3) //{ // var LightSaberComponents = lightSaberWeapon.GetComponentsInChildren(true); // foreach (var component in LightSaberComponents) // component.enabled = false; // //var TurretComponents = turretWeapon.GetComponentsInChildren(true); // //foreach (var component in TurretComponents) // //component.enabled = false; // KnifeWeaponRender.enabled = true; //} var rendererComponents = virtualBtn.GetComponentsInChildren(true); foreach (var component in rendererComponents) component.enabled = true; } else { //OnTrackingLost(); } } protected virtual void OnTrackingLost() { var rendererComponents = GetComponentsInChildren(true); var colliderComponents = GetComponentsInChildren(true); var canvasComponents = GetComponentsInChildren(true); // Disable rendering: foreach (var component in rendererComponents) component.enabled = false; // Disable colliders: foreach (var component in colliderComponents) component.enabled = false; // Disable canvas': foreach (var component in canvasComponents) component.enabled = false; } public void OnButtonPressed(VirtualButtonBehaviour vb) { Debug.Log("Btn_Pressed"); //pass State to ninja display nWc.chgState = changingState; if (changingState == 1) { var LightSaberComponents = lightSaberWeapon.GetComponentsInChildren(true); foreach (var component in LightSaberComponents) component.enabled = true; //var TurretComponents = turretWeapon.GetComponentsInChildren(true); //foreach (var component in TurretComponents) // component.enabled = false; var KnifeComponents = KnifeWeapon.GetComponentsInChildren(true); foreach (var component in KnifeComponents) component.enabled = false; } else if (changingState == 2) { var LightSaberComponents = lightSaberWeapon.GetComponentsInChildren(true); foreach (var component in LightSaberComponents) component.enabled = false; //var TurretComponents = turretWeapon.GetComponentsInChildren(true); //foreach (var component in TurretComponents) // component.enabled = true; var KnifeComponents = KnifeWeapon.GetComponentsInChildren(true); foreach (var component in KnifeComponents) component.enabled = true; } //else if (changingState == 3) //{ // var LightSaberComponents = lightSaberWeapon.GetComponentsInChildren(true); // foreach (var component in LightSaberComponents) // component.enabled = false; // //var TurretComponents = turretWeapon.GetComponentsInChildren(true); // //foreach (var component in TurretComponents) // // component.enabled = false; // KnifeWeaponRender.enabled = true; //} //change restart loop if (changingState == 2) { changingState = 1; return; } changingState++; } public void OnButtonReleased(VirtualButtonBehaviour vb) { Debug.Log("Btn_Released"); } }