From bf3359abacfaece5e8c779ccd9e91b21d12af2ca Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期六, 27 四月 2019 15:00:42 +0800
Subject: [PATCH] 3335 BossShow添加支持当前角色模型
---
System/BossShow/ShowActor.cs | 64 ++++++++++++++++++++++++++++----
1 files changed, 56 insertions(+), 8 deletions(-)
diff --git a/System/BossShow/ShowActor.cs b/System/BossShow/ShowActor.cs
index 72d8741..9a67f3a 100644
--- a/System/BossShow/ShowActor.cs
+++ b/System/BossShow/ShowActor.cs
@@ -50,8 +50,16 @@
this.m_Index = index;
this.m_Instance = instanceid;
- m_NpcCfg = NPCConfig.Get(npcID);
- Appear(index, _actorShowConfig);
+ if (npcId == 1)
+ {
+ Appear(index, _actorShowConfig);
+ }
+ else
+ {
+ m_NpcCfg = NPCConfig.Get(npcID);
+ Appear(index, _actorShowConfig);
+ }
+
}
public void Appear(int index, ActorShowConfig _actorShowConfig)
@@ -60,10 +68,21 @@
this.actorShowModel = _actorShowConfig;
if (m_Model == null)
{
- m_Model = GameObjectPoolManager.Instance.RequestNpcGameObject(m_NpcId);
- m_Animator = m_Model.AddMissingComponent<Animator>();
- m_CacheLayer = m_Model.layer;
- m_Model.gameObject.SetLayer(LayerUtility.BossShow, true);
+ if (npcId != 1)
+ {
+ m_Model = GameObjectPoolManager.Instance.RequestNpcGameObject(m_NpcId);
+ m_Animator = m_Model.AddMissingComponent<Animator>();
+ m_CacheLayer = m_Model.layer;
+ m_Model.gameObject.SetLayer(LayerUtility.BossShow, true);
+ }
+ else
+ {
+ var hero = PlayerDatas.Instance.hero;
+ m_Model = GameObject.Instantiate(hero.ClothedModel) as GameObject;
+ m_Animator = m_Model.AddMissingComponent<Animator>();
+ m_CacheLayer = m_Model.layer;
+ m_Model.gameObject.SetLayer(LayerUtility.BossShow, true);
+ }
}
m_Model.SetActive(true);
m_Model.transform.position = new Vector3((float)actorShowModel.PosX[m_Index] / 200, 0, (float)actorShowModel.PosY[m_Index] / 200);
@@ -85,7 +104,21 @@
}
m_Model.transform.rotation = MathUtility.GetClientRotationFromAngle(actorShowModel.NpcFace[m_Index]);
- var controller = AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerShowSuffix, actorShowModel.mob[m_Index]);
+ RuntimeAnimatorController controller = null;
+ if (npcId == 1)
+ {
+ var job = PlayerDatas.Instance.baseData.Job;
+ var _controllerName = "A_Zs";
+ if (job == 2)
+ {
+ _controllerName = "A_Fs";
+ }
+ controller = AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerShowSuffix, _controllerName);
+ }
+ else
+ {
+ controller = AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerShowSuffix, actorShowModel.mob[m_Index]);
+ }
if (controller != null)
{
m_CacheAnimator = m_Animator.runtimeAnimatorController;
@@ -116,7 +149,7 @@
}
}
RequestCircleShadow();
- if (shadow)
+ if (shadow && m_NpcId != 1)
{
shadow.transform.localScale = m_NpcCfg.IsBoss == 1 ? Vector3.one * 3 : Vector3.one;
shadow.gameObject.SetLayer(LayerUtility.BossShow, true);
@@ -172,4 +205,19 @@
RecyleCircleShadow();
}
+
+ public void Destroy()
+ {
+ if (m_Model != null)
+ {
+ GameObject.Destroy(m_Model);
+ m_Model = null;
+ }
+ if (sfxController != null)
+ {
+ SFXPlayUtility.Instance.Release(sfxController);
+ sfxController = null;
+ }
+ RecyleCircleShadow();
+ }
}
--
Gitblit v1.8.0