public MiniMap_MapIcon MakeRoomIcon(Vector3 position, Vector3 scale, bool hasPortal = false, MapModuleBase linkModule = null) { GameObject obj = Instantiate(mapIconPrefab, iconsParent); if (obj != null) { obj.transform.localPosition = position; obj.transform.localScale = scale; MiniMap_MapIcon icon = obj.GetComponent <MiniMap_MapIcon>(); icon.SetPortal(hasPortal, linkModule); objectList.Add(icon.gameObject); return(icon); } return(null); }
private void Update() { if (target == null) { return; } //if (count > 1f) return; if (miniMapState == MiniMapState.Origin) { count += Time.deltaTime; this.transform.position = Vector3.Lerp(this.transform.position, originPosit.transform.position, count); maskTr.localScale = Vector3.Lerp(maskTr.localScale, maskOriginSize, count); if (target.position != prefPosit) { float x = prefPosit.x - target.position.x; float y = prefPosit.y - target.position.y; // iconsParent.localPosition += new Vector3(x*realRatio, y*realRatio, 0f); iconsParent.localPosition = new Vector3(-target.position.x * realRatio, -target.position.y * realRatio, 0f); } } else if (miniMapState == MiniMapState.Center) { count += Time.deltaTime; this.transform.position = Vector3.Lerp(this.transform.position, centerPosit.transform.position, count); maskTr.localScale = Vector3.Lerp(maskTr.localScale, maskMaxSize, count); iconsParent.localPosition = Vector3.zero; if (Input.GetKeyDown(KeyCode.Mouse0)) { #if UNITY_EDITOR Vector2 touchPos = Camera.main.ScreenToWorldPoint(Input.mousePosition); RaycastHit2D rayHit = Physics2D.Raycast(touchPos, Vector2.zero, 0.1f, mapModuleLayerMask); if (rayHit.collider != null) { MiniMap_MapIcon target = rayHit.collider.gameObject.GetComponent <MiniMap_MapIcon>(); if (target != null) { if (target.HasProtal == true && target.CanUsePortal == true) { if (target.LinkModule != null) { GamePlayerManager.Instance.player.transform.position = target.LinkModule.transform.position; } } } } #else Touch[] touches = Input.touches; if (touches != null) { for (int i = 0; i < touches.Length; i++) { Vector2 touchPos = Camera.main.ScreenToWorldPoint(touches[i].position); RaycastHit2D rayHit = Physics2D.Raycast(touchPos, Vector2.zero, 0.1f, mapModuleLayerMask); if (rayHit.collider != null) { MiniMap_MapIcon target = rayHit.collider.gameObject.GetComponent <MiniMap_MapIcon>(); if (target != null) { if (target.HasProtal == true && target.CanUsePortal == true) { if (target.LinkModule != null) { GamePlayerManager.Instance.player.transform.position = target.LinkModule.transform.position; } break; } } } } } #endif } } }