예제 #1
0
    public virtual void Reset()
    {
        if (this.meshFilter != null)
        {
            this.meshFilter.set_sharedMesh(null);
        }
        this.meshRenderer = base.GetComponent <MeshRenderer>();
        if (this.meshRenderer != null)
        {
            this.meshRenderer.set_sharedMaterial(null);
        }
        if (this.mesh1 != null)
        {
            if (Application.get_isPlaying())
            {
                Object.Destroy(this.mesh1);
            }
            else
            {
                Object.DestroyImmediate(this.mesh1);
            }
        }
        if (this.mesh2 != null)
        {
            if (Application.get_isPlaying())
            {
                Object.Destroy(this.mesh2);
            }
            else
            {
                Object.DestroyImmediate(this.mesh2);
            }
        }
        this.meshState       = new SkeletonRenderer.MeshState();
        this.mesh1           = null;
        this.mesh2           = null;
        this.vertices        = null;
        this.colors          = null;
        this.uvs             = null;
        this.sharedMaterials = new Material[0];
        this.submeshMaterials.Clear(true);
        this.submeshes.Clear(true);
        this.skeleton = null;
        this.valid    = false;
        if (!this.skeletonDataAsset)
        {
            if (this.logErrors)
            {
                Debug.LogError("Missing SkeletonData asset.", this);
            }
            return;
        }
        SkeletonData skeletonData = this.skeletonDataAsset.GetSkeletonData(false);

        if (skeletonData == null)
        {
            return;
        }
        this.valid        = true;
        this.meshFilter   = base.GetComponent <MeshFilter>();
        this.meshRenderer = base.GetComponent <MeshRenderer>();
        this.mesh1        = SkeletonRenderer.newMesh();
        this.mesh2        = SkeletonRenderer.newMesh();
        this.vertices     = new Vector3[0];
        this.skeleton     = new Skeleton(skeletonData);
        if (this.initialSkinName != null && this.initialSkinName.get_Length() > 0 && this.initialSkinName != "default")
        {
            this.skeleton.SetSkin(this.initialSkinName);
        }
        this.submeshSeparatorSlots.Clear();
        for (int i = 0; i < this.submeshSeparators.Length; i++)
        {
            this.submeshSeparatorSlots.Add(this.skeleton.FindSlot(this.submeshSeparators[i]));
        }
        this.CollectSubmeshRenderers();
        this.LateUpdate();
        if (this.OnReset != null)
        {
            this.OnReset(this);
        }
    }