前にUnityで簡単に車を走らせる記事を書きました。
ところが、2019年12月現在の最新バージョンである2019.3.0f1で動かそうとすると、以下のエラーが出るようになってしまいました。
Assets\Standard Assets\Utility\ForcedReset.cs(6,27): error CS0619: ‘GUITexture’ is obsolete: ‘GUITexture has been removed. Use UI.Image instead.’
Assets\Standard Assets\Utility\SimpleActivatorMenu.cs(10,16): error CS0619: ‘GUIText’ is obsolete: ‘GUIText has been removed. Use UI.Text instead.’
スクリプトの編集が必要になりますが、簡単に直るので対処方法をシェア。
ForcedReset.csを修正する
まず最初のエラーを直します。
Assets\Standard Assets\Utility\ForcedReset.cs(6,27): error CS0619: ‘GUITexture’ is obsolete: ‘GUITexture has been removed. Use UI.Image instead.’
Google翻訳によると、
「GUITexture」は廃止されました。「GUITextureは削除されました。代わりにUI.Imageを使用してください。」
となります。
というわけで、ForcedReset.csファイルを開いて、
※ファイルを開く場合は、エラーメッセージをダブルクリックすると対象の個所を開いてくれます。
「GUITexture」の部分を 「Image」に変更します。
[RequireComponent(typeof (Image))]
こんな感じ。
「GUITexture」を 「Image」に変更すると、Imageが見つからないと言われるので、 次の一行を追加します。
using UnityEngine.UI;
修正した ForcedReset.csファイルは、こんな感じになります。
using System;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityStandardAssets.CrossPlatformInput;
using UnityEngine.UI; // 追加
[RequireComponent(typeof (Image))] // 変更 GUITexture -> 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を修正する
次のエラーを修正します。
Assets\Standard Assets\Utility\SimpleActivatorMenu.cs(10,16): error CS0619: ‘GUIText’ is obsolete: ‘GUIText has been removed. Use UI.Text instead.’
一応Google翻訳すると、
「GUIText」は廃止されました。「GUITextは削除されました。代わりにUI.Textを使用してください。」
内容は同じですね。
SimpleActivatorMenu.csファイルを開いて、「GUIText」を「Text」に変更します。
public Text camSwitchButton;
こんな感じ。
前のファイルと同じように、 UnityEngine.UI を使えるようにして、
using UnityEngine.UI;
修正後の 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; // 変更 GUIText -> Text
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に戻ると、なんか作業が始まって、しばらく待つとエラーが消えてると思います。
以上、最新版のUnityで「Standard Assetsでエラーが出た時の対処方」でした。
では、良いUnityライフを。
コメント
[…] Standard Assets でエラーが出た時の対処方 | いかけんの家 […]
[…] Standard Assets でエラーが出た時の対処方 | いかけんの家 […]
[…] Standard Assets でエラーが出た時の対処方 (error CS0619) | いかけんの家 […]