| | |
| | | private H0406_tagNPCAppear m_H0406;
|
| | | private HeadUpQuestSign m_MissionSign;
|
| | |
|
| | | private int m_WeaponID;
|
| | | private int m_SecondaryID;
|
| | | private int m_WingID;
|
| | | private int m_HorseID;
|
| | |
|
| | | private GameObject m_WeaponModel;
|
| | | private GameObject m_SecondaryModel;
|
| | | private GameObject m_WingModel;
|
| | | private GameObject m_HorseModel;
|
| | |
|
| | | protected override void OnInit(GameNetPackBasic package)
|
| | | {
|
| | | m_H0406 = package as H0406_tagNPCAppear;
|
| | |
| | | {
|
| | | Pos = Constants.Special_Hide_Position;
|
| | | }
|
| | |
|
| | | if (m_HorseModel)
|
| | | {
|
| | | m_HorseModel.transform.SetParent(m_Root);
|
| | | m_HorseModel.transform.localPosition = Vector3.zero;
|
| | | m_HorseModel.transform.localRotation = Quaternion.identity;
|
| | |
|
| | | var _horseConfig = Config.Instance.Get<HorseConfig>(m_HorseID);
|
| | | var _modelResConfig = Config.Instance.Get<ModelResConfig>(_horseConfig.Model);
|
| | | var _horseBindNode = m_HorseModel.transform.GetChildTransformDeeply(_modelResConfig.BindPoint);
|
| | |
|
| | | if (_horseBindNode)
|
| | | {
|
| | | m_Model.transform.SetParent(_horseBindNode);
|
| | | m_Model.transform.localPosition = Vector3.zero;
|
| | | m_Model.transform.localEulerAngles = new Vector3(90, 0, 0);
|
| | | var _animator = m_Model.GetComponent<Animator>();
|
| | | _animator.SetInteger(GAStaticDefine.Param_Action, GAStaticDefine.Act_HorseIdle);
|
| | | switch (_horseConfig.ActionType)
|
| | | {
|
| | | case 0:
|
| | | _animator.Play(GAStaticDefine.State_HorseIdleHash);
|
| | | break;
|
| | | case 1:
|
| | | _animator.Play(GAStaticDefine.State_HorseIdle1Hash);
|
| | | break;
|
| | | case 2:
|
| | | _animator.Play(GAStaticDefine.State_HorseIdle2Hash);
|
| | | break;
|
| | | case 3:
|
| | | _animator.Play(GAStaticDefine.State_HorseIdle3Hash);
|
| | | break;
|
| | | case 4:
|
| | | _animator.Play(GAStaticDefine.State_HorseIdle4Hash);
|
| | | break;
|
| | | }
|
| | | }
|
| | | }
|
| | | else if (m_Model)
|
| | | {
|
| | | m_Model.transform.SetParent(m_Root);
|
| | | m_Model.transform.localPosition = Vector3.zero;
|
| | | m_Model.transform.localRotation = Quaternion.identity;
|
| | | }
|
| | | }
|
| | |
|
| | | public override void InitPerformance(uint clientInstID, int npcID)
|
| | | {
|
| | | base.InitPerformance(clientInstID, npcID);
|
| | |
|
| | | if (string.IsNullOrEmpty(NpcConfig.Equips))
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | string[] _ids = NpcConfig.Equips.Split('|');
|
| | | int _weaponId = int.Parse(_ids[0]);
|
| | | int _secondaryId = _ids.Length > 1 ? int.Parse(_ids[1]) : -1;
|
| | | int _horseId = _ids.Length > 2 ? int.Parse(_ids[2]) : -1;
|
| | | int _wingId = _ids.Length > 3 ? int.Parse(_ids[3]) : -1;
|
| | |
|
| | | // Debug.LogFormat("weapon: {0}, secondary: {1}, horse: {2}, wing: {3}", _weaponId, _secondaryId, _horseId, _weaponId);
|
| | |
|
| | | int _job = NpcConfig.MODE.Contains("A_Zs") ? 1 : 2;
|
| | |
|
| | | if (_weaponId > 0)
|
| | | {
|
| | | SetEquip(_weaponId, GAStaticDefine.WeaponBindBoneName, ref m_WeaponModel, ref m_WeaponID);
|
| | | }
|
| | |
|
| | | if (_secondaryId > 0)
|
| | | {
|
| | | SetEquip(_secondaryId, GAStaticDefine.SecondaryBindBoneName[_job - 1], ref m_SecondaryModel, ref m_SecondaryID);
|
| | | }
|
| | |
|
| | | if (_wingId > 0)
|
| | | {
|
| | | SetEquip(_wingId, GAStaticDefine.WingBindBoneName, ref m_WingModel, ref m_WingID);
|
| | | }
|
| | |
|
| | | if (_horseId > 0)
|
| | | {
|
| | | var _horseConfig = Config.Instance.Get<HorseConfig>(_horseId);
|
| | | var _modelResConfig = Config.Instance.Get<ModelResConfig>(_horseConfig.Model);
|
| | | var _prefab = InstanceResourcesLoader.LoadModelRes(_modelResConfig.ID);
|
| | | m_HorseModel = GameObjectPoolManager.Instance.RequestGameObject(_prefab);
|
| | | var _animator = m_HorseModel.GetComponent<Animator>();
|
| | | if (_animator)
|
| | | {
|
| | | _animator.runtimeAnimatorController = AnimatorControllerLoader.LoadMobController(AnimatorControllerLoader.controllerSuffix,
|
| | | _modelResConfig.ResourcesName);
|
| | |
|
| | | }
|
| | | _animator.enabled = true;
|
| | | m_HorseID = _horseId;
|
| | | }
|
| | | }
|
| | |
|
| | | private void SetEquip(int resID, string bindNodeName, ref GameObject model, ref int id)
|
| | | {
|
| | | if (resID > 0)
|
| | | {
|
| | | GameObject _prefab = InstanceResourcesLoader.LoadModelRes(resID);
|
| | | model = GameObjectPoolManager.Instance.RequestGameObject(_prefab);
|
| | | Transform _weaponNode = m_Model.transform.GetChildTransformDeeply(bindNodeName);
|
| | | model.transform.SetParent(_weaponNode);
|
| | | model.transform.localPosition = Vector3.zero;
|
| | | model.transform.localRotation = Quaternion.identity;
|
| | | id = resID;
|
| | | }
|
| | | }
|
| | |
|
| | | protected override void OnUnit()
|
| | | {
|
| | | if (m_WeaponModel)
|
| | | {
|
| | | var _prefab = InstanceResourcesLoader.LoadModelRes(m_WeaponID);
|
| | | if (_prefab)
|
| | | {
|
| | | GameObjectPoolManager.Instance.ReleaseGameObject(_prefab, m_WeaponModel);
|
| | | m_WeaponModel = null;
|
| | | m_WeaponID = 0;
|
| | | }
|
| | | }
|
| | |
|
| | | if (m_SecondaryModel)
|
| | | {
|
| | | var _prefab = InstanceResourcesLoader.LoadModelRes(m_SecondaryID);
|
| | | if (_prefab)
|
| | | {
|
| | | GameObjectPoolManager.Instance.ReleaseGameObject(_prefab, m_SecondaryModel);
|
| | | m_SecondaryModel = null;
|
| | | m_SecondaryID = 0;
|
| | | }
|
| | | }
|
| | |
|
| | | if (m_WingModel)
|
| | | {
|
| | | var _animator = m_WingModel.GetComponent<Animator>();
|
| | | if (_animator)
|
| | | {
|
| | | _animator.enabled = false;
|
| | | }
|
| | | var _prefab = InstanceResourcesLoader.LoadModelRes(m_WingID);
|
| | | if (_prefab)
|
| | | {
|
| | | GameObjectPoolManager.Instance.ReleaseGameObject(_prefab, m_WingModel);
|
| | | m_WingModel = null;
|
| | | m_WingID = 0;
|
| | | }
|
| | | }
|
| | |
|
| | | if (m_HorseModel)
|
| | | {
|
| | | var _animator = m_HorseModel.GetComponent<Animator>();
|
| | | if (_animator)
|
| | | {
|
| | | _animator.enabled = false;
|
| | | }
|
| | | var _horseConfig = Config.Instance.Get<HorseConfig>(m_HorseID);
|
| | | var _modelResConfig = Config.Instance.Get<ModelResConfig>(_horseConfig.Model);
|
| | | var _prefab = InstanceResourcesLoader.LoadModelRes(_modelResConfig.ID);
|
| | | if (_prefab)
|
| | | {
|
| | | GameObjectPoolManager.Instance.ReleaseGameObject(_prefab, m_HorseModel);
|
| | | m_HorseModel = null;
|
| | | m_HorseID = 0;
|
| | | }
|
| | | }
|
| | |
|
| | | if (m_NPCInteractProcessor)
|
| | | {
|
| | | m_NPCInteractProcessor.npcIntergactEvent -= OnClick;
|