// Update is called once per frame void Update() { // 返回主页面 if (Input.GetKeyDown(KeyCode.Escape)) { SceneManager.LoadScene("MainPage"); } Vector3 position = _abstractMap.GeoToWorldPosition(TaskLab.Get().GetTaskList()[0].TaskLocation); if (position != Vector3.zero && !_hasLoadModel) { var locationProvider = LocationProviderFactory.Instance.DefaultLocationProvider; TaskLab.Get().SetCurrentLatlng(locationProvider.CurrentLocation.LatitudeLongitude); _taskList = TaskLab.Get().GetTaskListIn(200); //TaskList = TaskLab.get().GetTaskList(); text.text = "abstractMap: " + _abstractMap + "\n"; foreach (var task in _taskList) { _model = ArUtils.LoadModel("Model/" + task.TaskModelName); position = _abstractMap.GeoToWorldPosition(task.TaskLocation); var message = text.text; message += "name:" + task.TaskModelName + "\n"; message += "location:" + task.TaskLocation + "\n"; message += "position:" + position + "\n"; text.text = message; Instantiate(_model, position, task.TaskModelRotation); } _hasLoadModel = true; } }
/// <summary> /// The Unity Update() method. /// </summary> public void Update() { _UpdateApplicationLifecycle(); Vector3 position = _abstractMap.GeoToWorldPosition(TaskLab.Get().GetTaskList()[0].TaskLocation); // 等待abstractMap加载完成 if (position != Vector3.zero && !_hasLoadModelInMiniMap) { var locationProvider = LocationProviderFactory.Instance.DefaultLocationProvider; TaskLab.Get().SetCurrentLatlng(locationProvider.CurrentLocation.LatitudeLongitude); _taskList = TaskLab.Get().GetTaskListIn(200); InitModelByLatLngs(_taskList, true); _hasLoadModelInMiniMap = true; } // todo 一定范围内模型 // 每个几帧重新更新矛点位置 //if (++count % 1000 == 0) //{ // DestoryShowedARModels(ShowedARModels); // InitModelByLatLngs(TaskList, false); //} }
// Start is called before the first frame update void Start() { controlDetail.SetActive(false); _controlStatusImage = controlStatus.GetComponent <Image>(); _controlStatusDetailTexts = controlDetail.GetComponentsInChildren <Text>(); controlStatus.GetComponent <LongPressEventTrigger>().onLongPress.AddListener( () => { print("长按"); controlDetail.SetActive(!controlDetail.activeSelf); } ); _taskList = TaskLab.Get().GetTaskList(); _abstractMap = map.GetComponent <AbstractMap>(); bag.GetComponent <BagController>().SetOnMyItemClick((GameObject currentAddGameObject, List <ArModelInfo> putArObjects) => { _putArObjects = putArObjects; print(_putArObjects); // _selectedArObject = currentAddGameObject; bag.SetActive(false); _hasShowItems = false; }); setModelButton.onClick.AddListener(() => { if (_selectedArObject == null) { return; } var position = _selectedArObject.transform.position; var task = new Task { TaskDesc = _selectedArObject.name + " 2 3 4", TaskLocation = _abstractMap.WorldToGeoPosition(position), TaskModelRotation = _selectedArObject.transform.rotation, TaskModelName = _selectedArObject.transform.name.Split('(')[0] }; _taskList.Add(task); GameObject.Find("Text").GetComponent <Text>().text += "\nTaskList.Count:" + _taskList.Count + "\nPutedGameObject position:" + position + "\n" + "PutedGameObject Latlng:" + _abstractMap.WorldToGeoPosition(position); print("PutedGameObject position:" + position); print("PutedGameObject Latlng:" + _abstractMap.WorldToGeoPosition(position)); }); showItemsButton.onClick.AddListener(() => { if (_hasShowItems) { bag.SetActive(false); } else { bag.SetActive(true); } _hasShowItems = !_hasShowItems; }); // 找到当前选择的模型,删除它的所有信息 deleteModelButton.onClick.AddListener(() => { ArModelInfo modelInfo = _putArObjects.Find((info) => info.ArGameObject.name == _selectedArObject.name); if (modelInfo == null) { return; } print(modelInfo.ArGameObject.name); Destroy(modelInfo.ArGameObject); Destroy(modelInfo.Anchor); _putArObjects.Remove(modelInfo); }); }