Unity歴3日のぼくのメモです。Unityでゲームを作って億万長者を目指しましょう。
環境
OSX 10.10.5
Unity 5.3.2
Xcode 7.2
覚えておきたいUnity Tips
①Unityでグラフィックやすべての設定などを行い、MonoDevelopでコードを書く
②Unityのカラムを2 by 3に変更すると見やすい
③AssetStoreを開くショートカットキーはCommand + 9
④GameシーンではQ、W、E、Rで拡大や回転などの切り替えができる
⑤alt(option)キーを長押ししながらトラックパッド2本指で画面上のカメラ操作が簡単にできる
iOS向け設定
①File -> Build Settings -> iOSに設定
②Player Settings -> Landscapeなどの設定
③画面サイズの設定(横向きなら1136 * 640等)
④Buildする
Xcodeのプロジェクトファイルが書き出されるので、Xcodeで開いて自分のiOS端末でRunすれば自分のiPhoneやiPadで自作ゲームが遊べます。
BGMを入れる方法
①Hierarchyからカメラをクリック
②リソースフォルダに音源(mp3)をドラッグ&ドロップ
③音源(mp3)をCameraのInspectorにドラッグ&ドロップするとAudio Sourceが追加される
④BGMだけならこのままRunすれば再生される
<参考>
http://qiita.com/edo_m18/items/31771c2afc065d764fbf
効果音を入れる方法
①リソースフォルダに音源(mp3)をドラッグ&ドロップ
②効果音を発生させるオブジェクトをクリック
③「Add Component」を押してコンポーネントの追加
④AudioClipに音源をドラッグ&ドロップ
// 変数宣言
private AudioSource audioSource;
public AudioClip audioClip;
private void playSound () {
audioSource.PlayOneShot (audioClip, 1.0f);
}
アニメーションを入れる方法
①AssetStoreからアニメーションをダウンロードしてリソースに入れる
②Inspectorからアニメーションを動画で確認できる
③Projectのところで右クリック -> Create -> AnimationController
④アニメーションを付けたいオブジェクトを選択し、InspectorのControllerに設定
⑤人間型の場合はHumanoid設定に変更
<参考>
https://www.youtube.com/watch?v=QJ2dY0Sjgoo
Animatorの条件設定
AnimationControllerを作ってアニメーションを配置したら、transition(矢印)でアニメーションの順序をひも付けていく。矢印を右クリックしてアニメーションが呼ばれるタイミングについて設定することができる。アニメーションの呼び出しタイミングは以下の4種類。
タイプ | 役割 |
---|---|
Float | 小数の値によってアニメーション呼び出し |
Int | 整数の値によってアニメーションON/OFF切り替え |
Bool | 真偽値(true/false)によってアニメーションON/OFF切り替え |
Trigger | 値によらず命令を受け次第アニメーションON/OFF切り替え |
// 変数宣言
private Animator animator;
// 処理
public void sampleAnimation () {
if (Input.GetKeyDown ("space")) {
// Triggerの場合
animator.SetTrigger ("spaceTapped");
// 処理...
}
}
コードを書く
①C#のルール
項目 | ルール |
---|---|
命名規則 | メソッド名はアッパーキャメル、変数名はローワーキャメル |
コメント | /* ... */と//が利用可能 |
型の指定 | 右辺から明らかに型が分かる場合は型宣言せずvar宣言可 |
文字列 | +で結合可能 |
配列の宣言 | 型の後に[]を付加。string[] nameArray = { "a", "b", "c" }; |
例外処理 | throw/try/catch構文を使用 |
②変数宣言
// 修飾子 クラス/型 変数名;
// (例)
private AudioSource audioSource;
③修飾子
publicで宣言した変数や処理はUnityのオブジェクトに直接ひも付けることができる。
④メソッド
メソッドは処理のかたまりのこと。走ってジャンプする、のようなものを処理「superJump」のように定義することができる。
修飾子 戻り値の型 メソッド名 (引数の型 引数の仮変数名) {
// 処理
}
// (例1)
// ※引数が複数ある場合はカンマで区切る
public double SampleMethod (double x, double y, double z) {
a = x + y + z;
return a;
}
// (例2)
// ※戻り値を特に指定しない場合は、戻り値の型を「void」とし、return文は不要。
private void SampleMethod () {
// 処理
}
private void SampleMethod () {
// ShowDebugLog()メソッドを直接呼び出してみる
ShowDebugLog();
// 間接呼び出し(1秒後にShowDebugLog()メソッドが呼ばれる)
Invoke ("ShowDebugLog", 1.0f);
}
private void ShowDebugLog () {
Debug.Log("called from SampleMethod");
}
⑤関連付けされたファイルの初期化
※あるオブジェクトに音やRigidBodyなどを関連付けていた場合の初期化
// 変数宣言
private Rigidbody rigidBody;
private AudioSource audioSource;
void Start () {
// 自身のインスタンスのコンポーネントを取得して初期化
rigidBody = this.GetComponent<Rigidbody> ();
audioSource = this.GetComponent<AudioSource> ();
}
エラー対処
①コンソールへの出力
Debug.Log ("hoge");
Debug.Log (number);
②ビルド時のエラー対処
Unityのコンソールに出力されたエラーをダブルクリックするとMonoDevelopの該当コードに飛ぶので、そこがヒントになる。