Beispiel #1
0
        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);
    }
Beispiel #3
0
 public void Cleanup()
 {
     _resultMesh.Dispose();
     _resultMesh = null;
     mesh        = null;
 }