/// <summary> /// 清除门的信息 /// </summary> private void ClearLastDoor() { if (DoorItem == null) { return; } ObjectModel_DoorAccess access = model.GetComponent <ObjectModel_DoorAccess>(); access.IsAccessInDoor = false; access.DoorItem = null; DoorItem.ConstantOff(); DoorItem = null; }
private void GiveRayF() { if (model != null) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; //Vector3 screenSpace; if (Physics.Raycast(ray, out hit, float.MaxValue, mask.value)) { float normalY = hit.point.y + model.transform.gameObject.GetSize().y / 2; model.transform.position = new Vector3(hit.point.x, normalY, hit.point.z);; } else { if (model.activeInHierarchy) { model.SetActive(false); Debug.Log("Ray can't find floor..."); } } if (Physics.Raycast(ray, out hit, float.MaxValue)) { DoorAccessItem item = hit.transform.GetComponent <DoorAccessItem>(); if (item == null && hit.transform.childCount > 0) { item = hit.transform.GetChild(0).GetComponent <DoorAccessItem>(); } if (item) { ClearLastDoor(); DoorItem = item; ObjectModel_DoorAccess access = model.GetComponent <ObjectModel_DoorAccess>(); access.IsAccessInDoor = true; access.DoorItem = item; item.ConstantOn(Color.green); } else { ClearLastDoor(); } } else { ClearLastDoor(); } } }
/// <summary> /// 门禁是否已经添加 /// </summary> /// <param name="devModel"></param> /// <returns></returns> private bool IsDoorAccessAdd(List <GameObject> DoorAccessList) { if (DoorAccessList != null && DoorAccessList.Count > 0) { GameObject devModel = DoorAccessList[0]; ObjectModel_DoorAccess access = devModel.GetComponent <ObjectModel_DoorAccess>(); if (access == null) { return(true); } if (access.DoorItem != null) { if (access.DoorItem.DoorAccessList != null && access.DoorItem.DoorAccessList.Count > 0) { return(true); } } } return(false); }
/// <summary> /// 设置设备的Controller /// </summary> /// <param name="devModel"></param> /// <param name="devInfo"></param> /// <param name="parentID"></param> private DoorAccessDevController SetDevController(GameObject devModel, DevInfo devInfo, int?parentID) { ObjectModel_DoorAccess access = devModel.GetComponent <ObjectModel_DoorAccess>(); DepNode node = RoomFactory.Instance.GetDepNodeById((int)parentID); devModel.transform.parent = GetDevContainer(node).transform; DoorAccessDevController controller = devModel.AddMissingComponent <DoorAccessDevController>(); controller.DevId = devInfo.DevID; if (RoomFactory.Instance) { RoomFactory.Instance.SaveDepDevInfo(node, controller, devInfo); } if (access) { controller.DoorItem = access.DoorItem; access.DoorItem.AddDoorAccess(controller); } devModel.RemoveComponent <ObjectModel_DoorAccess>(); return(controller); }
public void OnEndDrag(PointerEventData eventData) { Reset(); if (TypeCodeHelper.IsDoorAccess(ModelName)) { RecoverEnvironment(); ObjectModel_DoorAccess access = model.GetComponent <ObjectModel_DoorAccess>(); if (!access.IsAccessInDoor || mouseScreenPos == Input.mousePosition || IsClickUGUIorNGUI.Instance.isOverUI) { DestroyImmediate(model); return; } else { access.DoorItem.CloseAllDoor(); List <GameObject> DoorAccess = access.CreateDoorAccess(); AddSave(DoorAccess, access.DoorItem.DoorID, access.DoorItem.ParentID); DestroyImmediate(model); // ShowParkData(); } } }