Unity

【Unity】error CS0619:’GUIText’ is obsolete:’GUIText has been removed. Use UI.Text instead.’が出た時の対処法

投稿日:2020年7月20日 更新日:

目的

UnityでC#スクリプトを記述してゲームオブジェクトにAttachしようとしたときにerror CS0619:’GUIText’ is obsolete:’GUIText has been removed. Use UI.Text instead.’が出たので、その対処方法についてメモする

2020/9 追記

どうやらStandard Assetsを使うときにこのエラーが出てるみたいです。自分の環境ではStandard Assets以外では今のところ起きてないです。

環境

Unity 2019.4.3f1

発生現象

Assets > Create > C# Scriptからスクリプトを作成

作成されたスクリプトファイルをドラッグ&ドロップでSphereオブジェクトに持って行ったところ、ポップアップが現れた。

以下が現れたポップアップ。スクリプトファイル名とクラス名があっていないか、コンパイルエラーがあるとのこと。ファイル名とクラス名の一致を確認したところ問題なし。(ファイルが生成された段階で自動的にファイル名とクラス名は同じになっている)

コンソールタブを確認したところ、以下のエラーが出ていた。どうやらGUITextという記述を使うなとのこと。

対処方法

自分の環境だと、先ほどのエラーをダブルクリックするとVisual Studioが起動し、該当するファイルであるSimpleActivatorMenu.csというファイルが自動で開いた。

このファイルを以下のように編集。

using UnityEngine.UI; を追加
public GUIText camSwitchButton;  をコメントアウト
public Text camSwitchButton; を追加

以下ソースコード

using System;
using UnityEngine;
using UnityEngine.UI;  //This is added

#pragma warning disable 618
namespace UnityStandardAssets.Utility
{
    public class SimpleActivatorMenu : MonoBehaviour
    {
        // An incredibly simple menu which, when given references
        // to gameobjects in the scene
        //public GUIText camSwitchButton;  //This is comment out
        public Text camSwitchButton;  //This is added
        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

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

UnityでPostProcessManager.cs(425,66): error CS0117: ‘EditorSceneManager’ does not contain a definition for ‘IsGameObjectInMainScenes’が出た時の対処法

Contents1 概要2 環境3 発生状況4 対処方法5 まとめ 概要 UnityのAsset StoreからParticle Packageをダウンロードしてimportしたところ、以下のエラーが …

【Unity】Visual Studio モジュールをインストール

Contents1 目的2 環境3 Step1 : UnityHubからVisual Studioモジュールをインストール4 Step2 : UnityでVisual Studioを開発環境として設定 …

【Unity】一定範囲に入ると追ってくるスクリプト

Contents1 目的2 環境3 完成系4 Step1 : プレイヤーの配置5 Step:2 追いかけてくるオブジェクトの配置6 Step : 3 スクリプトの作成7 Step : 4 動作確認 目 …

【Unity】Standard Assetsでサクッと人間をキー操作する

Contents1 目的2 環境3 STEP:1 地面(Terrian)の作成4 STEP:2 キャラの設置5 STEP:3 スクリプトのアタッチ6 STEP:4 Inspectorの設定7 STEP …

【Unity】ThirdPersonUserControlの方向転換動作おかしい時の対処

Contents1 事象2 調査3 対処 事象 Standard AssetsのThirdPersonUserControlを使用してEthanを動かすとき、デフォルトの正しい動きは↑↓キーで前進後退 …

言語切り替え

カテゴリー