質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Q&A

解決済

1回答

1450閲覧

Unityでのスクリプトの作成について

nakaojin

総合スコア13

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

0グッド

0クリップ

投稿2017/08/10 23:13

Uniytを始めとしてプログラムソフトについては、全くの初心者で勉強を始めたばかりです。

いろいろとネットを検索して、第1段階としてコンソールに、「Hello, World.」と表示することには成功しました。

第2段階として、「GUI.TextArea に「Hello, World.」を表示」というテキストがありましたので、そこに記載されているとおりだと思うのですが、次のような作業を実行しました。
( 見てわかるUnity5 C# 超入門 )

1 プロジェクトは、先に「Hello, World.」と表示することには成功したプロジェクトをそのまま使用しました。

2 「Hello, World.」の際に使用したスクリブトに次の1行を加えました。
コードの文言は、テキストをコピペしました。
GUI.TextArea (new Rect (5, 5, Screen.width-10, 50), "Hello, World.");

3 作成されたスクリプトを「MonoDevelop」コピペした結果は次の通りです。

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

public class HelloWorld : MonoBehaviour {

    // Use this for initialization
void Start () {
Debug.Log("Hellow, World.");        
}

// Update is called once per frame
void Update () {
GUI.TextArea (new Rect (5, 5, Screen.width-10, 50), "Hello, World.");
}
}
4 この段階で、Build作業の成否を確かめるために、「F7」キーを押しましたが、「Build successful」との表示が出ましたので保存してUnityに戻ったところその通りに表示されており、欄外下部にはなんの表示も出ていませんでした。

5 そこで、作成したスクリプトをMain Camera にドロップしたところ欄外に表示がでたので、改めてコンソール画面を開いたところ次のような表示がありました。
Hellow,Wrold.
UnityEngine.Debug:Lpg(object)

ArgumentException;You can only call GUl functions from inside onGUI,
UnityEngine.GUIUtility.CheckOnGUI () (at C:/buildslave/unity/build/Runtime/IMGUI/Managed/GUIUtility.cs:357)

ArgumentException;You can only call GUl functions from inside onGUI,
UnityEngine.GUIUtility.CheckOnGUI () (at C:/buildslave/unity/build/Runtime/IMGUI/Managed/GUIUtility.cs:357)
UnityEngine.GUI.get_skin () (at C:/buildSlave/unlty/build/Runtime/IMGU1/Managed/GUI.cs:58)
UnityEnqine.GUI.TextArea (Rect position. System.Strinq text) (at
C:/buildslave/unity/build/Runtime/IMGUI/Managed/GUI.cs:585}
HelloWorld.Udate () (atAssets/HelloWorld.cs:14)

6 何を指摘されているのかさっぱりわからないので、ネットで検索をしたのですが、参考になるようなサイトを見つけることはできませんでした。

7 パソコン環境は次の通りです。
Windows 10 Pro 64 bit
Unity 2017.1.0f3 Personal (64 bit)

8 勝手なお願いですが、初心者でも対処できるような形で教えていただきたく、よろしくお願い至します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

私の環境では質問者様のコードを実行すると
ArgumentException: You can only call GUI functions from inside OnGUI.
とエラーが出ました。
エラーのとおり
「GUI系の関数(ここではGUI.TextArea(...))はOnGUI()の中に書いてね」
という意味です。

下記のようにすると動きました。

c#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class Test : MonoBehaviour { 6 7 // Use this for initialization 8 void Start () { 9 Debug.Log("Hellow, World."); 10 } 11 12 // Update is called once per frame 13 void Update () { 14 } 15 void OnGUI(){ 16 GUI.TextArea (new Rect (5, 5, Screen.width - 10, 50), "Hello, World."); 17 } 18} 19

実行結果

下記リンクが参考になるかと思います。

【Unity/C#】OnGUI関数でボタンやラベルを表示する

UnityをC#で超入門してみる #4 GUIの章

投稿2017/08/11 00:39

kz23szk

総合スコア85

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問