Unity新GUIのSliderから変数取得を学ぶ

このQ&Aのポイント
  • Unityの新GUI(UI,uGUI)のSliderから数値を取得し、スクリプト内の変数に代入する方法を学びましょう。
  • C#のサンプルコードを見つけたものの、C#が使えない場合でも心配ありません。この記事では、javascriptを使用して同様の操作を行う方法を解説します。
  • 具体的な手順としては、SliderのGetComponent関数を使用して数値を取得し、スクリプト内の変数に代入します。詳細な手順は以下のサイトを参照してください。
回答を見る
  • ベストアンサー

Unity 新GUIのSlideから変数取得.js

Unityの新GUI(UI,uGUI)のSliderから数値を取得してスクリプト内の変数に代入するという javascriptを書きたいのですが、全くわかりません。 インターネットを使って調べてみたのですが、C#のものしか見つからず (自分は)C#は使えないので、javascriptで教えて下さい。 //C#例 float red = this.redslider.GetComponent<Slider> ().value; のようなことをjavascriptでしたいです。 C#で書いてあったサイト↓ http://www.rising-app.com/2014/12/24/unity-4-6-ugui-2/ http://hwks.hatenadiary.jp/entry/2014/12/15/012655

質問者が選んだベストアンサー

  • ベストアンサー
noname#247307
noname#247307
回答No.1

ゲームの処理を書いたスクリプトファイルを開いて、Sliderのオブジェクトを保管しておく変数を用意して下さい。 var slider:UI.Slider; こんな感じですね。書いたらスクリプトを保存します。そしてUnityでスクリプトを組み込んである部品を選択し、そのインスペクターにあるScriptコンポーネントの設定項目をチェックして下さい。記述した「slider」という変数がプロパティとして表示されるはずです。この値に、スライダーのコンポーネントを設定して下さい。 これで、変数sliderにスライダーのコンポーネントがバインドされます。後は、slider.valueというようにして値を取り出せます。

参考URL:
http://libro.tuyano.com/index3?id=7286003
ryuukun1234
質問者

お礼

ありがとうございました! 今まで使ってたGUI(スクリプトから作れるもの)ではうまくいかなかったことがこれでできるようになりました。

