会員ロールのカスタムフィールド”nyusyo”の取得
NCMBUser currentUser = NCMBUser.CurrentUser;//現在のユーザ情報をcurrentUserに格納 PlayerPrefs.SetString("nyusyobi", currentUser["nyusyo"].ToString()); Debug.Log(currentUser["nyusyo"]);
会員ロールのカスタムフィールド”nyusyo”の取得
NCMBUser currentUser = NCMBUser.CurrentUser;//現在のユーザ情報をcurrentUserに格納 PlayerPrefs.SetString("nyusyobi", currentUser["nyusyo"].ToString()); Debug.Log(currentUser["nyusyo"]);
NCMBObjectのUpdateDateを整形するはなし
DateTime dt = objdata.UpdateDate; string thisDay = dt.ToLongDatePattern();
これだと
Cannot implicitly convert type `System.DateTime?’ to `System.DateTime’
ってエラー出る
DateTime dt = objdata.UpdateDate.Value; string thisDay = dt.ToLongDatePattern();
これで年月日(2016年11月29日)で出力される
objdataはサーバから取得したNCMBオブジェクト
Valueをつけるのがポイント
次に,Image1を選択し,インスペクタのSource Imageにアセットのhidari の画像をアサインします.
image2にはmigi の画像をアサインします.
mysw() の中の Debug.Log (cat); の下に
if (cat == 1) { migiya.SetActive (true); hidariya.SetActive (false); } else { migiya.SetActive (false); hidariya.SetActive(true); }
を入れます.
これはランダム値catが1と同一ならば,migiyaというGameObjectを見える状態にしなさい.そしてhidariyaは見えなくしなさい.
という意味です.else以下はその反対の動きですね.
先日のアプリでは,警告表示をやたら出すのに使ってました.
まだ押さないでとか,ネットワーク接続していません.とか,,
もどって,
そして作成したGameObjectを選択し,
migiyaにimage2を,hidariyaにimage1をアサインします.
ゲームを再生し,ボタンをクリックすると矢印がランダムで切り替わります.
なお,はりつけた画像とボタンが重なるとボタンをクリックできません.ボタンをすらしてください.
あるいは,Imageが押される対象になっているので,それをOffにするやり方もあります.Image1,2を選び,インスペクタの Raycast Targetのチェックをオフにします.こうするとImageがボタンでなくなるのので,Buttonだけが押せる対象になるのです.
おめでとうございますこれで1億の仕事もばっちりですね!
(1億の仕事とは)
http://gigazine.net/news/20160405-tsa-randomizer-cost-1-4-million/
myscriptをダブルクリックし,
public class myscript : MonoBehaviour {
と
void Start () {
の間に
public GameObject migiya; public GameObject hidariya;
と入力し,保存して,Unityに戻ります.
スクリプトをアサインしたGameobjectを選択すると,インスペクタに
と表示されます.
スクリプトでPublic宣言したものは,このようにインスペクタで扱えるようになり,変数などの場合は直接入力できるようになります.
public インスペクタで扱えるようにして
GameObject 変数はGameObjectですよ,
migiya 名前はこれね.
という意味です.
次に メニューバー>Gameobject>UI>Button を選びます.
ゲーム画面上にボタンが現れます.インスペクタ画面で適当な位置に移動させます.
次にボタンを押した時に実行するスクリプトを書きます.
void Updateの終わりの } の下の行に
public void mysw(){ int cat = Random .Range(0, 2); Debug.Log (cat); }
とかきます.
void start と void updateの中に書いた2行は消しておきましょう.
public 他からでも見えるようにの意味
void mysw(){ はmyswという関数(命令の集合体)ですよ.
} ここまでね.
という意味です.
保存が終わったら.Hierarrchyからさきほど作成したButtonを選びます.
ボタンを選択すると,インスペクタにOnClickという項目があります.
この + ボタンを押します
None(Object)と書かれている所に,さきほどスクリプトをアサインしたGameObjectをドロップします.
次に,No Functionをプルダウンし,myscriptのmyswを選びます.
再生し,ボタンを押すとmysw関数の中だけが実行されます.
ランダム値を発生させてみましょう
// Use this for initialization void Start () { }
このvoid Start()は{と}に囲まれた中を最初の1回実行します.最初の1回のタイミングは,UnityのPlayボタンを押した時の1回です.
この{ と } の間に
int cat = Random .Range(0, 2); Debug.Log (cat);
と入れてください.
intは整数の変数を作ろう!(えさ箱)
cat は整数をいれておくための変数の名前(えさ箱の名前的な)
Radndomは乱数発生
.Ramgeは範囲指定
(0, 2)は範囲は0から2の間
の意味です.
Debug.Log(cat); はcatの変数の中身をコンソールに表示せよというものです.
これを記入して,保存します.
Unityのボタンやアイコンなど,GUIと呼ばれるパーツを作成してみましょう
なお,検索語は ugui (unity guiの意味)がいいです.
以前あったアセットに,NGUIというものがあり,それと混同されることがたまにあるので注意ください.
using UnityEngine; using System.Collections;
の後に,
using UnityEngine.UI;
を追加します.
これはUIシステムを使えるようにするためです.UIを使わない場合は不要です.
冒頭の3行はこうなりましたか?
using UnityEngine; using System.Collections; using UnityEngine.UI;