c# - 强制 Sprite Renderer 渲染一个 Sprite
问题描述
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 测试版
解决方案
推荐阅读
- r - Pheatmap display_numbers 参数
- selenium - selenium 浏览器自动化中的执行流程
- java - 有没有办法在无头铬中使用硒上传文件?
- sql - 我们可以将列名与日期连接起来吗
- android - Android AWS Lambda CognitoYourUserPoolsDemo
- visual-studio-2010 - 在纸上打印不同于水晶报表中的打印预览
- c++ - 当主 GUI 线程被阻塞时,如何从工作线程创建无模式对话框?
- java - 从单独的 JFrame 获取数据
- c - 以不同的名称导入函数
- node.js - 无法使用 mongodb 更新数据