こんどは,さきほどの
int cat = Random .Range(0, 2); Debug.Log (cat);
を
void Update(){ }
の{と}の間に移動させ(void Start(){ }の間から出して),再生してConsoleを確認しましょう.
こうなります.
Update中の{}に書かれたものは,ゲーム再生中ひたすら繰り返されます.
ランダム値を発生させてみましょう
// 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;
void gobadEnd(){ SceneManager.LoadScene ("badend");//go badend scene }
MBAASはJSON互換だけど,JSONは遅れずDictionaryが受けられるらしい.
んで,Dictionaryを真面目に使ったらエラーでるのよ.
いける例
using System.Collections.Generic; public class skillSender : MonoBehaviour { static public Dictionary<string,int> skillPDic;//スキルチェックポイント用 // Use this for initialization void Start () { skillPDic = new Dictionary<string, int> () { }; }
NGの例
using System.Collections.Generic; public class skillSender : MonoBehaviour { static public Dictionary<string,int> skillPDic;//スキルチェックポイント用 // Use this for initialization void Start () { Dictionary<string,int> skillPDic = new Dictionary<string, int> () { }; }
if (gameTime < 1) { //go end StopCoroutine("loop"); Invoke("goEnd", 2f); }
変数 gameTimeが1未満になったら,時間制御をしているコルーチンloopを止めて,goEndの関数を2秒後に実行 の意味
こちらは2秒後に実行されるので,少し余裕が持てます.goEndを実行するタイミング(ここでは2秒)を変えて自分が最も良いと思う時間に変更してみましょう
なお2fのfはfloat(実数)の意味です.Unity上では実数の場合はfとつけるルールがあります
これでもいけます
if (gameTime < 1) { goEnd(); }
変数gameTimegが1未満になったらgoEnd関数を実行(こっちは2秒待たないのでせわしない)
96時間はまったこと
NCMBUser user = NCMBUser.CurrentUser; string userName = user.UserName; NCMBACL acl = new NCMBACL ();//今回のログは新規作成なのでnewでよい acl.SetWriteAccess (userName, true); acl.SetReadAccess (userName, true);
対訳してみました.
元のスクリプトは
using UnityEngine; using System.Collections; using UnityEngine.UI;//UIを使用するのに必要 using UnityEngine.SceneManagement;//シーン遷移をするのに必要 public class myQuest : MonoBehaviour { [SerializeField, HeaderAttribute ("経由地の数")] public int points; //sound [SerializeField, HeaderAttribute ("効果音をドロップ")] public AudioClip getSound; public AudioClip tickSE; //default time [SerializeField, HeaderAttribute ("カウントダウンの初期時間")] public int gameTime; [SerializeField, HeaderAttribute ("残時間のUItextをドロップ")] public Text timeText; [SerializeField, HeaderAttribute ("残りの経由地数表示UIをドロップ")] public Text nokoriText; [SerializeField, HeaderAttribute ("エンディングのシーン名を入力")] public string endSceneName; //audio source get from this script attached AudioSource myaudio; // Use this for initialization void Start () { myaudio = GetComponent<AudioSource>(); timeText.text = "残り時間" + gameTime.ToString () + "秒"; nokoriText.text = "のこり" + points.ToString () + "個"; //start after nSec Invoke("timeCount", 3.5f); } void Update () { } //if hit destroy obj void RedirectedOnTriggerEnter(Collider mycollider) { //Debug.Log (mycollider.gameObject.tag); if (mycollider.gameObject.tag == "pointObj") { points--; nokoriText.text = "のこり" + points.ToString () + "個"; myaudio.PlayOneShot (getSound, 0.7F); Destroy (mycollider.gameObject); if (points < 1) { //go end StopCoroutine("loop"); Invoke("goEnd", 2f); } } } void timeCount(){ StartCoroutine("loop"); }
対訳はこちら(画像:クリックで拡大)
(次へ)
よくつかう関数をいれとくのを作ります
using UnityEngine; using System.Collections; namespace globalManager{//名前空間 public class myManager : MonoBehaviour {//クラス名はmyManager public static void mytest2(){ Debug.Log ("test"); } public static void mytest3(int cat){ Debug.Log (cat); } } }
このnamespaseでusingすると呼び出せます
using UnityEngine; using System.Collections; using globalManager;//必要 public class slaveScript : MonoBehaviour { void Start () { myManager.mytest2 (); myManager.mytest3 (5); } }
これで,コンソールには
「test」「5」と表示されます