Fix error on image.frame(s)
not set.
This commit is contained in:
@@ -49,6 +49,9 @@ namespace Cryville.Crtr.Components {
|
|||||||
_mat.mainTexture = Frame == null ? null : Frame.Texture;
|
_mat.mainTexture = Frame == null ? null : Frame.Texture;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public static bool IsNullOrEmpty(SpriteInfo sprite) {
|
||||||
|
return sprite == null || sprite.Frame == null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class SpritePlane : SpriteBase {
|
public class SpritePlane : SpriteBase {
|
||||||
@@ -98,6 +101,7 @@ namespace Cryville.Crtr.Components {
|
|||||||
}
|
}
|
||||||
protected SpriteInfo CurrentFrame {
|
protected SpriteInfo CurrentFrame {
|
||||||
get {
|
get {
|
||||||
|
if (m_frames.Length == 0) return null;
|
||||||
if (m_index < 0) m_index = 0;
|
if (m_index < 0) m_index = 0;
|
||||||
else if (m_index >= m_frames.Length) m_index = m_frames.Length - 1;
|
else if (m_index >= m_frames.Length) m_index = m_frames.Length - 1;
|
||||||
return m_frames[m_index];
|
return m_frames[m_index];
|
||||||
@@ -105,22 +109,20 @@ namespace Cryville.Crtr.Components {
|
|||||||
}
|
}
|
||||||
protected void OnFrameUpdate() {
|
protected void OnFrameUpdate() {
|
||||||
if (!mesh.Initialized) return;
|
if (!mesh.Initialized) return;
|
||||||
if (CurrentFrame.Frame == null) {
|
var frame = CurrentFrame;
|
||||||
|
if (SpriteInfo.IsNullOrEmpty(frame)) {
|
||||||
mesh.Renderer.enabled = false;
|
mesh.Renderer.enabled = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mesh.Renderer.enabled = true;
|
mesh.Renderer.enabled = true;
|
||||||
mesh.Renderer.material.mainTexture = CurrentFrame.Frame.Texture;
|
mesh.Renderer.material.mainTexture = frame.Frame.Texture;
|
||||||
UpdateUV();
|
UpdateUV();
|
||||||
UpdateScale();
|
UpdateScale();
|
||||||
UpdateZIndex();
|
UpdateZIndex();
|
||||||
}
|
}
|
||||||
protected virtual void UpdateUV() {
|
protected virtual void UpdateUV() {
|
||||||
var frame = CurrentFrame;
|
var frame = CurrentFrame;
|
||||||
if (frame.Frame == null) {
|
if (SpriteInfo.IsNullOrEmpty(frame)) return;
|
||||||
Logger.Log("main", 4, "Skin", "Unable to load texture {0}", frame.FrameName);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Vector2[] muv = OriginalUV;
|
Vector2[] muv = OriginalUV;
|
||||||
Vector2[] uv = new Vector2[muv.Length];
|
Vector2[] uv = new Vector2[muv.Length];
|
||||||
for (int i = 0; i < uv.Length; i++) {
|
for (int i = 0; i < uv.Length; i++) {
|
||||||
@@ -157,7 +159,7 @@ namespace Cryville.Crtr.Components {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected override void UpdateScale() {
|
protected override void UpdateScale() {
|
||||||
if (CurrentFrame.Frame == null) return;
|
if (SpriteInfo.IsNullOrEmpty(CurrentFrame)) return;
|
||||||
base.UpdateScale();
|
base.UpdateScale();
|
||||||
if (m_fit != FitMode.none && Scale.x != Scale.y) m_fit = FitMode.none;
|
if (m_fit != FitMode.none && Scale.x != Scale.y) m_fit = FitMode.none;
|
||||||
}
|
}
|
||||||
|
@@ -45,10 +45,12 @@ namespace Cryville.Crtr.Components {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected override void UpdateUV() {
|
protected override void UpdateUV() {
|
||||||
|
var frame = CurrentFrame;
|
||||||
|
if (SpriteInfo.IsNullOrEmpty(frame)) return;
|
||||||
|
|
||||||
Vector2[] muv = OriginalUV;
|
Vector2[] muv = OriginalUV;
|
||||||
Vector2[] uv = new Vector2[muv.Length];
|
Vector2[] uv = new Vector2[muv.Length];
|
||||||
|
|
||||||
var frame = CurrentFrame;
|
|
||||||
var or = frame.Ratio;
|
var or = frame.Ratio;
|
||||||
var sr = Scale.x / Scale.y;
|
var sr = Scale.x / Scale.y;
|
||||||
var b = new Vector2(
|
var b = new Vector2(
|
||||||
|
Reference in New Issue
Block a user