関連するQ&A

  • C# 変数を変数で指定したい

    UnityとC#でプログラミングの勉強をしている者です。 「操作する変数」を、変数を使って指定するにはどのような方法を使えば良いのでしょうか。 以下、例となります。 aという変数、およびb1、b2、b3……という変数があるとしたとき、 「a=1ならば、b1に1を代入する」 「a=2ならば、b2に1を代入する」 「a=3ならば、b3に1を代入する」…… という処理をする方法を探しています。 よろしくお願い致します。

  • Unityの敵接触イベント

    Unityで、敵が接触したときにゲームオーバーになるスクリプトを書きたいです。・・が、ググってもヤフっても、よくわからないです・・ 自分の名前は「Player」、敵の名前は工事のおっさんの「3rd Person Controller」です。 ゲームオーバーになると、操作が不能になり、ゲームオーバーまたはYourDiedと文字が出てきて、数秒するとスタート位置に戻り最初からはじまる、というスクリプトを書いてくれる方いませんか・・ついでにいうと、起動してすぐスタート位置に戻ります。 C#か、Javascriptで書いてほしいです・・ 一応自分でわけわからなく書いてCS1525エラー起こったソースを張ります。こぴぺを凄く使ったので、意味不明のソースだと思いますが・・ using UnityEngine; using System.Collections; void OnGUI(){ public class TextLabel : MonoBehaviour { private void OnTriggerEnter(Collider other) { GUI.Label(new Rect(20,20,100,50),"Your Died...") } } }

  • javaScriptの変数をJavaの変数に代入する。

    jspで作ったプログラムがあるこのような場合変数を共有する方法はありますでしょうか? 以下の場合iの(JavaScript)値をjavaの変数iに代入したい場合どうすればいいでしょうか? <%! String s[] ={A,B,C,D,E} %> function chek(){ for(i = 0;i< 5 ;i++){ <%! int i =%> = i;//←この部分です //document.form1.desc.valueにはBの値が入っている if(<%! s[i] %> == document.form1.desc.value){ alert("Bです"); } }

  • C++の問題

    このプログラムを実行し、値234,453290453294をfloatとdoubleで定義した変数に代入して、画面に出力した時、どうなるか?実行結果にはどのような結果違いが発生し、なぜそうなるのかの理由を述べよ 文字変数aにbという文字、文字変数cにdという文字を代入して、変数aとcを使って、dbと出力するプログラムを作成せよ 誰かこれ助けてくれませんか

  • (JavaScript)変数や文字列難しい

    JavaScript 第1問目 // [変数 - 右辺が変数を使った式1] // ---------------------------------------- // 変数sに、変数piの値に変数rの値を2回掛け合わせた値を代入してください let pi = 3.14; let r = 5; ×let s = ; console.log("円の面積は" + s); ※×は間違い。 第2問目 // ---------------------------------------- // [文字列 - 大文字に変換1] // ---------------------------------------- // 変数cの文字を大文字に変換して出力してください let c = "p"; ×console.log(toUpperCase+()); ※×は間違い。 第1問目 ×let s = ;のところですが、let s = (3.14*5)+(3.14*5);でも間違いです。変数sに、変数piの値に変数rの値を2回掛け合わせた値の計算方法やコードは何でしょうか? 第2問目 ×console.log(toUpperCase+());のところですが、console.log(toUpperCase+("p"));やconsole.log(toUpperCase+("c"))は違います。console.log{toUpperCase+}も違います。大文字に変換するコードは何でしょうか?

  • Array()で配列の一次元部分と二次元部分に同時に値を代入するには

    class categoryInfo{  var $langName = array(   "app" => array(    "c" => "C&C++",    "java" => "Java",    "vb" => "Visual Basic.NET",(以下略)   ),   "markup" =>array(    "html" => "HTML",    "css" => "CSS"   ),   "web_app" => array(    "javascript" =>"JavaScript",    "php"=>"PHP",    "perl"=>"CGI/Perl"   ),  );  $langName[app] = "アプリケーション開発用言語";  $langName[markup] = "マークアップ言語";  $langName[web_app] = "Webアプリ"; } ・・・という風にしているのですが、当然ながら、最後の $langName[app] = "アプリケーション開発用言語"; などは、既に宣言した変数に値を代入する行為であるため、関数内で行うように、とのエラーメッセージが出力されてしまいます。  コンストラクタで宣言すれば良い話ではあるのですが、600行ほどあるファイルなので、別の場所で宣言すると面倒になってしまいます。  又、後々foreachを使うので、連想配列を用いている以上、Array()を使って順番を定義したいのです。  このArray()の中で、$langName['app']などの一次元部分に値を代入した上、$langName['app']['c']などの二次元の部分にも値を代入する方法はありますでしょうか?

    • 締切済み
    • PHP
  • JavaScriptのnullはいつ使う?

    JavaScriptにはnullという値がありますが、いつ使うのでしょうか。 値が定義されていない変数やプロパティには、undefinedが入っていますし、 undefinedを代入することもできます。 C#でのnullの使い方と同じように、undefinedが使えちゃってます。 ではnullはいつ使うのでしょう? undefinedではなくnullでなければダメなケースって何がありますか?

  • VC6における浮動少数点数値について

    はじめて質問させて頂きます。 C言語の基礎演習レベルの題材ですが 想定外の結果が表示され解決できておりません。 内容としては2つのfloat型変数(以下ソースのb,c)に 全く同じ演算処理結果を代入し コンソール表示させるというプログラムです。 #include <stdio.h> void main() { float a = 0, k = 0; float b = 0; float c = 0; a = 0.2; k = 20.0; k += a; b = k - 20.0; c = k - 20.0; printf( "%f %f %f %f\n", a, b, c, k ); if( b == c ) { printf( "*\n" ); } while( getchar() != EOF ){} } 予想実行結果: 0.200000 0.200000 0.200000 20.200000 * 実際の結果: 0.200000 0.200000 0.200001 20.200001 当方、浮動少数点数値の扱いにも不慣れな為、原因不明です。 なぜこのような結果になるのか、どなたかご教授頂けないでしょうか。 宜しくお願い致します。

  • JSの変数について

    https://okwave.jp/qa/q9322322.html?by=agree#a_area の続き 確かにspeedBaseが変更されないと初期値が変わらないので 永遠にスピードが速くならないですね。 問題は下記のようにspeedを使っているので、speedBaaseとspeed変数の中身は同じなのに、 第二引数にspeedBaseという変数名であるとおかしいのでわざわざspeed変数に再代入しないといけない点です。 このような場合どう解決しますか? let speed = (speedBase = speedBase * 0.9); let setClickItem1 = setInterval(() => { let mathRandom = Math.random(); }, speed); >>> >speedBase++やspeedBase--の場合もグローバルになければクリックリスナーが終わればこの変数は消えてしまうのですね。 そのとおりです。 上記の演算式のパターンと比較して下さい、(ざっくりと言うと)「speedBase++」は「speedBase = speedBase + 1」と ほぼ等価、「speedBase--」は「speedBase = speedBase - 1」と ほぼ等価。 やはりグローバルにした時のみイベントリスナーが終わってもその中で宣言された変数は残り続けるのですね。 これは上のスコープであれば参照できるとは違うのですか? 参照はグローバルはもちろんどのスコープからでも参照できますがグローバルでない上にあるスコープなら 参照できますが、こちらはグローバル限定なのでしょうか?

  • 受取った変数をページ移動しても保存したい

    初歩的な質問ですみません。 現在Aページ内にテーブルでタブ(BとC)を作成しインラインフレームで各ページを読み込んでいますが Bのテキストエリアに入っている変数がCにタブ移動し、戻ってくるとテキストエリアが初期化されます。 変数はBとCに入力後登録ボタンを押下することでサーバにUPloadしたいと考えており登録ボタンを押すまでは BとCのタブを行き来しても残しておきたいのです。 サーバにある値を取ってきているわけではないのでsession変数ではないと考えています。 Bを再度読み込む際に入っていた変数を読み込むような関数などはあるのでしょうか? A.asp---------- <HTML> <HEAD> <META HTTP-EQUIV="Content-Language"CONETNT="ja"> <META HTTP-EQUIV="Content-Type"CONTENT="text/html;CHARSET=shift_jis"> <TITLE>練習用</TITLE> <Script Language="JavaScript"> resizeTo(700,500); </Script> </HEAD> <BODY> <table border > <tr> <th class="on"><a href="B.asp" target="inline">B</a></liS></th> <th class="on"><a href="C.asp" target="inline">C</a></th> </tr> </table> <iframe src="B.asp" name="inline" width="1000" height="200" marginwidth="20" marginheight="20" scrolling="auto" > <a href="B.asp">B</a> <a href="C.asp">C</a> </BODY> </HTML> ------------- b.asp--------- <HTML> <HEAD> <TITLE>B</TITLE> </HEAD> <BODY > <SCRIPT language="JavaScript"> <!-- function ima(){ //関数 dd = new Date(); cc=dd.toLocaleString(); document.Date1.kanso.value +=cc+"\n"; } function openChild(f){ window.open("テンプレート.asp","_blank"); } //--> </SCRIPT> <FORM name="Date1"> <table> <tr height="5"> <th width="90"><font color="red" size="2">内容</font></th> <th width="80"><INPUT type="button" onclick="ima();" value="現在日時"></th> <th width="80"><input type="button" onclick="openChild(this.form)" value="テンプレート"></th> </tr> </table> <textarea name="kanso" rows="5" cols="60" name="day"></textarea><br> </FORM> </BODY> </HTML> -------------- c.asp---------- <HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> test </BODY> </HTML> --------------