public void InstantiateCharacter(IDictionary partitions) { if (m_MoveSetPrefab != null) { if (m_CharacterInstance == null) { m_CharacterInstance = GameObject.Instantiate(m_MoveSetPrefab, transform.position, transform.rotation) as GameObject; m_CharacterInstance.name = m_MoveSetPrefab.name; // OnTimerUpInitCharacter(0, partitions); // EB.Debug.LogObjectMgrAsset("<color=#ff0000>克隆CharacterVariant变体身上记录的预置体</color>同时身上的部件进行初始化,<color=#00ff00>{0}</color>", m_MoveSetPrefab.name); } else { EB.Debug.LogPSPoolAsset(string.Format("<color=#00ff00>已经存在这个角色变体<color=#000000>{0}</color>,开启协程重新注册一次身上的所有特效</color>", this.name)); //需要重新将特效列表~注册进入特效缓存池 FXLib fxLib = m_CharacterInstance.GetComponent <FXLib>(); if (fxLib != null) { StartCoroutine(fxLib.TryRegisterAll()); } else { EB.Debug.LogError("为什么~模型对象身上没有这个FXLib特效组件了?"); } m_CharacterInstance.transform.SetParent(transform.parent); m_CharacterInstance.CustomSetActive(true); AvatarComponent avatar = m_CharacterInstance.GetComponent <AvatarComponent>(); if (avatar != null) { avatar.SyncLoad = SyncLoad; int partitionCount = m_Partitions.Count; for (int i = 0; i < partitionCount; i++) { if (partitions != null && partitions.Contains(m_Partitions[i].Name)) { string assetname = partitions[m_Partitions[i].Name].ToString(); avatar.LoadEquipment(m_Partitions[i].Name, assetname); if (IsPlayer) { PartitionObject.PlayerPartitions.Add(assetname); } } } } } InitFX(m_MoveSetPrefab.name); } }
/// <summary> /// 初始化特效 /// </summary> /// <param name="pName">预置体的名称</param> private void InitFX(string pName) { if (m_CharacterInstance == null) { return; } if (mFxLib == null) { mFxLib = m_CharacterInstance.GetComponent <FXLib>(); } if (mFxLib == null) { return; } if (pName.IndexOf('P') == 0 || pName.IndexOf('M') == 0) { if (pName.Contains("Campaign")) { mFxLib.Type = FXLib.FXLibType.Campaign; } else if (pName.Contains("Lobby")) { mFxLib.Type = FXLib.FXLibType.Lobby; } else { mFxLib.Type = FXLib.FXLibType.Normal; string num = pName.Substring(1, pName.Length - 1); if (num.Contains("_"))//去除皮肤后缀 { string[] spl = num.Split('_'); num = spl[0]; } mFxLib.BundleName = string.Format("{0}{1}", pName.Substring(0, 1).ToLower(), num.TrimStart('0')); } // EB.Debug.LogObjectMgrAsset(string.Format("通过模型变体组件<color=#00ff00>{0}</color>来设置<color=#ffff00>FxLib特效库</color>需要属性:Type:<color=#00ff00>{1}</color>,特效资源包:<color=#00ff00>{2}</color>" , pName, mFxLib.Type, mFxLib.BundleName)); } }