using UnityEngine;
public class PlayerLoad : MonoBehaviour
{
[SerializeField]
private Sprite pSprite;
private void Start()
{
LoadSprite(this.gameObject, pSprite);
}
void LoadSprite(GameObject p1, Sprite pSprite = null) // p1 = the player's gameobject
{
var sr = p1.GetComponent<SpriteRenderer>();
if (sr == null)// If no sprite renderer exist
{
sr = p1.AddComponent<SpriteRenderer>();
}
if (sr != null && !sr.enabled)// If sprite renderer exist but isn't active
{
sr.enabled = true;
}
if (sr.sprite == null)// If no sprite exist, adds one
{
p1.GetComponent<SpriteRenderer>().sprite = pSprite;
}
}
}
Хорошо, у меня проблема с тем, что иногда спрайт моего игрока кажется невидимым.На данный момент я могу построить проект на моем мобильном устройстве, и все работает отлично.Однако, когда второй уровень завершен (сейчас у меня есть только два уровня, которые я использую для тестирования), игра переходит на сцену смерти.Затем он попросит пользователя продолжить или выйти.Если продолжить, игрок переходит на последний достигнутый уровень.Код работает, но спрайт теперь невидим.Иногда я могу поставить игру на паузу, выйти и вернуться в главное меню, снова нажать кнопку воспроизведения и начать все сначала, и игрок снова появляется.В других случаях это усугубляет ситуацию, потому что пули даже не рендерится.Я понятия не имею, что может вызвать такую вещь.Так что у меня есть этот код в надежде заставить спрайт визуализировать, хочет он этого или нет.
Вот снимок экрана мобильного экрана: 
Справа вы видите выстрелы пуль, но игрок не виден.Вы можете сказать, что игрок движется по смещению в траектории пули.(Если вы присмотритесь)
Я использую Unity 2019.0.1a Beta