Inheritance: MonoBehaviour
Ejemplo n.º 1
0
    /// <summary> _UI/INGAME 폴더에 있는 이펙트 생성 </summary>
    public static GameObject CreateEffectInGame(Transform parent, string name, bool isChangeLayer = true, int setRenderQ = -1)
    {
        string     path  = string.Format("Effect/_UI/_INGAME/{0}", name);
        GameObject effGo = GameObject.Instantiate(Resources.Load(path)) as GameObject;

        effGo.transform.parent        = parent;
        effGo.transform.localScale    = Vector3.one;
        effGo.transform.localPosition = Vector3.zero;

        if (isChangeLayer)
        {
            effGo.layer = parent.gameObject.layer;
            effGo.transform.SetChildLayer(parent.gameObject.layer);
        }

        if (0 < setRenderQ)//하위 객체들 다 랜더큐 값으로 넣어줌
        {
            if (0 < effGo.transform.childCount)
            {
                List <MeshRenderer> list = FindComponents <MeshRenderer>(effGo.transform);
                for (int i = 0; i < list.Count; i++)
                {
                    SetRenderQueue q = list[i].transform.GetComponent <SetRenderQueue>();
                    if (q == null)
                    {
                        q = list[i].gameObject.AddComponent <SetRenderQueue>();
                    }

                    q.ResetRenderQ(setRenderQ);
                }
            }
        }

        return(effGo);
    }
Ejemplo n.º 2
0
 void AddRenderQ(int renderQ, GameObject go)
 {
     if (go.particleSystem != null || go.GetComponent <MeshRenderer>() != null)
     {
         if (go.GetComponent <SetRenderQueue>() == null)
         {
             SetRenderQueue q = go.AddComponent <SetRenderQueue>();
             q.renderQueue = renderQ;
         }
     }
 }
Ejemplo n.º 3
0
 public static void PackageTextureAssetBundle()
 {
     foreach (var obj in Selection.gameObjects.OrderByWithDirection(go => go.name, true))
     {
         SetRenderQueue queueComp = obj.GetComponent <SetRenderQueue>();
         if (queueComp)
         {
             DestroyImmediate(queueComp);
         }
     }
 }
Ejemplo n.º 4
0
    private static int SRQGet(SetRenderQueue queueObject)
    {
        var queueArray = ReflectionHelper.GetFieldValue(queueObject, "m_queues") as int[];

        foreach (int queue in queueArray)
        {
            return(queue);
        }
        Debug.LogError("SRQGet in SRQPersist RETURNS ZERO SOMETHING IS TERRIBLY WRONG");
        return(0);
    }
Ejemplo n.º 5
0
    //SRQ query
    private int SRQGet(GameObject queueObject)
    {
        selectedSRQ = queueObject.GetComponent <SetRenderQueue>();
        var queueArray = ReflectionHelper.GetFieldValue(selectedSRQ, "m_queues") as int[];

        foreach (int queue in queueArray)
        {
            return(queue);
        }
        Debug.LogError("SRQGet in RuntimeRenderQueue RETURNS ZERO SOMETHING IS TERRIBLY WRONG");
        return(0);
    }
Ejemplo n.º 6
0
 public static void ReplaceSetRenderQueues()
 {
     foreach (SetRenderQueue queue in Selection.activeGameObject.GetComponentsInChildren <SetRenderQueue>(true))
     {
         SetRenderQueue newQueue = null;
         try
         {
             newQueue = queue.gameObject.AddComponent <SetRenderQueue>();
         }
         catch (Exception e)
         {
         }
         newQueue.GetType().GetField("m_queues", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.FlattenHierarchy).SetValue(newQueue, queue.GetType().GetField("m_queues", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.FlattenHierarchy).GetValue(queue));
         DestroyImmediate(queue);
     }
 }
