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); } }