blob: f894d20706dc4f36bd7ef43d7bc9f0fba08cf05e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EntityBase : MonoBehaviour
{
public SpriteRenderer m_Shadow;
protected 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)
{
if (m_Shadow.sprite != m_SpriteRenderer.sprite)
{
//m_Shadow.sprite = m_SpriteRenderer.sprite;
//m_Shadow.flipX = m_SpriteRenderer.flipX;
}
}
}
}
|