Ejemplo n.º 1
0
                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);
                }
Ejemplo n.º 2
0
            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);
                }
            }
Ejemplo n.º 3
0
                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;
                }
Ejemplo n.º 4
0
            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);
                                }
                            });
                        }
                    }
                }
            }