首页 > 技术文章 > Unity标准资源包Standard Assets导入报错 || 'GUIText' is obsolete || GUIText has been removed || error CS0619

haiyue-csdn 2020-05-10 19:01 原文

解决这个问题非常简单

不需要一行一行地修改代码,直接 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游戏设计专栏

推荐阅读