using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class SelectDrag : MonoBehaviour { public GameObject O; bool drag = false; GameObject Oclone; public void Select() { if (O.name.IndexOf("_") == -1 ) { GameObject Oc = GameObject.Instantiate(O); Oc.name = O.name + "_" + _G.OBJnum; _G.OBJnum += 1; Oc.transform.SetParent(Get.o2("Canvas", "OBSTACLELIST").transform, false); Oc.transform.localPosition = O.transform.localPosition; //Oc.tag = "C1"; //Oc.transform.Find("icon").tag = "C2"; _G.SELECTED=Oc.name; startDrag(Oc); } else { _G.SELECTED=name; print("_G.SELECTED="+_G.SELECTED); O=Get.o1(_G.SELECTED); if (_G.PNL != "POSITIONING")startDrag(O); if (_G.PNL == "POSITIONING") {RepositionPNL.StartPNL(O.name, O);} } } public void startDrag(GameObject Oc) { print("O.name="+Oc.name); foreach (Transform go in Get.o2("Canvas", "OBSTACLELIST").transform) { go.gameObject.GetComponent().enabled = false; } Oc.gameObject.GetComponent().enabled = true; Oclone = Oc; drag = true; int On=int.Parse(_G.SELECTED.Split("_")[1]); _G.OBJs[On] = null; } public void stopDrag() { foreach (Transform go in Get.o2("Canvas", "OBSTACLELIST").transform) { go.tag = "Obstacle"; } drag = false; if (_G.PNL != "POSITIONING")Oclone.transform.Find("Image").gameObject.SetActive(false); float posY = Input.mousePosition.y / Screen.height; print("posY====="+posY); if (posY <= 0.2f || posY >= 0.8f) {Destroy(Oclone); } if(_G.PNL=="OBSTACLES"){ RepositionPNL.CheckWallHit(Oclone,"OBSTACLES"); if(_G.WallSELECTED=="floor" && Oclone.name.IndexOf("DOOR")!=-1){Destroy(Oclone); } else if(_G.WallSELECTED=="floor" && Oclone.name.IndexOf("WIND")!=-1){Destroy(Oclone); } else if(_G.WallSELECTED=="floor" && Oclone.name.IndexOf("OPEN")!=-1){Destroy(Oclone); } else if(_G.WallSELECTED=="floor" && Oclone.name.IndexOf("PATI")!=-1){Destroy(Oclone); } else if(_G.WallSELECTED=="floor" && Oclone.name.IndexOf("PLUM")!=-1){Destroy(Oclone); } else if(_G.WallSELECTED=="floor" && Oclone.name.IndexOf("GAZ")!=-1){Destroy(Oclone); } } } void Update() { if (drag == true) { if(Oclone!=null)Oclone.transform.position = Input.mousePosition; if(_G.PNL=="OBSTACLES")RepositionPNL.CheckWallHit(Oclone,"OBSTACLES"); } } public void DeSelecttWall() { if (_G.PNL == "OBSTACLES") { foreach(Transform Wall in Get.o2("OBSTACLES","Plan").transform ) { Wall.transform.GetComponent().color=Color.black; } } } void OnTriggerEnter(Collider hit) { if (hit.gameObject.CompareTag("Obstacle")) { drag = false; } } void OnTriggerExit(Collider hit) { if (hit.gameObject.CompareTag("Obstacle")) { drag = true; } } }