Unity标准资源包Standard Assets导入报错 || 'GUIText' is obsolete || GUIText has been removed || error CS0619

Elizabeth ·
更新时间:2024-11-14
· 906 次阅读

解决这个问题非常简单

不需要一行一行地修改代码,直接 Ctrl + A / C / V 完整地替换掉两个C#脚本的代码即可。

这两个需要替换的脚本是

ForceReset.cs

SimpleActivatorMenu.cs

首先,创建一个平面

点击运行,发现出现如下错误

error CS0691

因为unity标准资源包是2017的,我们用的是2019的新版,在新版中GUIText组件已经弃用了,而Asset商店里还没有及时更新,所以需要手动修改脚本

双击第一个错误,用编辑器打开

找到这两个待修改的脚本

原来的 ForceReset.cs 脚本是

现在要改成

using System; using UnityEngine; using UnityEngine.SceneManagement; using UnityStandardAssets.CrossPlatformInput; using UnityEngine.UI; [RequireComponent(typeof (Image))] public class ForcedReset : MonoBehaviour { private void Update() { // if we have forced a reset ... if (CrossPlatformInputManager.GetButtonDown("ResetObject")) { //... reload the scene SceneManager.LoadScene(SceneManager.GetSceneAt(0).name); } } }

这样,错误就消失了

还有一个错误就是 SimpleActivatorMenu.cs 脚本

双击打开

改为

using System; using UnityEngine; using UnityEngine.UI; namespace UnityStandardAssets.Utility { public class SimpleActivatorMenu : MonoBehaviour { // An incredibly simple menu which, when given references // to gameobjects in the scene public Text camSwitchButton; public GameObject[] objects; private int m_CurrentActiveObject; private void OnEnable() { // active object starts from first in array m_CurrentActiveObject = 0; camSwitchButton.text = objects[m_CurrentActiveObject].name; } public void NextCamera() { int nextactiveobject = m_CurrentActiveObject + 1 >= objects.Length ? 0 : m_CurrentActiveObject + 1; for (int i = 0; i < objects.Length; i++) { objects[i].SetActive(i == nextactiveobject); } m_CurrentActiveObject = nextactiveobject; camSwitchButton.text = objects[m_CurrentActiveObject].name; } } }

剩余的错误都是索引的错误,不影响,直接清除就好。

附:

>>Unity游戏设计专栏

2304 原创文章 154获赞 21访问量 2万+ 关注 私信 展开阅读全文
作者:2304



has IS error unity

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章