解决这个问题非常简单
不需要一行一行地修改代码,直接 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; } } }
剩余的错误都是索引的错误,不影响,直接清除就好。
附: