public void Init() { Context context = Context.Unknown; ByteBuffer bb = TestData.LoadResource("armor@Suit_Metal_Dragon_Male.doub", out context); Assert.IsNotNull(bb); Assert.AreNotEqual(context, Context.Unknown); mesh = Schema.Mesh.GetRootAsMesh(bb); MeshUnserializer unserializer = UnserializerFactory.Instance.Create(context) as MeshUnserializer; _resultMesh = unserializer.Parse(bb) as ResourceObjectMesh; }
void OnComplate(ResourceRef[] refs) { GameObject go = GameObject.Instantiate(refs[0].resourceObject.Unity3dObject as GameObject); go.name = refs [0].resourceObject.Unity3dObject.name; go.transform.parent = gameObject.transform; UnityEngine.Material material = refs[5].resourceObject.Unity3dObject as UnityEngine.Material; for (int i = 0; i < 4; i++) { GameObject goMesh = new GameObject(); SkinnedMeshRenderer smr = goMesh.AddComponent <SkinnedMeshRenderer>(); ResourceObjectMesh mesh = refs[i + 1].resourceObject as ResourceObjectMesh; smr.sharedMesh = mesh.Unity3dObject as UnityEngine.Mesh; UnityEngine.Transform[] bones = new UnityEngine.Transform[mesh.joints.Length]; for (int j = 0; j < mesh.joints.Length; j++) { bones[j] = TransformFinder.Find(transform, mesh.joints[j]); if (bones[j] == null) { UnityEngine.Debug.LogError("TransformFinder.Find(" + mesh.joints[j] + ") == null"); } } smr.bones = bones; smr.sharedMaterial = material; goMesh.transform.parent = gameObject.transform; } UnityEngine.AnimationClip clip1 = refs[6].resourceObject.Unity3dObject as UnityEngine.AnimationClip; clip1.wrapMode = UnityEngine.WrapMode.Loop; Animation animation = gameObject.AddComponent <Animation>(); animation.AddClip(clip1, "daiji1"); animation.PlayQueued("daiji1", QueueMode.PlayNow); }
public void Cleanup() { _resultMesh.Dispose(); _resultMesh = null; mesh = null; }