Ejemplo n.º 7
0
    static void SetQueues(int maxqueue, bool order, int queuesteps)
    {
        int qsteps = queuesteps;
        int maxv   = maxqueue;

        GameObject[] selObj = Selection.gameObjects;

        foreach (var obj in Selection.gameObjects.OrderByWithDirection(go => go.name, order))
        {
            SetRenderQueue queueComp = obj.AddComponent <SetRenderQueue>();
            System.Type    ourType   = queueComp.GetType();
            FieldInfo      fi        = ourType.GetField("m_queues", BindingFlags.NonPublic | BindingFlags.Instance);
            //Debug.Log(fi);
            fi.SetValue(queueComp, new int[] { maxv });
            maxv = maxv - queuesteps;
        }
    }
Ejemplo n.º 8
0
    /*
     * Functions
     */
    void ChangeRenderQueue()
    {
        Transform[] transforms = Selection.GetTransforms(SelectionMode.TopLevel | SelectionMode.OnlyUserModifiable);

        foreach (Transform tr in transforms)
        {
            if (tr.gameObject.GetComponent(typeof(SetRenderQueue)) == null)
            {
                //add component w/ value
                SetRenderQueue src = tr.gameObject.AddComponent <SetRenderQueue>();
                src.queue = int.Parse(newRenderQueue);
            }
            else
            {
                //get component and set value
                SetRenderQueue src = tr.GetComponent <SetRenderQueue>();
                src.queue = int.Parse(newRenderQueue);
            }
        }
    }
Ejemplo n.º 9
0
    public void DrawCustomInspector()
    {
        SetRenderQueue t = (SetRenderQueue)target;

        if (GUILayout.Button("Get Render Queue"))
        {
            Material[] materials = t.GetComponent <Renderer>().sharedMaterials;
            for (int i = 0; i < materials.Length && i < t.m_queues.Length; ++i)
            {
                t.m_queues[i] = materials[i].renderQueue;
            }
        }

        if (GUILayout.Button("Set Render Queue"))
        {
            Material[] materials = t.GetComponent <Renderer>().sharedMaterials;
            for (int i = 0; i < materials.Length && i < t.m_queues.Length; ++i)
            {
                materials[i].renderQueue = t.m_queues[i];
            }
        }
    }
Ejemplo n.º 10
0
 void Awake()
 {
     setrq = this.GetComponent <SetRenderQueue>();
 }
