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

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

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

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

10340閲覧

unity キャラクター名をユーザーに入力してもらう

tatoyan

総合スコア12

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

3クリップ

投稿2016/06/20 08:18

###前提・実現したいこと

現在「キャラクターの名前をユーザーからの入力に任せる」ということをしたいと考えているのですが、unityで「特定のオブジェクトが押されたらテキストに特定の文字を反映」というのは可能でしょうか?もし可能ならスクリプト等の方をおしえていただきたいです。

入力させる方法はマウスでオブジェクトをクリックという形をとっています。
###発生している問題・エラーメッセージ

エラーメッセージ

###該当のソースコード

C♯

###試したこと
uGUIで試しましたが、思っているようなものではありませんでした。

###補足情報(言語/FW/ツール等のバージョンなど

unity 5.3.4

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

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

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

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

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

guest

回答1

0

ベストアンサー

以下の画像のようなイメージであっていますでしょうか。
イメージ説明

以下のコンポーネントを利用して、ButtonコンポーネントのOnClickを利用します。
ボタンを押した際のコールバック関数にて、変数のTextコンポーネントのテキストを変更出来ると思います。

csharp

1using UnityEngine; 2using UnityEngine.UI; 3 4public class Message : MonoBehaviour 5{ 6 [SerializeField] 7 private Text m_text = null; 8 9 public void OnAddString( string i_string ) 10 { 11 m_text.text += i_string; 12 } 13 14} // class Message

イメージ説明
イメージ説明


追記:InputFieldと両立する場合

InputFieldコンポーネントが変更するテキストを変化させる場合、上記のMessageコンポーネントではtextInputFieldに上書きされてしまうため、InputFieldのtextプロパティを変化させる必要があります。

csharp

1using UnityEngine; 2using UnityEngine.UI; 3 4public class Message : MonoBehaviour 5{ 6 [SerializeField] 7 private InputField m_inputField = null; 8 9 public void OnAddString( string i_string ) 10 { 11 m_inputField.text += i_string; 12 } 13 14} // class Message

イメージ説明

ご参考になればと思います。

投稿2016/06/20 09:48

編集2016/06/21 07:16
urahimono

総合スコア714

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

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

tatoyan

2016/06/20 14:03

There are inconsistent line endings in the 'Assets/Message.cs' script. Some are Mac OS X (UNIX) and some are Windows. This might lead to incorrect line numbers in stacktraces and compiler errors. Many text editors can fix this using Convert Line Endings menu commands. のようなメッセージが出てしまいうまく反映されませんでした。。。
tatoyan

2016/06/21 03:02

教えて頂いた通りスクリプト等を打ち込んだのですが、ボタンのテキスト内容がテキストにまったく反映されませんでした。自分が初心者のためこちら側が100%ミスをしていると思います・・・
tatoyan

2016/06/21 03:12 編集

たびたび申し訳ありません。 Canvasの下が    InPutField    Placeholder    Text と自分のはなっているのですが、これは関係ありますでしょうか?
urahimono

2016/06/21 07:16

もし上記のMessage.csのm_textの参照先が、InputFieldの子にあるTextを参照している場合、InputFieldクラスがTextを上書きしてしまう形になってしまうので、うまく動かない可能性があります。 InputFieldと今回のボタンによりテキストの変化を両立したいのでしたら、InputFieldのtextのプロパティに対して文字を追加してあげる必要があります。 回答にInputFieldの両立する場合を追加しました。
tatoyan

2016/06/21 07:17

本当にたびたびすいません。やはりこちらのミスでした!おかげさまで無事解決いたしました。教えて頂きありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問