#c# #unity3d #render
#c# #unity-игровой движок #визуализация
Вопрос:
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 amp;amp; !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;
}
}
}
Хорошо, итак, у меня возникла проблема, из-за которой иногда спрайт моего плеера кажется невидимым. На данный момент я могу создать проект на своем мобильном устройстве, и все работает нормально. Однако, когда второй уровень завершен (прямо сейчас у меня есть только два уровня, которые я использую для тестирования), игра переходит к сцене смерти. Затем он просит пользователя продолжить или выйти. Если продолжить, игрок переходит на последний достигнутый уровень. Код работает, но спрайт теперь невидим. Иногда я могу приостановить игру, выйти и вернуться в главное меню, снова нажать play и начать все сначала, и проигрыватель появится снова. В других случаях это усугубляет ситуацию, потому что маркеры даже не отображаются. Я понятия не имею, что могло вызвать такое. ИТАК, у меня есть этот код в надежде заставить спрайт рендериться, хочет он того или нет.
Вот скриншот экрана мобильного устройства:
Справа вы можете видеть, как стреляют пули, но игрока не видно. Вы можете определить, что игрок движется по смещению траектории полета пули. (Если присмотреться)
Я использую Unity 2019.0.1бета-версию
Комментарии:
1. Вы использовали
DontDestroyOnLoad
для чего-нибудь в своей игре? Другими словами, есть ли у вас что-нибудь, что перемещается из одной сцены в другую без повторного создания экземпляра?2. Каков порядок сортировки слоев для маркеров и проигрывателя? Он должен быть выше фона.
3. Я смог устранить проблему, снова импортировав изображение проигрывателя. Я не знаю почему, но иногда изображения исчезают или не отображаются Unity. По крайней мере, это верно в этой альфа- / бета-версии, которую я использовал. (НИКОГДА больше не использовать ничего, что не было официально выпущено! ) Это была такая странная проблема!