Ejemplo n.º 11
0
    public void Init(Transform parent, UnitAnimator anim, GameObject[] effect, bool isReviseScale, bool isShadow, string panelName)
    {
        UnitAnim = anim;

        Transform unitTf = transform;

        unitTf.parent           = parent;
        unitTf.localEulerAngles = Rotation;

        // 테이블에서 스케일과 포지션값을 읽어온다
        Partner.PartnerScaleInfo info = _LowDataMgr.instance.GetPartnerScaleInfo(gameObject.name, panelName);
        if (info == null)
        {
            Debug.Log(string.Format("{0} is null", gameObject.name));

            unitTf.localScale    = Scale;
            unitTf.localPosition = Vector3.zero;
        }
        else
        {
            if (info.rotate_y == 0)  //0일경우 회전값을 강제로 돌려줘야함
            {
                unitTf.localEulerAngles = Rotation;
            }
            else
            {
                unitTf.localEulerAngles = new Vector3(info.rotate_x, info.rotate_y, 0);
            }

            if (info.scale == 0)
            {
                unitTf.localScale = Scale;
            }
            else
            {
                unitTf.localScale = new Vector3(info.scale, info.scale, info.scale);
            }

            unitTf.localPosition = new Vector3(info._x, info._y, 0);
        }

        if (!string.IsNullOrEmpty(panelName) && panelName.Contains("TownPanel"))
        {
            if (unitTf.name.Contains("pc_f"))
            {
                unitTf.transform.localPosition = new Vector3(0, -12, 0);
            }
            else if (unitTf.name.Contains("pc_p"))
            {
                unitTf.transform.localPosition = new Vector3(0, -4, 0);
            }
            else if (unitTf.name.Contains("pc_d"))
            {
                unitTf.transform.localPosition = new Vector3(-1.93f, 6.39f, 0);
                unitTf.transform.localScale    = new Vector3(190, 190, 190);
            }
        }



        if (effect != null)
        {
            GameObject readyPop = UIMgr.GetUI("UIPopup/ReadyPopup");
            UIPanel    panel    = null;
            if (readyPop != null)
            {
                panel = readyPop.GetComponent <UIPanel>();
            }
            else
            {
                UIBasePanel curUI = UIMgr.instance.GetCurPanel();
                if (curUI != null)
                {
                    panel = curUI.gameObject.GetComponent <UIPanel>();
                }
            }

            if (panel != null)
            {
                RenderQ = panel.startingRenderQueue + 20;
            }

            if (RenderQ <= 3020)
            {
                RenderQ = 3030;
            }

            if (effect[0] != null)//파트너의 경우 없을 수 있다.
            {
                CheckRenderQ(RenderQ, effect[0].transform);
                List <ParticleSystem> list = UIHelper.FindComponents <ParticleSystem>(effect[0].transform);
                ResettingParticle(parent, list, 0.4f);
            }


            if (effect[1] != null)//파트너의 경우 없을 수 있다.
            {
                CheckRenderQ(RenderQ, effect[1].transform);
                List <ParticleSystem> list = UIHelper.FindComponents <ParticleSystem>(effect[1].transform);
                ResettingParticle(parent, list, 0.4f);
            }

            if (effect[0] != null)
            {
                effect[0].SetActive(true);
            }
            if (effect[1] != null)
            {
                effect[1].SetActive(true);
            }
        }

        EffectObj = effect;

        //if (parent.parent != null && parent.parent.FindChild("Shadow") == null)
        if (isShadow && parent.parent != null && parent.parent.FindChild("Shadow") == null)
        {
            GameObject shadowGO = ResourceMgr.Instantiate <GameObject>("Etc/Shadow");
            shadowGO.transform.parent        = unitTf;
            shadowGO.transform.localPosition = Vector3.zero; //new Vector3(0, 0.028f, 0f);
            shadowGO.transform.localRotation = Quaternion.Euler(new Vector3(-80, 180, -180));
            shadowGO.transform.localScale    = Vector3.one;  //new Vector3(1.5f, 1.5f, 1.5f);
            shadowGO.name = "Shadow";

            NGUITools.SetLayer(shadowGO, parent.gameObject.layer);
            SetRenderQueue q = shadowGO.AddComponent <SetRenderQueue>();
            q.renderQueue = 3001;

            shadowGO.transform.parent = parent.parent;
        }

        NGUITools.SetLayer(unitTf.gameObject, LayerMask.NameToLayer("UI"));//parent.gameObject.layer);
        NGUITools.SetChildLayer(unitTf, LayerMask.NameToLayer("UI"));
    }
Ejemplo n.º 12
0
    public void setItemInSlot(InventorySlot itemSlot, Item item, CharacterColors colors = null)
    {
        if (itemSlot == InventorySlot.None)
        {
            return;
        }
        removeSprite(getItemInSlot(itemSlot));
        if (item != null && item.spritePrefab != null && character != null && character.unit != null)
        {
            if (colors == null)
            {
                colors = character.characterSheet.characterColors;
            }
            GameObject     sprite = GameObject.Instantiate(item.spritePrefab) as GameObject;
            SpriteRenderer sr     = sprite.GetComponent <SpriteRenderer>();
            switch (itemSlot)
            {
            case InventorySlot.Head:
            case InventorySlot.Chest:
                sr.color = colors.primaryColor;
                break;

            case InventorySlot.Boots:
                //	sr.color = new Color(.4f,.8f,.2f);
                break;

            case InventorySlot.Pants:
                sr.color = colors.secondaryColor;
                break;

            default:
                break;
            }
            item.sprite                       = sprite;
            sprite.transform.parent           = character.unit.transform;
            sprite.transform.localPosition    = new Vector3(0, 0, 0);
            sprite.transform.localEulerAngles = new Vector3(0, 0, 0);
            sprites.Add(new SpriteOrder(item.sprite, getOrder(itemSlot)));
            if (MapGenerator.mg != null && MapGenerator.mg.isInPriority())
            {
                SetRenderQueue.setRendererQueue(sr.renderer, new int[]  { 1000 });
            }
        }
        switch (itemSlot)
        {
        case InventorySlot.Head:
            headSlot = (Armor)item;
            break;

        case InventorySlot.Chest:
            chestSlot = (Armor)item;
            break;

        case InventorySlot.Glove:
            gloveSlot = (Armor)item;
            break;

        case InventorySlot.Pants:
            pantsSlot = (Armor)item;
            break;

        case InventorySlot.Boots:
            bootsSlot = (Armor)item;
            break;

        case InventorySlot.RightHand:
            rightHand = (Weapon)item;
            break;

        case InventorySlot.LeftHand:
            leftHand = (Weapon)item;
            break;

        case InventorySlot.Shoulder:
            shoulderSlot = item;
            break;
        }
    }
