コード例 #1
0
    public void Show(SaveableNumberDictionary <int> items, Action <int> selectCallback = null, Func <Jyx2Item, bool> filter = null)
    {
        HSUnityTools.DestroyChildren(m_Container);
        callback = selectCallback;
        foreach (var kv in items)
        {
            string id    = kv.Key;
            int    count = kv.Value;

            var item = ConfigTable.Get <Jyx2Item>(id);
            if (item == null)
            {
                Debug.LogError("调用了错误的物品,id=" + id);
                continue;
            }

            //过滤器逻辑
            if (filter != null && filter(item) == false)
            {
                continue;
            }

            var itemUI = Jyx2ItemUI.Create(int.Parse(id), count);
            itemUI.transform.SetParent(m_Container);
            var btn = itemUI.GetComponent <Button>();

            btn.onClick.RemoveAllListeners();
            btn.onClick.AddListener(() => {
                SelectItem(itemUI);
            });
        }
    }
コード例 #2
0
    void RefreshSave()
    {
        HSUnityTools.DestroyChildren(SaveParent_RectTransform);

        for (int i = 0; i < GameConst.SAVE_COUNT; i++)
        {
            var btn = Instantiate(SaveItem_Button);
            btn.transform.SetParent(SaveParent_RectTransform);
            btn.transform.localScale = Vector3.one;
            btn.name = i.ToString();
            Text title = btn.transform.Find("Title").GetComponent <Text>();
            title.text = "´æµµ" + GameConst.GetUPNumber(i + 1);

            var txt            = btn.transform.Find("SummaryText").GetComponent <Text>();
            var summaryInfoKey = GameRuntimeData.ARCHIVE_SUMMARY_PREFIX + i;
            if (PlayerPrefs.HasKey(summaryInfoKey))
            {
                txt.text = PlayerPrefs.GetString(summaryInfoKey);
            }
            else
            {
                txt.text = "¿Õ´æµµÎ»";
            }

            BindListener(btn, () =>
            {
                OnSaveItemClick(btn);
            });
        }
    }
コード例 #3
0
    void RefreshScroll()
    {
        HSUnityTools.DestroyChildren(RoleParent_RectTransform);
        if (m_params.roleList == null || m_params.roleList.Count <= 0)
        {
            return;
        }

        for (int i = 0; i < m_params.roleList.Count; i++)
        {
            var role = m_params.roleList[i];
            var item = RoleUIItem.Create();
            item.transform.SetParent(RoleParent_RectTransform);
            item.transform.localScale = Vector3.one;

            Button btn = item.GetComponent <Button>();
            BindListener(btn, () =>
            {
                OnItemClick(item);
            });
            bool select = m_params.selectList.Contains(role);
            item.SetSelect(select);
            item.ShowRole(role);
        }
    }
コード例 #4
0
    void RefreshScrollView()
    {
        HSUnityTools.DestroyChildren(RoleParent_RectTransform);
        if (m_roleList == null || m_roleList.Count <= 0)
        {
            return;
        }
        RoleInstance role;

        for (int i = 0; i < m_roleList.Count; i++)
        {
            role = m_roleList[i];
            var item = RoleUIItem.Create();
            item.transform.SetParent(RoleParent_RectTransform);
            item.transform.localScale = Vector3.one;

            Button btn = item.GetComponent <Button>();
            BindListener(btn, () =>
            {
                OnItemClick(item);
            });
            bool isSelect = (m_currentRole == role);
            if (isSelect)
            {
                m_currentShowItem = item;
            }
            item.SetSelect(isSelect);
            item.ShowRole(role);
        }
    }
コード例 #5
0
 protected override void OnHidePanel()
 {
     base.OnHidePanel();
     m_selectItem = null;
     m_callback   = null;
     m_filter     = null;
     HSUnityTools.DestroyChildren(ItemRoot_RectTransform);
 }
コード例 #6
0
 public void Show(IEnumerable <RoleInstance> roles, Func <RoleInstance, bool> mustRoles, Action <List <RoleInstance> > callback)
 {
     HSUnityTools.DestroyChildren(m_Container);
     _mustRolesFunc = mustRoles;
     _callback      = callback;
     foreach (var role in roles)
     {
         AddRole(role);
     }
 }
コード例 #7
0
        private void DisplayCastEft()
        {
            var display = GetDisplay();

            //播放特效
            Jyx2ResourceHelper.LoadPrefab(display.CastEft, prefab => {
                var duration = HSUnityTools.ParticleSystemLength(prefab.transform);

                Vector3 offset = Vector3.zero;
                if (!string.IsNullOrEmpty(display.CastOffset))
                {
                    offset = UnityTools.StringToVector3(display.CastOffset, ',');
                }
                CastEffectAndWaitSkill(prefab, duration, Source.gameObject.transform, offset); //默认预留三秒
            });
        }
