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