Merge branch '4.2' into spine-android

This commit is contained in:
Mario Zechner 2024-05-07 10:32:57 +02:00
commit 9cc57ee63f
5 changed files with 32 additions and 3 deletions

View File

@ -78,6 +78,10 @@ namespace Spine {
return sin[(int)((degrees + 90) * DegToIndex) & SIN_MASK];
}
static public float Atan2Deg (float y, float x) {
return Atan2(y, x) * RadDeg;
}
/// <summary>Returns atan2 in radians, faster but less accurate than Math.Atan2. Average error of 0.00231 radians (0.1323
/// degrees), largest error of 0.00488 radians (0.2796 degrees).</summary>
static public float Atan2 (float y, float x) {

View File

@ -2,7 +2,7 @@
"name": "com.esotericsoftware.spine.spine-csharp",
"displayName": "spine-csharp Runtime",
"description": "This plugin provides the spine-csharp core runtime.",
"version": "4.2.22",
"version": "4.2.23",
"unity": "2018.3",
"author": {
"name": "Esoteric Software",

View File

@ -73,6 +73,7 @@ namespace Spine.Unity {
[Tooltip("Copies MeshRenderer flags into each parts renderer")]
public bool copyMeshRendererFlags = true;
public List<Spine.Unity.SkeletonPartsRenderer> partsRenderers = new List<SkeletonPartsRenderer>();
[System.NonSerialized] public bool isVisible = true;
#if UNITY_EDITOR
void Reset () {
@ -197,6 +198,10 @@ namespace Spine.Unity {
skeletonRenderer.LateUpdateMesh();
}
public void Update () {
UpdateVisibility();
}
public void OnDisable () {
if (skeletonRenderer == null) return;
#if SPINE_OPTIONAL_RENDEROVERRIDE
@ -206,6 +211,24 @@ namespace Spine.Unity {
ClearPartsRendererMeshes();
}
public void UpdateVisibility () {
foreach (SkeletonPartsRenderer partsRenderer in partsRenderers) {
if (partsRenderer == null) continue;
if (partsRenderer.MeshRenderer.isVisible) {
if (!isVisible) {
skeletonRenderer.OnBecameVisible();
isVisible = true;
}
return;
}
}
if (isVisible) {
isVisible = false;
skeletonRenderer.OnBecameInvisible();
}
}
MaterialPropertyBlock copiedBlock;
void HandleRender (SkeletonRendererInstruction instruction) {

View File

@ -239,6 +239,7 @@ namespace Spine.Unity {
Initialize(false);
if (meshRenderer)
meshRenderer.enabled = false;
updateMode = UpdateMode.FullUpdate;
}
}
remove {
@ -405,7 +406,8 @@ namespace Spine.Unity {
public virtual void Awake () {
Initialize(false);
updateMode = updateWhenInvisible;
if (generateMeshOverride == null || !disableRenderingOnOverride)
updateMode = updateWhenInvisible;
}
#if UNITY_EDITOR && CONFIGURABLE_ENTER_PLAY_MODE

View File

@ -2,7 +2,7 @@
"name": "com.esotericsoftware.spine.spine-unity",
"displayName": "spine-unity Runtime",
"description": "This plugin provides the spine-unity runtime core.",
"version": "4.2.62",
"version": "4.2.63",
"unity": "2018.3",
"author": {
"name": "Esoteric Software",