Есть GameObject со спрайтом. Хочу на него повесить скрипт, который будет создавать тень.
Скрипт создает дочерний GameObject, вешает на него SpriteRenderer. И копирует спрайт из родительского заменив цвет на черный и прозрачность на половину. Далее смещается немного вниз и в лево.
Сейчас проблема с копированием спрайта:
Синтаксис:
Используется csharp
public class FigureShadow : MonoBehaviour
{
private GameObject _shadowGameObject;
private Sprite _shadowSprite;
private Sprite _parenSprite;
private SpriteRenderer _shadowSprRenderer;
void Start()
{
_shadowGameObject = new GameObject("ShadowFigure");
_shadowGameObject.transform.parent = transform;
_parenSprite = GetComponent<SpriteRenderer>().sprite;
_shadowSprite = Sprite.Create(_parenSprite.texture, _parenSprite.rect, _parenSprite.pivot);
_shadowSprite.name = "shadow";
_shadowSprRenderer = _shadowGameObject.AddComponent<SpriteRenderer>();
_shadowSprRenderer.sprite = _shadowSprite;
_shadowGameObject.GetComponent<SpriteRenderer>().sortingOrder = 3;
_shadowGameObject.GetComponent<SpriteRenderer>().color = new Color(0, 0, 0, 0.5f);
_shadowGameObject.transform.position -= new Vector3(0.2f, 0.2f, 0);
}
}<span style="font-size: 150%; line-height: 116%;">[size=150][size=85]</span>[/size][/size]
{
private GameObject _shadowGameObject;
private Sprite _shadowSprite;
private Sprite _parenSprite;
private SpriteRenderer _shadowSprRenderer;
void Start()
{
_shadowGameObject = new GameObject("ShadowFigure");
_shadowGameObject.transform.parent = transform;
_parenSprite = GetComponent<SpriteRenderer>().sprite;
_shadowSprite = Sprite.Create(_parenSprite.texture, _parenSprite.rect, _parenSprite.pivot);
_shadowSprite.name = "shadow";
_shadowSprRenderer = _shadowGameObject.AddComponent<SpriteRenderer>();
_shadowSprRenderer.sprite = _shadowSprite;
_shadowGameObject.GetComponent<SpriteRenderer>().sortingOrder = 3;
_shadowGameObject.GetComponent<SpriteRenderer>().color = new Color(0, 0, 0, 0.5f);
_shadowGameObject.transform.position -= new Vector3(0.2f, 0.2f, 0);
}
}<span style="font-size: 150%; line-height: 116%;">[size=150][size=85]</span>[/size][/size]
Новый(теневой) спрайт не появляется на сцене, хотя в инспекторе есть.
Как правильно скопировть спрайт с помощью кода?
https://imageup.ru/img108/3945554/sampleshadow.jpg