Ejemplo n.º 13
0
 private static void SRQSet(SetRenderQueue queueObject, int value)
 {
     queueObject.SetFieldValue("m_queues", new int[] { value });
 }
    /// <summary> 비동기 방식의 게임들 결과화면 </summary>
    void ResultDungeon()
    {
        if (G_GameInfo.GameMode == GAME_MODE.SINGLE)
        {
            //현재 최초보상받을수있는지 체크?
            DungeonTable.StageInfo lowData = _LowDataMgr.instance.GetStageInfo(SingleGameState.lastSelectStageId);
            if (lowData != null)
            {
                //if (lowData.type == 2 && isSuccess)
                // {
                if (SingleGameState.IsFirstReward)
                {
                    GatchaReward.FixedRewardInfo firstInfo = _LowDataMgr.instance.GetFixedRewardItem(lowData.FirstReward);

                    //최초보상받을시기?
                    GameObject go = Instantiate(ItemSlotPrefab) as GameObject;
                    Transform  tf = go.transform;
                    tf.parent        = FirstRewardPopup.transform.FindChild("Icon").transform;
                    tf.localPosition = Vector3.zero;
                    tf.localScale    = Vector3.one;

                    UILabel name = FirstRewardPopup.transform.FindChild("Txt_Iconname").GetComponent <UILabel>();

                    InvenItemSlotObject slotObj = go.GetComponent <InvenItemSlotObject>();
                    slotObj.SetLowDataItemSlot(firstInfo.ItemId == 0? firstInfo.Type : firstInfo.ItemId, firstInfo.ItemCount);

                    Item.EquipmentInfo equipInfo = _LowDataMgr.instance.GetLowDataEquipItemInfo(firstInfo.ItemId);
                    if (equipInfo != null) //장비
                    {
                        name.text = _LowDataMgr.instance.GetStringItem(equipInfo.NameId);
                    }
                    else
                    {
                        uint id = 0;
                        //혹시 재화인가....
                        if (firstInfo.ItemId == 0)
                        {
                            switch (firstInfo.Type)
                            {
                            case 1:    //골드
                                id = 599000;
                                break;

                            case 2:    //원보
                                id = 599001;
                                break;

                            case 3:    //공헌
                                id = 599004;
                                break;

                            case 4:    //명예
                                id = 599005;
                                break;

                            case 5:    //휘장
                                id = 599002;
                                break;

                            case 6:    //사자왕
                                id = 599006;
                                break;

                            case 7:    //성망
                                id = 599003;
                                break;

                            case 8:    //체력
                                id = 599104;
                                break;

                            case 9:    //경험치;
                                id = 599105;
                                break;
                            }

                            name.text = _LowDataMgr.instance.GetStringItem(_LowDataMgr.instance.GetUseItem(firstInfo.ItemId == 0 ? id : firstInfo.ItemId).NameId);
                        }
                        else
                        {
                            name.text = _LowDataMgr.instance.GetStringItem(_LowDataMgr.instance.GetUseItem(firstInfo.ItemId).NameId);
                        }
                    }

                    SetRenderQueue renderQ = UIHelper.FindComponent <SetRenderQueue>(FirstRewardPopup.transform.FindChild("Effect"));
                    if (renderQ != null)
                    {
                        renderQ.ResetRenderQ(3031);
                    }

                    FirstRewardPopup.SetActive(true);

                    TempCoroutine.instance.FrameDelay(0.1f, () =>
                    {
                        FirstRewardPopup.transform.GetComponent <TweenScale>().ResetToBeginning();
                        FirstRewardPopup.transform.GetComponent <TweenScale>().PlayForward();
                    });

                    TempCoroutine.instance.FrameDelay(3f, () =>
                    {
                        FirstRewardPopup.SetActive(false);
                    });
                }
            }
            // }

            if (isSuccess && SceneManager.instance.CurTutorial == TutorialType.STAGE)//튜토리얼 중 스테이지 클리어했다면
            {
                SceneManager.instance.CurTutorial = TutorialType.STAGE;
            }
        }

        Reward = NetData.instance._RewardData;
        if (Reward == null)//없으면 안돼겠지만. 뻑은 안나게..
        {
            Reward = new NetData.RewardData();
        }

        uint curExp = 0, maxExp = 0, level = 0;

        if (Reward.GetExp <= 0)//획득 경험치가 있다면 뭔가 데이터가 있다는 것임.
        {
            level = NetData.instance.UserLevel;
            NetData.instance.GetUserInfo().GetCurrentAndMaxExp(ref curExp, ref maxExp);
        }
        else
        {
            curExp = Reward.SaveExp;
            maxExp = Reward.SaveMaxExp;
            level  = Reward.SaveLevel;
        }

        ExpGauge.value = (float)curExp / (float)maxExp;
        Labels[(int)labelT.hLv].text = string.Format(_LowDataMgr.instance.GetStringCommon(453), level);

        SettingRewardItem();

        if (G_GameInfo.GameMode == GAME_MODE.SINGLE)//싱글게임에만 스테이지 퀘스트가 존재.
        {
            StartCoroutine("MissionResult");
        }
        else if (G_GameInfo.GameMode != GAME_MODE.ARENA)
        {
            Result();
        }

        if (isSuccess)
        {
            TitleObj[0].SetActive(true);
            UIHelper.CreateEffectInGame(TitleObj[0].transform.FindChild("bg"), "Fx_UI_exp_result_01");
        }
        else
        {
            TitleObj[1].SetActive(true);
        }
    }
