using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using Level12; using UnityEngine.EventSystems; using System; namespace Level23 { public class Level23 : MonoBehaviour { public GameObject carObj,carobjTip,carobj3Tip; public GameObject tipsUI,endTipsUI,huiseUI, zhi1obj, zhi2obj; public Button offBtn, okBtn, backBtn,tipOkBtn; public Button noAnswOkBtn, noAnswQxBtn; Vector3 newPos = new Vector3(-0.16f, 0, -0.33f); Vector3 newrRotation = new Vector3(103.1f, 0, 0); public bool isDrag=false; private Vector3 posOffset; private Vector3 screenPoint; private Vector3 offset; bool isEnd = false; bool[] answerbool = { false, false }; // Start is called before the first frame update void Start() { offBtn.onClick.AddListener(delegate () { offBtn.interactable = false; carObj.transform.localPosition = newPos; carObj.transform.localEulerAngles = newrRotation; huiseUI.SetActive(true); carobjTip.SetActive(true); isDrag = true; answerbool[0] = true; }); okBtn.onClick.AddListener(delegate () { if (isEnd) { endTipsUI.SetActive(true); GameRoot.SubmitOprerationAnswer(23, 1, answerbool); } else tipsUI.SetActive(true); }); backBtn.onClick.AddListener(delegate () { GameRoot.ReturnMenu(); }); tipOkBtn.onClick.AddListener(delegate () { GameRoot.SubmitPassState(23, true); GameRoot.ReturnMenu(); }); noAnswOkBtn.onClick.AddListener(delegate () { isEnd = true; tipsUI.SetActive(false); }); noAnswQxBtn.onClick.AddListener(delegate () { tipsUI.SetActive(false); }); //UIEventListener.Get(zhi1obj).onDrag = OnDrag; //UIEventListener.Get(zhi1obj).onBeginDrag = OnBeginDrag; //UIEventListener.Get(zhi1obj).onEndDrag = OnEndDrag; } private void OnEndDrag(PointerEventData eventData) { posOffset = Vector3.zero; isDrag = false; } private void OnBeginDrag(PointerEventData eventData) { Vector3 vPos = new Vector3(); if (RectTransformUtility.ScreenPointToWorldPointInRectangle(zhi1obj.GetComponent() , eventData.position, Camera.main, out vPos)) { posOffset = zhi1obj.transform.position - vPos; } isDrag = true; } private void OnDrag(PointerEventData eventData) { if (isDrag) { Vector3 pos; if (RectTransformUtility.ScreenPointToWorldPointInRectangle(zhi1obj.GetComponent(), eventData.position, Camera.main, out pos)) { zhi1obj.transform.position = pos + posOffset; zhi1obj.GetComponent().position = offset + pos; } } else if (eventData.button == PointerEventData.InputButton.Right) { //Rotation(); } } string currentDragName; public void SetZhiModel(string objName) { currentDragName = objName; if (currentDragName.Equals("icon1")) zhi1obj.SetActive(true); else zhi2obj.SetActive(true); carobj3Tip.SetActive(true); isDrag = false; isEnd = true; answerbool[1] = true; } } }