public SelectInfo(int uuid, GameObject selector, BattlefieldObject followed, int type) { this.uuid = uuid; this.selector = selector; this.followed = new System.WeakReference(followed); constraint = selector.GetComponent <BattlefiledUIConstraint>(); rectTransform = selector.GetComponent <RectTransform>(); this.type = type; UpdatePostion(false); }
public void ShowDialog(BattlefieldObject obj, string text, float duration) { if (characterDialogText) { characterDialogText.text = text; } characterDialogDuration = duration; if (characterDialogDuration > 0 && obj != null) { characterDialog.gameObject.SetActive(true); Vector3 worldPosition = obj.GetPosition("head"); Vector2 ViewportPosition = Camera.main.WorldToViewportPoint(worldPosition); characterDialog.anchorMin = ViewportPosition; characterDialog.anchorMax = ViewportPosition; characterDialog.anchoredPosition3D = Vector3.zero; } else { characterDialogDuration = 0; characterDialog.gameObject.SetActive(false); } }
void UpdatePostion(bool lerp = true) { BattlefieldObject battle_obj = (BattlefieldObject)(followed.Target); Vector3 worldPosition = battle_obj.GetPosition("hitpoint"); if ((type & 2) != 0) { worldPosition.y -= 0.5f; } Vector2 ViewportPosition = Camera.main.WorldToViewportPoint(worldPosition); if (lerp) { rectTransform.anchorMin = Vector2.Lerp(rectTransform.anchorMin, ViewportPosition, Time.deltaTime * selector_speed); rectTransform.anchorMax = Vector2.Lerp(rectTransform.anchorMax, ViewportPosition, Time.deltaTime * selector_speed); } else { rectTransform.anchorMin = ViewportPosition; rectTransform.anchorMax = ViewportPosition; } rectTransform.anchoredPosition3D = Vector3.zero; }
public void Show(int uuid, BattlefieldObject obj = null, int type = 0, params string [] effectNames) { if ((uuid >= 0 && obj == null) || selectors.ContainsKey(uuid)) { return; } if (uuid == -1) { obj = partnerSelector; } else if (uuid < 0) { obj = enemySelector; } GameObject selector = null; if (selectorPool.Count == 0) { selector = Instantiate(prefab); selector.GetComponent <RectTransform>().SetParent(GetComponent <RectTransform>(), false); } else { selector = selectorPool[0]; selectorPool.RemoveAt(0); } selector.transform.localPosition = Vector3.zero; selector.transform.localScale = Vector3.one; selector.transform.localRotation = Quaternion.identity; selector.SetActive(true); if (uuid < 0) { selector.transform.localScale = Vector3.one * 1.5f; } else { selector.transform.localScale = Vector3.one; } selector.name = string.Format("targetSelector_{0}", obj.name); UGUIClickEventListener.Get(selector).onClick = () => { onSelected(uuid); }; selectors [uuid] = new SelectInfo(uuid, selector, obj, type); selectors[uuid].Update(); if (effectNames.Length > 0) { for (int i = 0; i < effectNames.Length; i++) { if (!string.IsNullOrEmpty(effectNames[i])) { string fullPath = string.Format("prefabs/effect/{0}.prefab", effectNames[i]); ResourcesManager.LoadAsync(this, fullPath, (o) => { if (selectors.ContainsKey(uuid) == true) { GameObject effect = SGK.GameObjectPoolManager.getInstance().Get(fullPath); effect.transform.localPosition = Vector3.zero; effect.transform.localScale = Vector3.one; effect.transform.localRotation = Quaternion.identity; effect.SetActive(true); selectors[uuid].addFollower(effect); } }); } } } }