public override void Deserialize(System.IO.BinaryReader r) { base.Deserialize(r); int version = r.ReadInt32(); if (version > CURRENT_VERSION) { Debug.LogError("version error"); return; } byte[] appearBuff = PETools.Serialize.ReadBytes(r); byte[] nudeBuff = PETools.Serialize.ReadBytes(r); if (appearBuff != null && appearBuff.Length > 0 && nudeBuff != null && nudeBuff.Length > 0) { AppearBlendShape.AppearData appearData = new AppearBlendShape.AppearData(); appearData.Deserialize(appearBuff); CustomCharactor.AvatarData nudeAvatarData = new CustomCharactor.AvatarData(); nudeAvatarData.Deserialize(nudeBuff); SetData(appearData, nudeAvatarData); } }
// public static string ExtGetFullName(this PeEntity entity) // { // EntityInfoCmpt info = entity.GetCmpt<EntityInfoCmpt>(); // // if (null == info) // { // return null; // } // // return info.characterName.fullName; // } public static void SetAvatarData(this PeEntity entity, AppearBlendShape.AppearData appearData, CustomCharactor.AvatarData nudeAvatarData) { AvatarCmpt v = entity.GetCmpt <AvatarCmpt>(); if (null != v) { v.SetData(appearData, nudeAvatarData); } }
public void SetData(AppearBlendShape.AppearData appearData, CustomCharactor.AvatarData nudeAvatarData) { _appearData = appearData; _nudeAvatarData = nudeAvatarData; // Add onConstruct to preload if (_nudeAvatarData != null) { Entity.lodCmpt.onConstruct += e => e.StartCoroutine(PreLoad()); } }
public bool Deserialize(byte[] data) { try { System.IO.MemoryStream ms = new System.IO.MemoryStream(data, false); using (System.IO.BinaryReader br = new System.IO.BinaryReader(ms)) { int version = br.ReadInt32(); if (version > CURRENT_VERSION) { Debug.LogWarning("version:" + version + " greater than current version:" + CURRENT_VERSION); return(false); } charactorName = br.ReadString(); byte[] texBuff = PETools.Serialize.ReadBytes(br); if (null != texBuff && texBuff.Length > 0) { headIcon = new Texture2D(2, 2, TextureFormat.ARGB32, false); headIcon.LoadImage(texBuff); headIcon.Apply(); } sex = (ESex)br.ReadInt32(); nudeAvatarData = new AvatarData(); nudeAvatarData.Deserialize(PETools.Serialize.ReadBytes(br)); appearData = new AppearBlendShape.AppearData(); appearData.Deserialize(PETools.Serialize.ReadBytes(br)); return(true); } } catch (System.Exception e) { Debug.LogWarning(e); return(false); } }