コード例 #1
0
ファイル: AvtarManager.cs プロジェクト: 542767059/ABC
 private void InternalAddSkinnedMesh(AvtarInfo avtarInfo, AssetObject assetObject)
 {
     if (!avtarInfo.AddSkinMeshInfo(assetObject))
     {
         m_AssetPool.Unspawn(assetObject);
     }
 }
コード例 #2
0
ファイル: AvtarManager.cs プロジェクト: 542767059/ABC
        /// <summary>
        /// 换装(删除之前所有增加的)
        /// </summary>
        /// <param name="entity">要换装的实体</param>
        /// <param name="assetName">要换装的资源名称</param>
        public void ChangeSkinnedMesh(Entity entity, string assetName)
        {
            AvtarInfo avtarInfo = null;

            if (m_AvtarInfos.TryGetValue(entity, out avtarInfo))
            {
                avtarInfo.Clear();
            }
            else
            {
                avtarInfo = new AvtarInfo(entity, this);
                m_AvtarInfos.Add(entity, avtarInfo);
            }

            AssetObject assetObject = m_AssetPool.Spawn(assetName);

            if (assetObject == null)
            {
                GameEntry.Resource.LoadAsset(assetName, typeof(UnityEngine.Object), Constant.AssetPriority.TextureAsset, m_LoadAssetCallbacks, new LoadAvtarInfo(avtarInfo));
            }
            else
            {
                InternalAddSkinnedMesh(avtarInfo, assetObject);
            }
        }
コード例 #3
0
ファイル: AvtarManager.cs プロジェクト: 542767059/ABC
        /// <summary>
        /// 增加蒙皮信息
        /// </summary>
        /// <param name="entity">要换装的实体</param>
        /// <param name="assetName">要换装的资源名称</param>
        public void AddSkinnedMesh(Entity entity, string assetName)
        {
            AvtarInfo avtarInfo = null;

            if (!m_AvtarInfos.TryGetValue(entity, out avtarInfo))
            {
                avtarInfo = new AvtarInfo(entity, this);
                m_AvtarInfos.Add(entity, avtarInfo);
            }

            if (avtarInfo.HasSkinnedMesh(assetName))
            {
                Log.Error("SkinnedMesh {0} is already added !", assetName);
                return;
            }

            AssetObject assetObject = m_AssetPool.Spawn(assetName);

            if (assetObject == null)
            {
                GameEntry.Resource.LoadAsset(assetName, typeof(UnityEngine.Object), Constant.AssetPriority.AvtarAsset, m_LoadAssetCallbacks, new LoadAvtarInfo(avtarInfo));
            }
            else
            {
                InternalAddSkinnedMesh(avtarInfo, assetObject);
            }
        }
コード例 #4
0
ファイル: AvtarManager.cs プロジェクト: 542767059/ABC
        /// <summary>
        /// 移除所有蒙皮信息
        /// </summary>
        /// <param name="entity">要换装的实体</param>
        public void RemoveAllSkinnedMesh(Entity entity)
        {
            AvtarInfo avtarInfo = null;

            if (m_AvtarInfos.TryGetValue(entity, out avtarInfo))
            {
                avtarInfo.Clear();
            }
        }
コード例 #5
0
ファイル: AvtarManager.cs プロジェクト: 542767059/ABC
        /// <summary>
        /// 移除蒙皮信息
        /// </summary>
        /// <param name="entity">要换装的实体</param>
        /// <param name="assetName">要换装的资源名称</param>
        public void RemoveSkinnedMesh(Entity entity, string assetName)
        {
            AvtarInfo avtarInfo = null;

            if (!m_AvtarInfos.TryGetValue(entity, out avtarInfo))
            {
                Log.Error("Can not find entity to remove avtar !");
                return;
            }
            else
            {
                if (!avtarInfo.RemoveSkinMeshInfo(assetName))
                {
                    Log.Error("Can not remove {0} from entity - {1}", assetName, entity.Name);
                    return;
                }
            }
        }
コード例 #6
0
ファイル: LoadAvtarInfo.cs プロジェクト: 542767059/ABC
 public LoadAvtarInfo(AvtarInfo avtarInfo)
 {
     m_AvtarInfo = avtarInfo;
 }