Unity 2019.4.14(LTS)でStandard Assetsを使用する
- 2020年11月20日
- Unity
今回は、Unityの現行LTS(長期サポート)バージョン「Unity 2019.4.14f1」で「Standard Assets」を使用する方法を紹介いたします。
Standard Assetsとは
Standard AssetsとはUnity Technologies社公式が提供しているアセット集です。
3Dモデルのコンポーネントスクリプトやパーティクルのプリセット、Playerに追従するカメラなど開発の参考になるアセットが揃っています。
Standard Assets実行時のエラー
「Standard Assets」をUnity 2019.4.14(LTS)のプロジェクトにインポートして、そのまま使用しようとすると、プレイモードを実行する際に以下のコンパイルエラーが発生します。
Assets\Standard Assets\Utility\SimpleActivatorMenu.cs(11,16): error CS0619: 'GUIText’ is obsolete: 'GUIText has been removed. Use UI.Text instead.’
原因
Standard Assetsは旧バージョンの「Unity 2018.4」向けに作られており、現行バージョンの「Unity 2019.4.14f1」ではGUITextは廃止になったため、上記のエラーが発生します。
エラーメッセージにあるように「’GUIText’のかわりに’UI.Text’を使用」することで対処できます。
対処方法
問題となっているソースコード「SimpleActivatorMenu.cs」を以下のように編集します。
編集した行には「★」マークのコメントをつけています。
using System;
using UnityEngine;
using UnityEngine.UI; // ★この行を追加します
#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; // ★この行をコメントアウトします
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 2019.4.14f1」でStandard Assetsを使用することが可能になります。
金曜日担当:nishida
nishida at 2020年11月20日 10:00:21