mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-21 01:36:02 +08:00
[spine-unity] Fix SkeletonGhostRenderer namespace.
This commit is contained in:
parent
ebd8831a17
commit
bde07221b3
@ -1,4 +1,4 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* SkeletonGhostRenderer created by Mitch Thompson
|
* SkeletonGhostRenderer created by Mitch Thompson
|
||||||
* Full irrevocable rights and permissions granted to Esoteric Software
|
* Full irrevocable rights and permissions granted to Esoteric Software
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
@ -6,105 +6,101 @@
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
|
||||||
public class SkeletonGhostRenderer : MonoBehaviour {
|
namespace Spine.Unity.Modules {
|
||||||
|
public class SkeletonGhostRenderer : MonoBehaviour {
|
||||||
|
|
||||||
public float fadeSpeed = 10;
|
public float fadeSpeed = 10;
|
||||||
|
|
||||||
Color32[] colors;
|
Color32[] colors;
|
||||||
Color32 black = new Color32(0, 0, 0, 0);
|
Color32 black = new Color32(0, 0, 0, 0);
|
||||||
MeshFilter meshFilter;
|
MeshFilter meshFilter;
|
||||||
MeshRenderer meshRenderer;
|
MeshRenderer meshRenderer;
|
||||||
|
|
||||||
void Awake () {
|
void Awake () {
|
||||||
meshRenderer = gameObject.AddComponent<MeshRenderer>();
|
meshRenderer = gameObject.AddComponent<MeshRenderer>();
|
||||||
meshFilter = gameObject.AddComponent<MeshFilter>();
|
meshFilter = gameObject.AddComponent<MeshFilter>();
|
||||||
}
|
|
||||||
|
|
||||||
public void Initialize (Mesh mesh, Material[] materials, Color32 color, bool additive, float speed, int sortingLayerID, int sortingOrder) {
|
|
||||||
StopAllCoroutines();
|
|
||||||
|
|
||||||
gameObject.SetActive(true);
|
|
||||||
|
|
||||||
|
|
||||||
meshRenderer.sharedMaterials = materials;
|
|
||||||
meshRenderer.sortingLayerID = sortingLayerID;
|
|
||||||
meshRenderer.sortingOrder = sortingOrder;
|
|
||||||
|
|
||||||
meshFilter.sharedMesh = (Mesh)Instantiate(mesh);
|
|
||||||
|
|
||||||
colors = meshFilter.sharedMesh.colors32;
|
|
||||||
|
|
||||||
if ((color.a + color.r + color.g + color.b) > 0) {
|
|
||||||
for (int i = 0; i < colors.Length; i++) {
|
|
||||||
colors[i] = color;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fadeSpeed = speed;
|
public void Initialize (Mesh mesh, Material[] materials, Color32 color, bool additive, float speed, int sortingLayerID, int sortingOrder) {
|
||||||
|
StopAllCoroutines();
|
||||||
|
|
||||||
if (additive)
|
gameObject.SetActive(true);
|
||||||
StartCoroutine(FadeAdditive());
|
meshRenderer.sharedMaterials = materials;
|
||||||
else
|
meshRenderer.sortingLayerID = sortingLayerID;
|
||||||
StartCoroutine(Fade());
|
meshRenderer.sortingOrder = sortingOrder;
|
||||||
}
|
meshFilter.sharedMesh = Instantiate(mesh);
|
||||||
|
colors = meshFilter.sharedMesh.colors32;
|
||||||
|
|
||||||
IEnumerator Fade () {
|
if ((color.a + color.r + color.g + color.b) > 0) {
|
||||||
Color32 c;
|
for (int i = 0; i < colors.Length; i++)
|
||||||
for (int t = 0; t < 500; t++) {
|
colors[i] = color;
|
||||||
|
|
||||||
bool breakout = true;
|
|
||||||
for (int i = 0; i < colors.Length; i++) {
|
|
||||||
c = colors[i];
|
|
||||||
if (c.a > 0)
|
|
||||||
breakout = false;
|
|
||||||
|
|
||||||
colors[i] = Color32.Lerp(c, black, Time.deltaTime * fadeSpeed);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
meshFilter.sharedMesh.colors32 = colors;
|
fadeSpeed = speed;
|
||||||
|
|
||||||
if (breakout)
|
if (additive)
|
||||||
break;
|
StartCoroutine(FadeAdditive());
|
||||||
yield return null;
|
else
|
||||||
|
StartCoroutine(Fade());
|
||||||
}
|
}
|
||||||
|
|
||||||
Destroy(meshFilter.sharedMesh);
|
IEnumerator Fade () {
|
||||||
|
Color32 c;
|
||||||
|
for (int t = 0; t < 500; t++) {
|
||||||
|
bool breakout = true;
|
||||||
|
for (int i = 0; i < colors.Length; i++) {
|
||||||
|
c = colors[i];
|
||||||
|
if (c.a > 0)
|
||||||
|
breakout = false;
|
||||||
|
|
||||||
gameObject.SetActive(false);
|
colors[i] = Color32.Lerp(c, black, Time.deltaTime * fadeSpeed);
|
||||||
}
|
}
|
||||||
|
meshFilter.sharedMesh.colors32 = colors;
|
||||||
|
|
||||||
IEnumerator FadeAdditive () {
|
if (breakout)
|
||||||
Color32 c;
|
break;
|
||||||
Color32 black = this.black;
|
|
||||||
|
yield return null;
|
||||||
for (int t = 0; t < 500; t++) {
|
|
||||||
|
|
||||||
bool breakout = true;
|
|
||||||
for (int i = 0; i < colors.Length; i++) {
|
|
||||||
c = colors[i];
|
|
||||||
black.a = c.a;
|
|
||||||
if (c.r > 0 || c.g > 0 || c.b > 0)
|
|
||||||
breakout = false;
|
|
||||||
|
|
||||||
colors[i] = Color32.Lerp(c, black, Time.deltaTime * fadeSpeed);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
meshFilter.sharedMesh.colors32 = colors;
|
Destroy(meshFilter.sharedMesh);
|
||||||
|
gameObject.SetActive(false);
|
||||||
if (breakout)
|
|
||||||
break;
|
|
||||||
yield return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Destroy(meshFilter.sharedMesh);
|
IEnumerator FadeAdditive () {
|
||||||
|
Color32 c;
|
||||||
|
Color32 black = this.black;
|
||||||
|
|
||||||
gameObject.SetActive(false);
|
for (int t = 0; t < 500; t++) {
|
||||||
}
|
|
||||||
|
bool breakout = true;
|
||||||
|
for (int i = 0; i < colors.Length; i++) {
|
||||||
|
c = colors[i];
|
||||||
|
black.a = c.a;
|
||||||
|
if (c.r > 0 || c.g > 0 || c.b > 0)
|
||||||
|
breakout = false;
|
||||||
|
|
||||||
|
colors[i] = Color32.Lerp(c, black, Time.deltaTime * fadeSpeed);
|
||||||
|
}
|
||||||
|
|
||||||
|
meshFilter.sharedMesh.colors32 = colors;
|
||||||
|
|
||||||
|
if (breakout)
|
||||||
|
break;
|
||||||
|
yield return null;
|
||||||
|
}
|
||||||
|
|
||||||
public void Cleanup () {
|
|
||||||
if (meshFilter != null && meshFilter.sharedMesh != null)
|
|
||||||
Destroy(meshFilter.sharedMesh);
|
Destroy(meshFilter.sharedMesh);
|
||||||
|
|
||||||
Destroy(gameObject);
|
gameObject.SetActive(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Cleanup () {
|
||||||
|
if (meshFilter != null && meshFilter.sharedMesh != null)
|
||||||
|
Destroy(meshFilter.sharedMesh);
|
||||||
|
|
||||||
|
Destroy(gameObject);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user