MMC Unity講座
第2回: ~ボールを実装~
今回のおしながき
1. ボールを作成
2. ボールに物理演算を与える
3. スクリプトをかく
4. Physics Materialを作成
2
今回の新概念
Rigidbody 2D
Script(プログラム)
定数定義
Random.Rangeメソッド
Vector3・Vector2変数
Physics Material3
ボールを作成
Hierarchyで右クリック→「UI」→
「Image」
名前を「Ball」に変更
5
ボールを作成
Rect Transformの数値を次ページの画像のように変更する
(色をお好みで変更)
6
ボールを作成
BallのInspectorのAdd Component
から、「Circle Collider 2D」を追加する
円形の当たり判定を得ることができる
Radiusは10に設定
8
ボールを作成
BallのInspectorのAdd Component
から、Physics2D →「Rigidbody
2D」を追加する
GravityScaleを0に変更
9
【Rigidbody 2D】
オブジェクトに物理演算の作用を与えるComponent
GravityScaleで重力の値を変更できる
マイナスつけると上に落ちるよ
とっても高機能なのでさらにくわしい機能は調べてみよう
10
【Script(スクリプト)】
プログラミング言語を用いて、オリジナルのComponentを作る
Unityでは、C#、JavaScript(Unity仕様)等が使えるが、C#を推奨
Unityにおいて、プログラミングがゲーム制作のメインとは言えない
12
スクリプトを使う流れ
1. (なければ)Scriptsフォルダを作る
2. C#ファイルを作る
3. プログラムを記述する
4. 任意のオブジェクトにアタッチする
13
Scriptsフォルダを作る
ProjectタブのAssetsを右クリック→「Create」→「Folder」
名前を「Scripts」に変更
14
フォルダ管理はしっかりやろう!
C#ファイルを作る
ProjectタブのScriptsを右クリック→「Create」→「C# Script」
名前を「Ball」に変更
15
プログラムをかく
作ったファイルをダブルクリック
次スライドのようなVSCodeの画面が開くはず
16
プログラムをかく
別紙②の2-1. Ball.csと同じプログラムをかいていく(コメントはどっちでもいい)
コピペしちゃってOK
http://nanzanmmcwiki.net/pc/le
cture/unity/ex2
18
【スクリプト解説①】
C言語で言う、「#define」にあたる構文
初期値などの設定に使う
float型は,小数でもいける型
小数は「0.5f」のように,後ろにfをつける(整数はどっちでもいいが,fをつけるとfloat型を保証する) 19
【スクリプト解説②】
オブジェクトのコンポーネントを取得する
「Velocity(速度)」の数値を変更するために、BallのRigidbody 2Dを取得した
変数型varは,コンパイル時に自動で変数型を設定してくれる 20
【スクリプト解説③】
乱数を生成するRandom.Range()
メソッド
Random.Range(最小値, 最大値);
int型とfloat型に対応
X, Y方向を取得することで角度を決める
21
【スクリプト解説④】
方向×速さで、速度を出す
Rigidbody 2Dがもつvelocityという値に代入
一番右の値はおまじないです22
【Vector型】
その名の通り,ベクトルを保存するUnity独自の変数型
Vector3(float x, float y, float z);
使うときは基本的に、前にnewをつける
23
オブジェクトにアタッチ
さっきのBall.csを、HierarchyタブのBallにD&D
アタッチできているかをInspector
で確認
24
いざ、実行!
Ctrl + Pでゲームを実行してみる
壁で跳ね返らない...
25
Physics Materialを作る
26
【Physics Material】
Rigidbodyに性質を追加するもの
「Friction」: 摩擦力→滑りにくさ
「Bounciness」: 弾性力→跳ねやすさ
これらの値を設定できるようになると思えばよい
27
Materialを作成
ProjectタブのAssetsを右クリック→ Create → Folder
名前を「Physics Material」に変更
作ったフォルダ内で右クリック→ Create → Physics Material 2D
名前を「BallPhysicsMaterial」に変更
数値を次スライドのように合わせる
28
Materialを装着
BallのInspecterタブで、Rigidbody
2Dの「Material」にさっき作ったMaterialをドラッグ&ドロップ
30
再度実行!
ちゃんと壁に跳ね返るようになったら成功!
31
次回予定(第3回)
ブロックを作成
ブロックを複製
消えるようにする
33
第2回 おわり
お疲れさまでした
34