团结实现简单换装系统的方法

  介绍

小编给大家分享一下团结实现简单换装系统的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

代码如下:

using  UnityEngine;   using  System.Collections;   using  System.Collections.Generic;   ,   public  enum  AvatarPart   {   ,,,头盔,   ,,,胸部,   ,,,的肩膀,   ,,,手套,   ,,,靴子,   }   ,//,人物换装   public  class  ActorAvatar : MonoBehaviour   {   ,,,//,换装的部件信息   ,,,public  class  AvatarInfo   ,,,{   ,,,,,,,public  string  partName;   ,,,,,,,public  GameObject  defaultPart;   ,,,,,,,public  GameObject  avatarPart;   ,,,}   ,   ,,,protected  int  _bodyModelId;   ,,,protected  GameObject  _body;,,,,,,,,,//,基础模型动画   ,,,protected  Dictionary<字符串,AvatarInfo>, _avatarInfo =, new  Dictionary<字符串,AvatarInfo>(),,,,,,,,,//,换装信息   ,   ,,,private  List, _avatarLoadQueue =, new  List ();   ,   ,,,void 开始()   ,,,{   ,,,}   ,   ,,,void 更新()   ,,,{   ,,,}   ,   ,,,//,创建模型   ,,,public  void  LoadModel (int  modelId)   ,,,{   ,,,,,,,_bodyModelId =, modelId;   ,,,,,,,ResourceMgr.Instance.LoadModel (modelId,, (GameObject  obj),=比;   ,,,,,,,{   ,,,,,,,,,,,_body =, obj;   ,   ,,,,,,,,,,,//,换装请求   ,,,,,,,,,,,if  (_avatarLoadQueue.Count 祝辞,0),{   ,,,,,,,,,,,,,,,foreach  (var  avatar  _avatarLoadQueue拷贝),{   ,,,,,,,,,,,,,,,,,,,LoadAvatar(阿凡达);   ,,,,,,,,,,,,,,,}   ,,,,,,,,,,,,,,,_avatarLoadQueue.Clear ();   ,,,,,,,,,,,}   ,,,,,,,},,真正的);   ,,,}   ,   ,,,//,给人物换装   ,,,public  void  LoadAvatar (int  avatarId)   ,,,{   ,,,,,,,//,如果还没有加载完基础模型,则等待   ,,,,,,,if  (_body ==, null), {   ,,,,,,,,,,,_avatarLoadQueue.Add (avatarId);   ,,,,,,,,,,,返回;   ,,,,,,,}   ,   ,,,,,,,AvatarData  adata =, DataMgr.Instance.GetAvatarData (avatarId);   ,,,,,,,ResourceMgr.Instance.LoadModel (adata.model,, (GameObject  obj),=祝辞,{   ,,,,,,,,,,,ChangeAvatar (obj, adata.addpart);   ,,,,,,,});   ,,,}   ,   ,,,//,替换部件   ,,,public  void  ChangeAvatar (GameObject  avatarModel, string  partName)   ,,,{   ,,,,,,,//,先卸载当前部件   ,,,,,,,AvatarInfo  currentInfo;   ,,,,,,,if  (_avatarInfo.TryGetValue (out  partName也;currentInfo)), {   ,,,,,,,,,,,if  (currentInfo.avatarPart  !=, null), {   ,,,,,,,,,,,,,,,摧毁(currentInfo.avatarPart);   ,,,,,,,,,,,,,,,currentInfo.avatarPart =,空;   ,,,,,,,,,,,}   ,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

团结实现简单换装系统的方法