示例#1
0
    public void AddEffect(UserRole.MagicState magicAttrib)
    {
        _magicAttribs.Enqueue(magicAttrib);

        if (_controller.uiSlot == null)
        {
            return;
        }
        //Debug.Log("AddEffect " + magicAttrib.EffectType);

        if (_uiEffectSet.ContainsKey(magicAttrib.EffectType))
        {
            //Debug.Log("_uiEffectSet.ContainsKey " + magicAttrib.EffectType);
            _uiEffectSet[magicAttrib.EffectType].AddDuration(magicAttrib.RemainTime);
        }
        else
        {
            //Debug.Log("effectRoot " + _controller.uiSlot.effectRoot);
            //Debug.Log("_uiEffectPrefab " + _uiEffectPrefab);
            GameObject         go       = NGUITools.AddChild(_controller.uiSlot.effectRoot, _uiEffectPrefab);
            UIEffectController uiEffect = go.GetComponent <UIEffectController>();
            uiEffect.CreateEffect(this, magicAttrib);
            go.transform.localPosition = new Vector3((_uiEffectSet.Count % 3) * _offset.x,
                                                     (_uiEffectSet.Count / 3) * _offset.y,
                                                     0);

            _uiEffectSet.Add(magicAttrib.EffectType, uiEffect);
        }
    }
示例#2
0
    private IEnumerator CheckShowEffect()
    {
        while (true)
        {
            if ((_effectController == null || _effectController.curState != EffectController.EffectState.Idle) && _magicAttribs.Count > 0)
            {
                UserRole.MagicState magicAttrib = _magicAttribs.Dequeue();

                string path = GetPathEffect(magicAttrib.EffectType);
                if (path != "")
                {
                    GameObject go = GameObject.Instantiate(Resources.Load(path) as GameObject) as GameObject;

                    _effectController = go.GetComponent <EffectController>();
                    if (_controller.uiSlot != null)
                    {
                        _effectController.EndPos = _controller.uiSlot.worldPos;
                    }
                    go.transform.parent        = _controller.transform;
                    go.transform.localPosition = _controller.offsetEffect;
                    go.transform.localScale    = new Vector3(1, 1, 1);

                    go.transform.rotation = _controller.transform.rotation;
                }
            }
            yield return(new WaitForSeconds(0.5f));
        }
    }
    public void CreateEffect(EffectManager manager, UserRole.MagicState magicAttrib)
    {
        //Debug.Log("CreateEffect " + magicAttrib.EffectType + " " + magicAttrib.RemainTime);

        /* icon.mainTexture = Resources.Load<Texture2D>(GetIconPath(magicAttrib.EffectType));
         * _duration = magicAttrib.RemainTime;
         * _timeLeft = _duration;
         * _manager = manager;
         * _magicAttrib = magicAttrib;
         * StartCoroutine(UpdateTimer());*/
    }
    public void AddEffect(UserRole.MagicState magicAttrib)
    {
        int        idEffect = (int)magicAttrib.EffectType;
        GameObject go       = NGUITools.AddChild(uiEffect.root.gameObject, uiEffect.prefab);

        go.GetComponent <UIEffectEvent>().effectID = idEffect;

        UISpriteAnimation anim         = go.GetComponent <UISpriteAnimation>();
        string            effectPrefix = string.Format("effect{0:D2}_", idEffect);

        go.GetComponent <UISprite>().spriteName = effectPrefix + "1";
        anim.namePrefix = effectPrefix;
        go.SetActive(true);

        if (effectObjectList.ContainsKey(magicAttrib.EffectType))
        {
            RemoveEffect(magicAttrib.EffectType);
        }

        effectObjectList.Add(magicAttrib.EffectType, go);

        uiEffect.root.Reposition();
    }
示例#5
0
    void TestEffect()
    {
        if (Input.GetKeyDown(KeyCode.S))
        {
            UserRole.RoleState roleState = new UserRole.RoleState()
            {
                RoleUId = 1,
            };

            roleState.MagicStates = new UserRole.MagicState[1];

            UserRole.MagicState magicState = new UserRole.MagicState()
            {
                RemainTime  = 5,
                AttribType  = AttribType.SkillDisable,
                EffectType  = EffectType.Slow,
                AffectValue = 1
            };
            roleState.MagicStates[0] = magicState;

            CheckEffect(roleState);
        }
    }