Example #1
0
    /// <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;
    }
Example #2
0
 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();
         }
     }
 }
Example #3
0
 /// <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);
 }
Example #4
0
    /// <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);
    }
Example #5
0
 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();
         }
     }
 }