Download - 玉転がしゲームで学ぶUnity入門
![Page 1: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/1.jpg)
玉転がしゲームで学ぶUnity入門
nakamura001
2011/05/15(2011/08/20更新)
![Page 2: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/2.jpg)
※解説を聞きながら見る前提で作成しているスライドです。以下の動画と一緒にご覧下さい。
http://www.ustream.tv/recorded/14715477
![Page 3: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/3.jpg)
床を作る
![Page 4: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/4.jpg)
床を作る• HierarchyにCubeを追加
![Page 5: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/5.jpg)
床を作る• 名前を「Floor」に変更
![Page 6: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/6.jpg)
床を作る• Positionを 0, 0, 0 に変更
![Page 7: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/7.jpg)
床を作る• Scaleを 10, 1, 30 に変更
![Page 8: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/8.jpg)
マテリアルを作成• ProjectにMaterialを追加
![Page 9: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/9.jpg)
マテリアルを作成• 名前を「FloorMaterial」に変更
• 色を選択
![Page 10: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/10.jpg)
マテリアルを作成• HierarchyのFloorにドラッグ
![Page 11: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/11.jpg)
マテリアルを作成• 追加内容はここで確認できます
![Page 12: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/12.jpg)
ライトを追加
![Page 13: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/13.jpg)
ライトを追加• HierarchyにDirectional lightを追加
![Page 14: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/14.jpg)
ライトを追加
• 実際の照らされ具合を見ながら位置や回転を調整
• 例) Position -3, 9, -7、Rotation 38, 0, 0 など
![Page 15: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/15.jpg)
Player(玉)を作成
![Page 16: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/16.jpg)
玉を作成• HierarchyにSphereを追加
![Page 17: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/17.jpg)
玉を作成
• 名前を「Player」に変更
• Positionを 0, 3, -5 に変更
![Page 18: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/18.jpg)
マテリアルを作成
• ProjectにMaterialを追加
• 名前を「PlayerMaterial」に変更
![Page 19: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/19.jpg)
マテリアルを作成• Projectにテクスチャ用の画像ファイルを追加
※玉が回転した時に分り易いものを作成しましょう
例えばこの様な画像 http://d.hatena.ne.jp/nakamura001/files/net.png
![Page 20: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/20.jpg)
マテリアルを作成• PlayerMaterialにテクスチャを設定
![Page 21: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/21.jpg)
マテリアルを作成
• Playerにドラッグ
![Page 22: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/22.jpg)
カメラを設定
![Page 23: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/23.jpg)
カメラの設定
• MainCameraのPositionを 0, 6, -10 に変更
• Rotationを 40, 0, 0 に変更
![Page 24: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/24.jpg)
Player(玉)の動きを作る
![Page 25: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/25.jpg)
Playerの動きを作成• ProjectにJavaScriptを追加
![Page 26: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/26.jpg)
Playerの動きを作成
• 名前をPlayerActionに変更
• Playerにドラッグ
![Page 27: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/27.jpg)
JavaScriptを記述var power = 20.0;
function Update () {! var x = Input.GetAxis("Horizontal") * Time.deltaTime * power;! var z = Input.GetAxis("Vertical") * Time.deltaTime * power;! Debug.Log("x="+x+", z="+z);! transform.Translate(x, 0, z);}
![Page 28: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/28.jpg)
動かしてみよう
![Page 29: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/29.jpg)
動かしてみよう• ここの再生マークをクリックし、ゲームを開始
![Page 30: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/30.jpg)
動かしてみよう• ここに表示されます。カーソルキーで動かしてみましょう
![Page 31: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/31.jpg)
もうちょっとリアリティ欲しい
![Page 32: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/32.jpg)
物理エンジンを使おう
![Page 33: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/33.jpg)
物理エンジンの処理を追加
• Playerを選択した状態でRigidbodyを追加
![Page 34: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/34.jpg)
物理エンジン関連のPackageを取り込む
Projectの余白で右クリック、Import Package→Physic Materials
![Page 35: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/35.jpg)
物理エンジン関連のPackageを取り込む
• デフォルトのまま「import」
![Page 36: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/36.jpg)
物理特性の設定• IceをPlayerのSphere Colliderの
Materialにドラッグ
![Page 37: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/37.jpg)
JavaScriptを変更var power = 80.0;
function Update () {! var x = Input.GetAxis("Horizontal") * Time.deltaTime * power;! var z = Input.GetAxis("Vertical") * Time.deltaTime * power;! Debug.Log("x="+x+", z="+z);! rigidbody.AddForce(x, 0, z);}
![Page 38: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/38.jpg)
動かしてみよう
• ゲームを起動してカーソルを動かしてみましょう
![Page 39: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/39.jpg)
ジャンプさせてみよう
![Page 40: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/40.jpg)
JavaScriptを変更var power = 80.0;var jumpPower = 300.0;
function Update () {! var x = Input.GetAxis("Horizontal") * Time.deltaTime * power;! var z = Input.GetAxis("Vertical") * Time.deltaTime * power;! Debug.Log("x="+x+", z="+z);! rigidbody.AddForce(x, 0, z);! if (Input.GetButtonDown("Jump")) {! ! Debug.Log("Jump");! ! rigidbody.AddForce(0, jumpPower, 0);! }}
![Page 41: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/41.jpg)
動かしてみよう
• ゲームを起動した後にスペースキーを押してジャンプさせてみましょう
![Page 42: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/42.jpg)
ゴールを作成
![Page 43: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/43.jpg)
ゴールを作成• HierarchyにCubeを追加
• 名前を「Goal」に変更
• Positionを 0, 1.4, 0、Scaleを 2, 2, 2 に変更
![Page 44: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/44.jpg)
マテリアルを作成
• ProjectにMaterialを追加
• 名前を「GoalMaterial」に変更
![Page 45: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/45.jpg)
マテリアルを作成
• ShaderにParticles/Additiveを選択(Particles→ Additiveと選択)
• 色に赤を選択
![Page 46: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/46.jpg)
マテリアルを作成• GoalMaterialをGoalにドラッグ
![Page 47: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/47.jpg)
ゲームクリアのテキストを追加
![Page 48: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/48.jpg)
テキストを作成• GUI Textを作成。名前をGameClearに変更
![Page 49: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/49.jpg)
テキストの設定• Textを「GAME CLEAR」に変更
• Anchorを「middle center」に変更
• Font Sizeを「40」に変更
![Page 50: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/50.jpg)
GoalにJavaScriptを追加
![Page 51: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/51.jpg)
JavaScriptを追加• JavaScriptを追加
• 名前をGoalActionに変更
• Goalにドラッグ
![Page 52: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/52.jpg)
JavaScriptを記述private var player: GameObject;private var gameClear: GameObject;
function Start() {! player = GameObject.Find("Player");! gameClear = GameObject.Find("GameClear");! gameClear.active = false;}
function OnCollisionEnter(theCollision : Collision){! if(theCollision.gameObject.name == "Player"){! ! gameClear.active = true;! ! player.rigidbody.Sleep();! ! player.SendMessage("stop");! }}
![Page 53: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/53.jpg)
PlayerのJavaScriptを変更var power = 80.0;var jumpPower = 300.0;var stopFlag = false;
function Update () {! if (stopFlag) return;! var x = Input.GetAxis("Horizontal") * Time.deltaTime * power;! var z = Input.GetAxis("Vertical") * Time.deltaTime * power;! rigidbody.AddForce(x, 0, z);! if (Input.GetButtonDown("Fire1")) {! ! rigidbody.AddForce(0, jumpPower, 0);! ! Debug.Log("hoge");! }}
function stop() {! stopFlag = true;}
![Page 54: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/54.jpg)
おまけ
![Page 55: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/55.jpg)
GetAxis()の引数について
![Page 56: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/56.jpg)
GetAxis()の引数について• GetAxis("Horizontal")の Horizontal などの設定が行われている場所
![Page 57: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/57.jpg)
GetAxis()の引数について
![Page 58: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/58.jpg)
IDEでプログラミングする
![Page 59: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/59.jpg)
MonoDevelop
• UnityはMonoDevelopというC#など向けのIDEと連携する事が出来ます
• MonoDevelopはUnityをインストールした時に一緒にインストールされるので別途インストールする必要はありません
![Page 60: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/60.jpg)
MonoDevelopで使えるようにする
• Unityのメニューの Assets →
Sync MonoDevelop Project を選択するとMonoDevelopで使える様に成ります
![Page 61: 玉転がしゲームで学ぶUnity入門](https://reader031.vdocuments.pub/reader031/viewer/2022022412/58f2ee721a28ab7f5d8b45c9/html5/thumbnails/61.jpg)
Macだと文字化け• MonoDevelopは現在のバージョンでは、
Macで文字化けします。以下のサイトを参考にフォントの設定を変更して下さい
MacのMonoDevelopの日本語表示の文字化けの直し方 - 強火で進めhttp://d.hatena.ne.jp/nakamura001/20110711/1310364725