コード例 #8
0
        private void DisplayBlockEft()
        {
            var display = GetDisplay();

            Jyx2ResourceHelper.LoadPrefab(display.BlockEft, prefab => {
                var blockEftDuration = HSUnityTools.ParticleSystemLength(prefab.transform);

                Vector3 offset = Vector3.zero;
                if (!string.IsNullOrEmpty(display.BlockOffset))
                {
                    offset = UnityTools.StringToVector3(display.BlockOffset, ',');
                }

                //播放特效
                foreach (var block in CoverBlocks)
                {
                    CastEffectAndWaitSkill(prefab, blockEftDuration, block, offset);
                }
            });
        }
コード例 #9
0
    void RefreshScroll()
    {
        HSUnityTools.DestroyChildren(ItemRoot_RectTransform);
        bool hasSelect = false;

        foreach (var kv in m_itemDatas)
        {
            string id    = kv.Key;
            int    count = kv.Value;

            var item = ConfigTable.Get <Jyx2Item>(id);
            if (item == null)
            {
                Debug.LogError("cannot get item data, id=" + id);
                continue;
            }
            //item filter
            if (m_filter != null && m_filter(item) == false)
            {
                continue;
            }

            var itemUI = Jyx2ItemUI.Create(int.Parse(id), count);
            itemUI.transform.SetParent(ItemRoot_RectTransform);
            itemUI.transform.localScale = Vector3.one;
            var btn = itemUI.GetComponent <Button>();

            BindListener(btn, () =>
            {
                OnItemClick(itemUI);
            });
            if (!hasSelect)
            {
                m_selectItem = itemUI;
                hasSelect    = true;
            }
            itemUI.Select(m_selectItem == itemUI);
        }
        ShowItemDes();
    }
コード例 #10
0
 protected override void OnHidePanel()
 {
     base.OnHidePanel();
     m_params = null;
     HSUnityTools.DestroyChildren(RoleParent_RectTransform);
 }
コード例 #11
0
    public void OnChange(Action callback = null)
    {
        if (Application.isPlaying)
        {
            //销毁所有的孩子
            HSUnityTools.DestroyChildren(transform);
        }
        else
        {
            int childCount = transform.childCount;
            for (int i = childCount - 1; i >= 0; --i)
            {
                var go = transform.GetChild(i).gameObject;
                go.SetActive(false);
                DestroyImmediate(go);
            }
            transform.DetachChildren();

            //适应老的代码。。清理残留的合并Mesh
            var oldMesh = GetComponent <SkinnedMeshRenderer>();
            if (oldMesh != null)
            {
                DestroyImmediate(oldMesh);
            }
        }

        string path = "";

        if (m_ModelId.StartsWith("@"))
        {
            path = m_ModelId.TrimStart('@');
        }
        else
        {
            var roleModelSet = RoleModelSetObj.GetByName(m_ModelId);
            if (roleModelSet == null)
            {
                Debug.LogError("找不到模型:" + m_ModelId);
                return;
            }
            var modelPath = roleModelSet.FilePath;
            path = modelPath.TrimStart('@') + ".prefab";
        }

        Jyx2ResourceHelper.SpawnPrefab(path, (res) =>
        {
            if (res == null)
            {
                Debug.LogError("找不到模型资源:" + path);
                return;
            }
            if (res != null)
            {
                res.transform.SetParent(gameObject.transform, false);
                res.transform.localPosition = Vector3.zero;
            }

            var animator = GetComponent <Animator>();
            if (animator != null)
            {
                animator.enabled = false;
            }

            if (callback != null)
            {
                callback();
            }
        });
    }
コード例 #12
0
 public void ClearWeapon()
 {
     HSUnityTools.Destroy(m_LeftWeaponModel);
     HSUnityTools.Destroy(m_RightWeaponModel);
     HSUnityTools.Destroy(m_BackWeaponModel);
 }
コード例 #13
0
    protected override void OnHidePanel()
    {
        base.OnHidePanel();

        HSUnityTools.DestroyChildren(SaveParent_RectTransform);
    }
コード例 #14
0
 public void ClearChildren(Transform transform)
 {
     HSUnityTools.DestroyChildren(transform);
 }
コード例 #15
0
 public virtual void Close()
 {
     HSUnityTools.SafeDestroyGameObject(this.gameObject);
 }