Пример #1
0
    private void ProcessWeaponShow(ShowWeaponItem item)
    {
        //播放人物动作

        if (!string.IsNullOrEmpty(item.roleanim))
        {
            WeaponTableItem mWeaopnRes = DataManager.WeaponTable[mWeaponID] as WeaponTableItem;
            string          animname   = AnimationNameDef.GetAnimNameByStatename(mWeaopnRes.ani_pre, item.roleanim);
            PlayAnimaton(animname);
        }

        //播放武器动作
        if (!string.IsNullOrEmpty(item.weaponanim))
        {
            WeaponTableItem mWeaopnRes = DataManager.WeaponTable[mWeaponID] as WeaponTableItem;
            string          animname   = AnimationNameDef.WeaponPrefix + item.weaponanim;
            PlayWeaponAnimation(animname);
        }

        mShowEffect.Add(AttachEffect(item.effectid0, item.mountpoint0));
        mShowEffect.Add(AttachEffect(item.effectid1, item.mountpoint1));
        mShowEffect.Add(AttachEffect(item.effectid2, item.mountpoint2));
        foreach (uint id in mShowEffect)
        {
            ParticleItem pitem = SceneManager.Instance.GetCurScene().GetParticleManager().GetParticle(id);
            if (pitem == null)
            {
                continue;
            }
            pitem.Layer = layermask;
        }
    }
Пример #2
0
    public override void Update()
    {
        UpdateAttachMent();
        WeaponTableItem mWeaopnRes = DataManager.WeaponTable[mWeaponID] as WeaponTableItem;

        if (mWeaopnRes != null)
        {
            mIdleTime += Time.fixedDeltaTime;
            if (mIdleTime >= GameConfig.CPPlayIdlePerTime)
            {
                if (DataManager.ShowWeaponTable.ContainsKey(mWeaopnRes.id))
                {
                    ShowWeaponItem showres  = DataManager.ShowWeaponTable[mWeaopnRes.id] as ShowWeaponItem;
                    string         animname = AnimationNameDef.GetAnimNameByStatename(mWeaopnRes.ani_pre, showres.roleanim);
                    PlayAnimaton(animname);

                    PlayWeaponAnimation("Base Layer." + showres.weaponanim);
                }
                mIdleTime = 0;
            }
        }



        if (mCharacter != null)
        {
            if (mCharacter.GetComponent <Renderer>() != null)
            {
                mCharacter.transform.localPosition = new Vector3(mPos.x, mPos.y - mCharacter.GetComponent <Renderer>().bounds.extents.y, mPos.z);
            }

            mCharacter.transform.localEulerAngles = new Vector3(0, mRotateY, 0);

            if (mVisual.AnimManager != null)
            {
                AnimatorStateInfo info = mVisual.AnimManager.Anim.GetCurrentAnimatorStateInfo((int)AnimationLayer.BaseLayer);
                if (Mathf.FloorToInt(info.normalizedTime) >= 1 && info.IsName(mStatename) && !info.IsName(DefaultCharacterAnim))
                {
                    PlayAnimaton(DefaultCharacterAnim);

                    if (mWeapon != null && mWeapon.AnimManager != null && mVisual.AnimManager.Anim != null)
                    {
                        PlayWeaponAnimation(AnimationNameDef.WeaponDefault);
                    }
                }

                if (mPreviewRoot.activeSelf == false)
                {
                    mInvalidAnim = true;
                }
                if (mPreviewRoot.activeSelf == true && mInvalidAnim)
                {
                    mStatename = string.Empty;
                    PlayAnimaton(DefaultCharacterAnim);
                    mInvalidAnim = false;
                }
            }
        }
    }
Пример #3
0
    private void OnWeaponSuccess()
    {
        if (mVisual == null || mVisual.Visual == null || mPreviewRoot == null)
        {
            return;
        }
        if (mWeapon == null || !mWeapon.IsCompleteOrDestroy)
        {
            return;
        }

        mVisual.VisualTransform.parent = mPreviewRoot.transform;


        WeaponTableItem mWeaopnRes = DataManager.WeaponTable[mWeaponID] as WeaponTableItem;

        Transform bone = mVisual.GetBoneByName(mWeaopnRes.mountpoint);

        if (bone == null)
        {
            bone = mVisual.VisualTransform;
        }
        mWeapon.Visual.layer = layermask;

        Renderer[] renders = mWeapon.Visual.GetComponentsInChildren <Renderer>();
        foreach (Renderer rd in renders)
        {
            rd.gameObject.layer = layermask;
            Material mtl = new Material(Shader.Find("Fantasy/ui/weapon"));
            mtl.mainTexture = rd.material.mainTexture;
            if (rd.material.shader.name == "FantasyEngine/weapon/environment")
            {
                mtl.SetTexture("_HightLightTex", rd.material.GetTexture("_HightLightTex"));
            }
            rd.material = mtl;
        }



        string animname = AnimationNameDef.GetAnimNameByStatename(mWeaopnRes.ani_pre, AnimationNameDef.PrefixXiuxi);

        PlayAnimaton(animname);

        //武器切换成功展现武器

        if (DataManager.ShowWeaponTable.ContainsKey(mWeaopnRes.id))
        {
            ShowWeaponItem showres = DataManager.ShowWeaponTable[mWeaopnRes.id] as ShowWeaponItem;
            ProcessWeaponShow(showres);
        }
    }
Пример #4
0
    private void OnWeaponSuccess()
    {
        if (mVisual == null || mVisual.Visual == null)
        {
            return;
        }
        if (mWeapon == null || !mWeapon.IsCompleteOrDestroy)
        {
            return;
        }

        WeaponTableItem mWeaopnRes = DataManager.WeaponTable[mWeaponID] as WeaponTableItem;

        Transform bone = mVisual.GetBoneByName(mWeaopnRes.mountpoint);

        if (bone == null)
        {
            bone = mVisual.VisualTransform;
        }

        string animname = AnimationNameDef.GetAnimNameByStatename(mWeaopnRes.ani_pre, AnimationNameDef.PrefixXiuxi);

        PlayAnimaton(animname);


        AttachMent attachment = mAttachMents[(int)AttachMountType.Weapon];

        if (attachment == null)
        {
            return;
        }

        if (mWeaopnRes.weapon_buff != uint.MaxValue)
        {
            SkillBuffTableItem sbt = DataManager.BuffTable[mWeaopnRes.weapon_buff] as SkillBuffTableItem;
            if (sbt != null)
            {
                ParticleUtility.AddEffect2MV(mWeapon, (int)sbt._3DEffectID, sbt._3DEffectBindpoint, ParticleMng);
            }
        }
    }