Qiita初投稿です…。
Unityでちょっとしたゲーム作ってみて、それとなく形になってきたので投稿してみます。
半分趣味でしたが、プログラムの勉強にもなりやってみて良かったです。
今回の投稿はUnity使った事無い人向けです。キャラの動かし方程度のレベルの話です。
「Unityでどうやってゲーム作るの?」「どうやってキャラが動いてるの?」
案外作るの難しくないですよーってのが伝われば良いかなと思います。
■Unityとは?
具体的な話に入る前に簡単にUnityについてお話します。
ゲーム制作ツールUnityではプログラム言語はC#を使用します。
C#でコードを記述したことはありませんでしたが、Java等と基本の文法は同じなのでJava等扱った事のある方は問題ないかと思います。
Unityはゲーム制作のツールなので、よくあるHPバーを作ったり、オブジェクトに重力をかけたり等もできます。
ほんとに出来る事が多く自分もちゃんとツールを把握しきれていません。笑
■ゲーム作るのって難しい?
ゲーム自体の難易度によりますが、オブジェクトの生成や移動方法が理解できれば、ある程度作れる気がします。
最初は紐づきが分からず苦戦しましたが、途中から想像通りに組み込めるようになってきました。
■どうやってキャラとか動かすの?
下記の流れでキャラを動かします。
- C#スクリプト(C#コード)側でUnityに登録している画像を呼び出す
- 生成したオブジェクトを配置する
- 配置したオブジェクトを移動させる
- ゆっくり動かすためにUpdate()メソッドを使用する
1. C#スクリプト側でUnityに登録している画像を呼び出す


3. 配置したオブジェクトを移動させる
◎下記のコードでオブジェクトを移動させることができます。
obj.transform.Translate(0.1f, 0, 0);
Translateというメソッドがあるみたいです。
配置したオブジェクトの位置から指定した値だけ移動します。
※このコードは、配置のメソッドなので瞬間移動します。
キャラがゆっくり動く原理については後述します。
4. ゆっくり動かすためにUpdate()メソッドを使用する

◎Update()メソッドについて
実はUnityでスクリプトを生成した場合、Start(){}とUpdate(){}がデフォルトで付いています。
ツールでゲームを再生すると、一度Start(){}を読み込み、それからは常に繰り返しUpdate()の中の
処理を読み込みんでいます
◎使用例
例えば、こうやって使えます。
Update(){
obj.transform.Translate(0.1f, 0, 0); ←これが何回も読み込まれる
}
◎上記のコードの結果
obj.transform.Translate(0.1f, 0, 0);では0.1fだけ右に配置されるのでこれをUpdate()が繰り返す
ので、徐々に右に移動しているように見える、という仕組みです。
「小さな瞬間移動を繰り返し行うことによってゆっくり動いているように見せる」ってカンジです。
何となく簡単に作れそうってイメージ付きそうですかね…?
まあ触ってみないと分からないこと多いですよね。笑