在团结中我使用脚本随机创建攻击你的玩家的敌人.为此,我需要插入一个游戏对象,添加一个SpriteRenderer,命名它,然后给它一个属于资产的纹理.
这是我的代码:
GameObject sprGameObj = new GameObject();
sprGameObj.AddComponent<SpriteRenderer>();
sprGameObj.name = "Enemy";
sprGameObj.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("EnemyImage");
代码插入游戏对象,添加精灵渲染器并命名它,但不会将图像“EnemyImage”添加到精灵.我已经在网上看了,但是其他人都在使用与我类似的代码.
有谁知道解决方案?
我在C#编码.
更新:
我尝试将此代码放在已经存在的精灵中,它只删除了它的图像:
gameObject.GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("EnemyImage");
图像本身可能有问题吗?
最佳答案 首先,我建议使用某种配置对象进行有组织和独立于名称的资产存储.在这种情况下,您可以在该配置中注册所有使用过的图形文件,并通过调用类似“Config.SpritesData.GetEnemySprite(EnemyType.Orc)”之类的内容来获取所需的资产.
但是现在你可以从Assets文件夹中检查精灵的路径开始,因为Resources.Load只能处理Resources文件夹中的文件.如果路径正确,资产导入类型也值得检查,因为Load<>()方法将其强制转换为Sprite,因此如果您的资产未作为精灵导入,则投射结果可能为null.
让我知道,如果你检查了这两件事,它仍然无法工作,我会给它一些更多的想法.