summaryrefslogtreecommitdiff
path: root/marching/Assets/Scripts/EntityBase.cs
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2023-05-04 11:25:52 +0800
committerchai <215380520@qq.com>2023-05-04 11:25:52 +0800
commit848097c88bbcf24934a375dff39cf4defa2819dd (patch)
tree85f4cc4d09fbf2a3839752449d21cb3e0bec8fa1 /marching/Assets/Scripts/EntityBase.cs
parentba1ad0efd8601dc4af023aca5a78609c55b4d67f (diff)
*misc
Diffstat (limited to 'marching/Assets/Scripts/EntityBase.cs')
-rw-r--r--marching/Assets/Scripts/EntityBase.cs49
1 files changed, 49 insertions, 0 deletions
diff --git a/marching/Assets/Scripts/EntityBase.cs b/marching/Assets/Scripts/EntityBase.cs
new file mode 100644
index 0000000..c1beb42
--- /dev/null
+++ b/marching/Assets/Scripts/EntityBase.cs
@@ -0,0 +1,49 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class EntityBase : MonoBehaviour
+{
+ public SpriteRenderer m_Shadow;
+
+ private SpriteRenderer m_SpriteRenderer;
+
+ protected virtual void Awake()
+ {
+ m_SpriteRenderer = GetComponent<SpriteRenderer>();
+
+ GameObject shadow = new GameObject("shadow");
+ shadow.transform.parent = transform;
+ shadow.transform.localPosition = Vector3.zero;
+ shadow.transform.localScale = new Vector3(1, 0.5f, 1);
+ SpriteRenderer sr = shadow.AddComponent<SpriteRenderer>();
+ sr.material = new Material(Shader.Find("UI/SpriteSkewShader"));
+ sr.material.SetFloat("_HorizontalSkew", 0.4f);
+ sr.color = new Color(0, 0, 0, 0.4f);
+ sr.sortingOrder = short.MinValue;
+ m_Shadow = sr;
+ }
+
+ protected virtual void Update()
+ {
+ if (m_SpriteRenderer != null)
+ {
+ float y = transform.position.y;
+ int order = -(int)(y * 100);
+ if (order != m_SpriteRenderer.sortingOrder)
+ {
+ m_SpriteRenderer.sortingOrder = order;
+ }
+ }
+ }
+
+ protected virtual void LateUpdate()
+ {
+ if (m_Shadow != null)
+ {
+ m_Shadow.sprite = m_SpriteRenderer.sprite;
+ m_Shadow.flipX = m_SpriteRenderer.flipX;
+ }
+ }
+
+}