using System.Collections; using System.Collections.Generic; using UnityEngine; public class FirstControlCheck : MonoBehaviour { private bool check = false; private bool checkAqm = false; private Ray ray; private RaycastHit hit; private Camera camera; public RectTransform uiAqm; private GameObject tempShowObj; private GameObject tempHideObj; // Start is called before the first frame update void Start() { camera = this.GetComponent(); OpenCheckAQM(); } // Update is called once per frame void Update() { if (check) { ray = camera.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit)) { if (checkAqm) { if (hit.collider.gameObject.tag == "AQM") { uiAqm.gameObject.SetActive(true); uiAqm.position = new Vector3(Input.mousePosition.x - uiAqm.sizeDelta.x / 2, Input.mousePosition.y - uiAqm.sizeDelta.y / 2, 0); } else { uiAqm.gameObject.SetActive(false); } } if (Input.GetMouseButtonDown(0)) { switch (hit.collider.gameObject.tag) { case "CanHide": if (tempHideObj) { tempHideObj.SetActive(false); check = false; } break; case "HideAndShow": GameMannage.instance.WuziChangeState(); break; case "CanRotate": if (tempHideObj) { hit.transform.localEulerAngles = new Vector3(hit.transform.localEulerAngles.x, hit.transform.localEulerAngles.y + 90, hit.transform.localEulerAngles.z); } break; case "AQM": for (int i = 0; i < hit.transform.parent.childCount; i++) { hit.transform.parent.GetChild(i).GetComponent().enabled = false; } hit.collider.transform.parent.GetComponent().isComplete = true; hit.collider.gameObject.SetActive(false); uiAqm.gameObject.SetActive(false); checkAqm = false; check = false; break; } } } } } public void StartCheck(GameObject hideTarget) { check = true; tempHideObj = hideTarget; } public void StartCheck(GameObject hideTarget,GameObject showTarget) { check = true; tempHideObj = hideTarget; tempShowObj = showTarget; } public void OpenCheck() { check = true; } public void OpenCheckAQM() { check = true; checkAqm = true; } }