新同学可能经常会遇到开打或者导入一些老项目,其中包含过去的GUI对象,出现报错的情况。例如:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GameManager : MonoBehaviour {

	// Use this for initialization
	public static GameManager _instance;

	public int score=0;

	private GUIText uiText;

	void Awake(){

		_instance = this;
		uiText = GameObject.FindGameObjectWithTag ("scoreGUI").guiText;
	}

	
	// Update is called once per frame
	void Update () {
		uiText.text = "Score:" + score;	
	}
}

2019的unity版本

这些地方要修改​

另外,Unity2019的 UI是通过 Package Manager 添加的,如果你的项目Package中没有 Unity UI,需要到  Package Manager添加

5.x-2018的unity版本

修改代码是一样的。如果你的项目属性中没有包含对UI的引用,可以自己修改一下你的项目属性文件,添加对UI的引用,是一个xxx.csproj的文件

你可以在vs 菜单 【项目】 里找到并编辑你的项目属性文件

最终代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class GameManager : MonoBehaviour
{

	// Use this for initialization
	public static GameManager _instance;

	public int score = 0;

	private Text uiText;

	void Awake()
	{

		_instance = this;
		uiText = GameObject.Find("scoreGUI").GetComponent<Text>();
	}


	// Update is called once per frame
	void Update()
	{
		uiText.text = "Score:" + score;
	}
}