/// <summary> /// 장애물 위치 조정후 콜백 함수 /// </summary> /// <param name="obj"></param> /// <param name="location"></param> /// <param name="count"></param> void ItemObjectUpdatedEvent(GameObject obj, ARLocation.Location location, int count) { ARLocation.PlaceAtLocation scriptA = obj.GetComponent <ARLocation.PlaceAtLocation>(); Destroy(scriptA); //ItemObjectController objSc = obj.GetComponent<ItemObjectController>(); //if (objSc.type.Equals("4") || objSc.type.Equals("5")) //{ // // Debug.Log("type-" + objSc.type + ", x-" + obj.transform.position.x + ", z-" + obj.transform.position.z); // obj.transform.rotation = Quaternion.Euler(new Vector3(-5, 33.3f, 0)); //} }
/// <summary> /// 배 위치 조정후 콜백 함수 /// </summary> /// <param name="obj"></param> /// <param name="location"></param> /// <param name="count"></param> void ObjectUpdatedEvent(GameObject obj, ARLocation.Location location, int count) { ARLocation.PlaceAtLocation scriptA = obj.GetComponent <ARLocation.PlaceAtLocation>(); Destroy(scriptA); ShipData shipData = obj.GetComponent <ShipObjectScript>().GetShipData(); float f = float.Parse(shipData.sog); _mapVC.SetShipMap(obj); //TODO: 여기서 미니맵 좌표 찍어줘야함. if (f > 0) { Vector2 newPs = SetNewPostion(obj.transform.position.x, obj.transform.position.z, shipData.regDate, shipData.sog, float.Parse(shipData.cog)); obj.transform.position = new Vector3(newPs.x, obj.transform.position.y, newPs.y); obj.GetComponent <ShipObjectScript>().SetFirstMoveCoroutineAction(); } else { return; } }
private void AddShipObject(string key, ShipData value) { if (!value.messageID.Equals("0")) { return; //**원래라면 여기서 장애물 선별해야함. } ARLocation.Location newLocation = new ARLocation.Location() { Latitude = double.Parse(value.latitude), Longitude = double.Parse(value.longitude), Altitude = 0, AltitudeMode = ARLocation.AltitudeMode.GroundRelative }; //new object GameObject copyPrefab = Instantiate <GameObject>(_shipObjPrefab); ShipObjectScript objSc = copyPrefab.GetComponent <ShipObjectScript>(); objSc._mapVC = _mapVC; ARLocation.PlaceAtLocation.PlaceAtOptions opts = new ARLocation.PlaceAtLocation.PlaceAtOptions() { HideObjectUntilItIsPlaced = true, MaxNumberOfLocationUpdates = 1, //** 업데이트 횟 수 관리 MovementSmoothing = 0, UseMovingAverage = true }; objSc._mainSceneController = this; objSc._userKey = key; objSc.SetShipData(value); objSc._placeAtLocationScript = ARLocation.PlaceAtLocation.AddPlaceAtComponentCustom(objSc._placeAtLocationScript, newLocation, opts); objSc._placeAtLocationScript.ObjectLocationUpdated.AddListener(ObjectUpdatedEvent); //이벤트 등록 (델리게이트) _shipObjs.Add(key, copyPrefab); }
/// <summary> /// 위치 정보가 바뀌면 발생 /// </summary> /// <param name="location"></param> public void UpdatedLocationEvent(ARLocation.Location location) { _userLocation.latitude = location.Latitude.ToString("F6"); _userLocation.longitude = location.Longitude.ToString("F6"); _userLocation.altitude = location.Altitude.ToString("F6"); }
//바다정보 생성 public void HttpItemsResultDelegate(bool isError, List <ItemInfo> datas) { if (isError) { _httpClass.SendItemsHttpLocation(_userLocation.latitude, _userLocation.longitude); return; } foreach (ItemInfo itemInfo in datas) { ARLocation.Location newLocation = new ARLocation.Location() { Latitude = Double.Parse(itemInfo.LATI), Longitude = Double.Parse(itemInfo.LONGI), Altitude = 0, AltitudeMode = ARLocation.AltitudeMode.GroundRelative }; ARLocation.PlaceAtLocation.PlaceAtOptions opts = new ARLocation.PlaceAtLocation.PlaceAtOptions() { HideObjectUntilItIsPlaced = true, MaxNumberOfLocationUpdates = 1, MovementSmoothing = 0, UseMovingAverage = true }; GameObject copyPrefab = null; string latA = itemInfo.LATI; string lonA = itemInfo.LONGI; //Debug.Log(itemInfo.DANGER_TYPE); if (itemInfo.DANGER_TYPE.Equals("1")) { copyPrefab = Instantiate <GameObject>(_itemObjPrefabA); } else if (itemInfo.DANGER_TYPE.Equals("2")) { copyPrefab = Instantiate <GameObject>(_itemObjPrefabB); } else if (itemInfo.DANGER_TYPE.Equals("3")) { copyPrefab = Instantiate <GameObject>(_itemObjPrefabC); } else if (itemInfo.DANGER_TYPE.Equals("4")) { copyPrefab = Instantiate <GameObject>(_itemObjPrefabD); latA = "35.104148"; lonA = "129.063706"; } else if (itemInfo.DANGER_TYPE.Equals("5")) { copyPrefab = Instantiate <GameObject>(_itemObjPrefabE); latA = "35.106500"; lonA = "129.066195"; } else { continue; } //좌현 33.3, 길이 1.9km //우현 213.3 길이 1.8km ItemObjectController objSc = copyPrefab.GetComponent <ItemObjectController>(); objSc._mainSceneController = this; objSc.lat = latA; objSc.lon = lonA; objSc._placeAtLocationScript = ARLocation.PlaceAtLocation.AddPlaceAtComponentCustom(objSc._placeAtLocationScript, newLocation, opts); objSc._placeAtLocationScript.ObjectLocationUpdated.AddListener(ItemObjectUpdatedEvent); //이벤트 등록 (델리게이트) } }