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; } }
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; } } } }
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); } }
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); } } }