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