[unity] Improved Editor behaviour of RenderExistingMesh component. Removed unnecessary SkeletonGraphic codeparts from it.

This commit is contained in:
Harald Csaszar 2020-03-27 19:29:52 +01:00
parent a5c3200f89
commit f75adfaca8

View File

@ -94,24 +94,29 @@ namespace Spine.Unity.Examples {
skeletonRenderer.OnMeshAndMaterialsUpdated += UpdateOnCallback; skeletonRenderer.OnMeshAndMaterialsUpdated += UpdateOnCallback;
updateViaSkeletonCallback = true; updateViaSkeletonCallback = true;
} }
var skeletonGraphic = referenceRenderer.GetComponent<SkeletonGraphic>();
if (skeletonGraphic) {
skeletonGraphic.OnMeshAndMaterialsUpdated -= UpdateOnCallback;
skeletonGraphic.OnMeshAndMaterialsUpdated += UpdateOnCallback;
updateViaSkeletonCallback = true;
}
referenceMeshFilter = referenceRenderer.GetComponent<MeshFilter>(); referenceMeshFilter = referenceRenderer.GetComponent<MeshFilter>();
ownRenderer = this.GetComponent<MeshRenderer>(); ownRenderer = this.GetComponent<MeshRenderer>();
ownMeshFilter = this.GetComponent<MeshFilter>(); ownMeshFilter = this.GetComponent<MeshFilter>();
for (int i = 0; i < replacementMaterials.Length; ++i) { InitializeDict();
var entry = replacementMaterials[i];
replacementMaterialDict[entry.originalMaterial] = entry.replacementMaterial;
}
} }
#if UNITY_EDITOR
private void Update () {
if (!Application.isPlaying) {
InitializeDict();
}
}
#endif
void LateUpdate () { void LateUpdate () {
#if UNITY_EDITOR
if (!Application.isPlaying) {
UpdateMaterials();
return;
}
#endif
if (updateViaSkeletonCallback) if (updateViaSkeletonCallback)
return; return;
UpdateMaterials(); UpdateMaterials();
@ -121,10 +126,6 @@ namespace Spine.Unity.Examples {
UpdateMaterials(); UpdateMaterials();
} }
void UpdateOnCallback (SkeletonGraphic r) {
UpdateMaterials();
}
void UpdateMaterials () { void UpdateMaterials () {
ownMeshFilter.sharedMesh = referenceMeshFilter.sharedMesh; ownMeshFilter.sharedMesh = referenceMeshFilter.sharedMesh;
@ -140,5 +141,12 @@ namespace Spine.Unity.Examples {
} }
ownRenderer.sharedMaterials = sharedMaterials; ownRenderer.sharedMaterials = sharedMaterials;
} }
void InitializeDict () {
for (int i = 0; i < replacementMaterials.Length; ++i) {
var entry = replacementMaterials[i];
replacementMaterialDict[entry.originalMaterial] = entry.replacementMaterial;
}
}
} }
} }