解决这个问题非常简单
不需要一行一行地修改代码,直接 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