Ejemplo n.º 15
0
    public void NoticePop(NoticeType type, uint condition, string str, object obj)
    {
        Debug.Log(string.Format("<color=yellow>NoticePanel RunType={0}</color>", type));
        Transform typeTf    = NoticeGo[(int)type].transform;
        bool      notActive = false;

        switch (type)
        {
        case NoticeType.PowerUp:    //전투력
            NetData._UserInfo charInven = NetData.instance.GetUserInfo();
            if (charInven == null)
            {
                return;
            }

            int maxValue = (int)charInven.RefreshTotalAttackPoint(false);
            if (uiMgr.PrevAttack == maxValue)
            {
                return;
            }

            notActive = true;
            NoticeGo[(int)type].SetActive(true);

            _StatUpData.StatUpInit(uiMgr.PrevAttack, maxValue,
                                   StatUpLbl[0], typeTf.FindChild("effRoot"));

            int value = maxValue - uiMgr.PrevAttack;
            StatUpLbl[1].text = string.Format("{0}{1}[-]", value < 0 ? "[e84d29]" : "[FFFFFF]", value);

            uiMgr.PrevAttack = maxValue;
            break;

        case NoticeType.Achiev:    //업적

            string[] achievData = str.Split(',');
            AchieveType    = uint.Parse(achievData[0]);
            AchieveSubType = uint.Parse(achievData[1]);
            AchieveLv      = uint.Parse(achievData[2]);
            AchieveTabType = uint.Parse(achievData[3]);

            if (!TownState.TownActive)
            {
                return;
            }
            else
            {
                UIBasePanel gachaPanel = UIMgr.GetUIBasePanel("UIPanel/GachaPanel");
                if (gachaPanel != null && !(gachaPanel as GachaPanel).IsEndAni)
                {
                    return;
                }
            }

            notActive = true;
            break;

        case NoticeType.LevelUp:    //레벨업
            GameObject go = UIHelper.CreateEffectInGame(NoticeGo[(int)NoticeType.LevelUp].transform, "Fx_UI_levelup_01" + SystemDefine.LocalEff);
            Destroy(go, 2f);

            _LevelUpData.TimeInit(0, 2f);
            break;

        case NoticeType.Quest:    //퀘스트 클리어
            Quest.QuestInfo info = _LowDataMgr.instance.GetLowDataQuestData(condition);
            if (info == null)
            {
                return;
            }

            QuestLbl[0].text = info.Title;
            QuestLbl[1].text = info.LeftDescription;

            float            questDuration = 0;
            List <UITweener> tweenList     = UIHelper.FindComponents <UITweener>(typeTf);
            for (int i = 0; i < tweenList.Count; i++)
            {
                tweenList[i].ResetToBeginning();
                tweenList[i].PlayForward();
                if (questDuration < tweenList[i].delay + tweenList[i].duration)
                {
                    questDuration = tweenList[i].delay + tweenList[i].duration;
                }
            }

            _QuestData.TimeInit(0, questDuration);
            break;

        case NoticeType.Message:    //메세지
            string msg = null;
            if (0 < condition)
            {
                msg = _LowDataMgr.instance.GetStringCommon(condition);
            }
            else
            {
                msg = str;
            }

            for (int i = NoticeLbl.Length - 1; 0 < i; i--)
            {
                int arr = i - 1;
                NoticeLbl[i].color = NoticeLbl[arr].color;
                NoticeLbl[i].text  = NoticeLbl[arr].text;
                NoticeDelay[i]     = NoticeDelay[arr];
            }

            IsMsgUpdate        = true;
            NoticeDelay[0]     = 1;
            NoticeLbl[0].color = Color.white;
            NoticeLbl[0].text  = msg;
            break;

        case NoticeType.System:    //공지 시스템 메세지 처리
            MessageData systemData = new MessageData();
            systemData.MsgInit(str, SystemPos.duration + SystemPos.delay, SystemLbl, SystemPos);
            SystemList.Add(systemData);

            notActive = true;
            break;

        case NoticeType.Game:    //게임 알림(장비 습득 등) 메세지 처리
            MessageData gameData = new MessageData();
            gameData.MsgInit(str, GameOpenDuration + GameHideDuration + GameHideDelay, GameLbl, GameAlpha);
            gameData.SetAlphaData(GameOpenDuration, GameHideDuration, GameHideDelay);
            GameList.Add(gameData);

            notActive = true;
            break;

        case NoticeType.GetMailItem:    //우편함에서 얻은 아이템

            if (0 < condition)
            {
                Quest.QuestInfo lowData = _LowDataMgr.instance.GetLowDataQuestData(condition);

                if (0 < lowData.rewardGold)
                {
                    GetItemList.Add(new NetData.EmailAttachmentInfo((int)AssetType.Gold, (int)AssetType.Gold, lowData.rewardGold));
                }

                if (0 < lowData.rewardEnergy)
                {
                    GetItemList.Add(new NetData.EmailAttachmentInfo((int)AssetType.Energy, (int)AssetType.Energy, lowData.rewardEnergy));
                }

                if (0 < lowData.rewardExp)
                {
                    GetItemList.Add(new NetData.EmailAttachmentInfo((int)AssetType.Exp, (int)AssetType.Exp, lowData.rewardExp));
                }

                if (0 < lowData.rewardItem)
                {
                    GatchaReward.FixedRewardInfo gatcha = _LowDataMgr.instance.GetFixedRewardItem(lowData.rewardItem);
                    if (gatcha != null)
                    {
                        if (gatcha.ClassType != 99)
                        {
                            int classType = UIHelper.GetClassType(NetData.instance.GetUserInfo()._userCharIndex);
                            List <GatchaReward.FixedRewardInfo> gachaList = _LowDataMgr.instance.GetFixedRewardItemGroupList(lowData.rewardItem);
                            for (int i = 0; i < gachaList.Count; i++)
                            {
                                if (gachaList[i].ClassType != classType)
                                {
                                    continue;
                                }

                                GetItemList.Add(new NetData.EmailAttachmentInfo(gachaList[i].Type, gachaList[i].ItemId, gachaList[i].ItemCount));
                                break;
                            }
                        }
                        else
                        {
                            GetItemList.Add(new NetData.EmailAttachmentInfo(gatcha.Type, gatcha.ItemId, gatcha.ItemCount));
                        }
                    }
                }
            }
            else if (obj != null)
            {
                List <NetData.EmailAttachmentInfo> mailList = (List <NetData.EmailAttachmentInfo>)obj;
                GetItemList.AddRange(mailList);
            }

            if (GetItemList.Count <= 0)
            {
                return;
            }

            TempCoroutine.instance.RemoveKeyDelay("GetMailItem");
            SoundManager.instance.PlaySfxSound(eUISfx.UI_reward_popup, false);
            break;

        case NoticeType.GetItem:    //획득 아이템 연출.
            GetItemData data;
            data.IconId  = condition;
            data.IsShard = (bool)obj;
            GetUseItemList.Add(data);
            notActive = true;

            if (_GetItemData.IsStart)    //이미 시작중이라면.
            {
                //NoticeGo[(int)NoticeType.GetItem].SetActive(true);
                bool      create = false;
                Transform itemTf = null;
                if (GetUseItemList.Count - 1 < typeTf.childCount)
                {
                    itemTf = typeTf.GetChild(GetUseItemList.Count - 1);
                }
                else
                {
                    itemTf               = Instantiate(typeTf.GetChild(0)) as Transform;
                    itemTf.parent        = typeTf;
                    itemTf.localPosition = Vector3.zero;
                    itemTf.localScale    = Vector3.one;

                    create = true;
                }

                itemTf.gameObject.SetActive(true);

                float            delay   = 0;
                List <UITweener> tweener = UIHelper.FindComponents <UITweener>(itemTf);
                for (int j = 0; j < tweener.Count; j++)
                {
                    if (create)
                    {
                        tweener[j].delay += (GetUseItemList.Count - 1) * 0.05f;
                    }
                    if (delay < tweener[j].duration + tweener[j].delay)
                    {
                        delay = tweener[j].duration + tweener[j].delay;
                    }

                    tweener[j].ResetToBeginning();
                    tweener[j].PlayForward();
                }

                UISprite sp = itemTf.FindChild("icon").GetComponent <UISprite>();
                sp.spriteName = _LowDataMgr.instance.GetLowDataIcon(data.IconId);
                sp.atlas      = AtlasMgr.instance.GetLoadAtlas(data.IsShard ? LoadAtlasType.Shard : LoadAtlasType.UseItem);

                _GetItemData.TimeInit(0, delay);
            }
            break;

        case NoticeType.Contents:
            uint   locKey   = 0;
            string iconName = null;
            switch ((OpenContentsType)condition)
            {
            case OpenContentsType.Char:         //오픈연출타입	캐릭터
                iconName = "costume_btn";
                locKey   = 65;
                break;

            case OpenContentsType.Achiev:         //오픈연출타입	업적
                iconName = "achi_btn";
                locKey   = 247;
                break;

            case OpenContentsType.Benefit:         //오픈연출타입	혜택
                iconName = "benefit_btn";
                locKey   = 681;
                break;

            case OpenContentsType.Social:         //오픈연출타입	소셜
                iconName = "social_btn";
                locKey   = 678;
                break;

            case OpenContentsType.Dungeon:         //오픈연출타입	컨텐츠
                iconName = "dungeon_btn";
                locKey   = 10;
                break;

            case OpenContentsType.Shop:         //오픈연출타입	상품
                iconName = "pvp_shop";
                locKey   = 462;
                break;

            case OpenContentsType.Partner:         //오픈연출타입	파트너
                iconName = "firend_btn";
                locKey   = 7;
                break;

            case OpenContentsType.FreeFight:         //오픈연출타입	난투장
                iconName = "free_btn";
                locKey   = 12;
                break;

            case OpenContentsType.Rank:         //오픈연출타입	랭킹
                iconName = "ranking_btn";
                locKey   = 161;
                break;

            case OpenContentsType.Guilde:         //오픈연출타입	길드
                iconName = "guild_btn";
                locKey   = 8;
                break;

            case OpenContentsType.Category:         //오픈연출타입	재화인벤
                iconName = "inven_btn";
                locKey   = 1287;
                break;

            case OpenContentsType.Chapter:         //오픈연출타입	재화인벤
                iconName = "adventure_btn";
                locKey   = 9;
                break;
            }

            string systemMsg = string.Format(_LowDataMgr.instance.GetStringCommon(9924), _LowDataMgr.instance.GetStringCommon(locKey));
            typeTf.FindChild("Icon").GetComponent <UISprite>().spriteName   = iconName;
            typeTf.FindChild("Icon/Label_01").GetComponent <UILabel>().text = _LowDataMgr.instance.GetStringCommon(locKey);
            typeTf.FindChild("Icon/Label_02").GetComponent <UILabel>().text = _LowDataMgr.instance.GetStringCommon(locKey);
            typeTf.FindChild("Txt_Title").GetComponent <UILabel>().text     = systemMsg;

            UIMgr.AddLogChat(systemMsg);

            SetRenderQueue renderQ = UIHelper.FindComponent <SetRenderQueue>(typeTf.FindChild("Effect"));
            if (renderQ != null)
            {
                renderQ.ResetRenderQ(GetComponent <UIPanel>().startingRenderQueue + 1);
            }

            UITweener openTween = typeTf.GetComponent <UITweener>();
            openTween.ResetToBeginning();
            openTween.PlayForward();

            break;
        }

        if (!notActive)
        {
            NoticeGo[(int)type].SetActive(true);
        }
    }
