// Update is called once per frame void Update() { if (_userAccount != "" && !_hasQueryUser) { System.Threading.Tasks.Task .Run(() => { print(_userAccount); // CallAndroidMethod.Toast(_userAccount); UserLab.CurrentUser = UserLab.GetUser(_userAccount); _hasGetUser = true; }); _hasQueryUser = true; } if (_hasGetUser) { print(UserLab.CurrentUser.UserName); CharacterInfoController cInfoController = characterInfo.GetComponent <CharacterInfoController>(); cInfoController.UpdateUserMessage(UserLab.CurrentUser); _hasGetUser = false; } // 如果控制状态详细信息面板已经显示,在点击其他地方后让其消失 if (Input.GetMouseButtonDown(0) && characterDetailInfo.activeSelf && !ArUtils.IsPointerOverUiObject()) { characterDetailInfo.SetActive(false); } if (Input.GetKey(KeyCode.Escape)) { Application.Quit(); } }
// Update is called once per frame void Update() { Ray ray = cam.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out var hitInfo)) { // 如果点击物体 if (!ArUtils.IsPointerOverUiObject() && Input.GetMouseButtonDown(0) && hitInfo.transform.name == transform.name) { onModelClick?.Invoke(); } } }
void Start() { // CallAndroidMethod.StartLoginActivity(); moreInfo.GetComponent <PointerClickEventTrigger>() .onPointerClick .AddListener((() => { CallAndroidMethod.StartFeedbackActivity(); print("more information"); })); characterDetailInfo.SetActive(false); LongPressEventTrigger characterInfoLongPress = characterInfo.GetComponent <LongPressEventTrigger>(); characterInfoLongPress.onLongPress.AddListener(() => { if (characterDetailInfo.activeSelf == false) { characterDetailInfo.SetActive(true); CharacterDetailInfoController infoController = characterDetailInfo.GetComponent <CharacterDetailInfoController>(); infoController.UpdateUserDetailMessage(UserLab.CurrentUser); } else { characterDetailInfo.SetActive(false); } }); DoubleClickEventTrigger roleDoubleClick = role.GetComponent <DoubleClickEventTrigger>(); roleDoubleClick.SetCamera(Camera.main); roleDoubleClick .onDoubleClick .AddListener(() => { if (!ArUtils.IsPointerOverUiObject()) { SceneManager.LoadScene("ModelScanScene"); } }); mapPanel.GetComponent <OnMapButtonDrag>().dragEndEvent.AddListener(CallAndroidMethod.StartMapActivity); buttonTask.onClick.AddListener(CallAndroidMethod.StartTaskActivity); buttonCourse.onClick.AddListener(CallAndroidMethod.StartCourseActivity); buttonPut.onClick.AddListener(() => { SceneManager.LoadScene("ModelPutScene"); }); }
// Update is called once per frame void Update() { // 按下鼠标时,如果焦点不在模型上则返回 // 如果初始时在模型上,则之后划出模型仍然当作滑动成功 if (Input.GetMouseButtonDown(0)) { //如果非滑动模型,则返回 Ray ray = cam.ScreenPointToRay(Input.mousePosition); if (ArUtils.IsPointerOverUiObject()) { return; } if (Physics.Raycast(ray, out RaycastHit hitInfo)) { var hitParent = hitInfo.transform.parent; string hitName = hitParent == null ? hitInfo.transform.name : hitParent.name; var goParent = transform.parent; string goName = goParent == null ? gameObject.transform.name : goParent.name; if (hitName != goName) { return; } } else { return; } print("mouse down"); _startPos = Input.mousePosition; _isClick = true; _hasSlide = false; } if (Input.GetMouseButtonUp(0)) { print("mouse up"); _endPos = Input.mousePosition; _isClick = false; } // 如果还未松手且已经滑动完成,则返回 if (_isClick || _hasSlide) { return; } Vector3 v = _endPos - _startPos; // 上下滑动,返回 if (Mathf.Abs(v.y) > Mathf.Abs(v.x)) { return; } // 滑动距离不够,返回 if (Mathf.Abs(v.x) < slideDistance) { return; } onSlide?.Invoke(v.x, v.y); _hasSlide = true; }