Ejemplo n.º 16
0
        public bool Update()
        {
            if (!IsGetAction)
            {
                return(false);
            }

            //if (SceneManager.instance.IsShowLoadingPanel())//로딩 패널이다 대기.
            //    return false;

            RunTime += Time.unscaledDeltaTime;
            if (RunTime < Delay)
            {
                return(false);
            }

            if (!IsPlaySound)//한번만 실행시키려고 이렇게함.
            {
                if (Parent != null)
                {
                    GameObject          effGo = UIHelper.CreateEffectInGame(Parent, "Fx_UI_fightingPower_01");
                    List <MeshRenderer> list  = UIHelper.FindComponents <MeshRenderer>(effGo.transform);
                    int renderQ = Parent.parent.GetComponent <UIPanel>().startingRenderQueue - 1;
                    for (int i = 0; i < list.Count; i++)
                    {
                        SetRenderQueue q = list[i].transform.GetComponent <SetRenderQueue>();
                        if (q == null)
                        {
                            q = list[i].gameObject.AddComponent <SetRenderQueue>();
                        }

                        if (0 < renderQ - q.renderQueue)
                        {
                            q.ResetRenderQ(q.renderQueue + (renderQ - q.renderQueue));
                        }
                    }

                    Destroy(effGo, 2f);
                }

                SoundManager.instance.PlaySfxSound(eUISfx.UI_fighting_power_up, false);
                IsPlaySound = true;
            }

            float rate = (RunTime - Delay) / Duration;

            rate = Mathf.Clamp01(rate);

            float value = Mathf.Lerp(NowStatValue, MaxStatValue, rate);

            StatUpLabel.text = string.Format("{0}{1}{2}{3}[-]", ColorStr, Msg, value.ToString("0"), DecoStr);

            if (rate >= 1)                     //종료
            {
                if (1.5f + Duration < RunTime) //바로 사라지면 안되니 딜레이를 줬다
                {
                    NowStatValue = 0;
                    MaxStatValue = 0;

                    RunTime     = 0;
                    Duration    = 0;
                    IsGetAction = false;

                    return(true);
                }
            }

            return(false);
        }