paiza C#チュートリアル終了! 今日からUnity
今日は何んと、PaizaC#入門講座が終わりました!!!!
まあ、そんなに理解はしていませんが、C#とは何? みたいな部分はわかった気がします。
そして!今日からUnityを始めます👏
まずは1度やったことのあるUnityちゃんのUdemy講座
転がるミニゲームを作るやつです。
今日はとりあえずUnity2019をノートPCにインストール、SDUnityちゃんのモデルデータなどが入ったサンプルアセットをUdemyからもらってきます。
解凍して、Projectフォルダにポンっ!
低スペックノートPCを使ってるので、インポートに15分くらいかかりました。
まずは、Planeの板と球を用意(板は床、球はプレイヤー)
球にPlayerと名前を付け、板の上に持ってきたらAddComponetからNewScriptでスクリプトを追加します。
まずは、急を物理的に動かしてあげたいので
Classの下に
Rigidbody 型の変数rbを宣言
Rigidbodyは対象のオブジェクトに物理的な法則を与えてあげる感じのものです。
スタート時に1度だけRigidbodyをPlayerに取得すればいいので
Void Startの下に
rb = GetComponent<Rigidbody>();
と入力してrbにRigidbodyをゲットしてもらいます。
次は動く部分の処理
今度は動く処理なので1度だけの実行では困ります。
1フレーム分だけ動いてあとは実行されないのではゲームになりません。
そこで、1秒間に何度も処理を繰り返すVoid Updateの下に動く処理を書いていきます。
var moveH = Input.GetAxis("Horizontal");
var moveV = Input.GetAxis("Vertical");
Vector3 move = new Vector3(moveH,0, moveV);
rb.AddForce(move);
チュートリアルではfloat形で指定していたけど面倒なのでvarにしています。
floatの方がいいのかな?(まだ理解していないのでいったん置いておきます)
まずは、moveHを水平方向に動くときの変数とします。moveVは垂直方向に動くときの変数。
Input.GetAxis()は方向キーを入力したときに-1~1の数値を返すことができるようになります。
これで、キーを入力したときに-1~1で値を返す変数が2つできました。
この2つの変数を3次元座標でどこに使うか指定してあげる必要があります。
そこで、Vector3 という型
これは3次元座標での位置とかそんな感じの値をいじるときに使うらしい。
moveというVector3型の変数を定義したら
new Vector3(moveH,0, moveV);
moveH とmoveVを水平と垂直の座標に入れてあげます。
そして最後にPlayerのRigidbody(rb)にAddForceで力を入れてあげます。
このとき、AddForce()の中身はさっき作ってあげた変数moveを入れてあげます。
rb.AddForce(move);とすると方向キーを押してる間3次元座標の水平と垂直方向に-1~1の力が加わるようになりました。
忘れてはいけない、球にAddComponentでリジッドボディを追加!
そして実行すると球がくるくる回りました!
今日はここまでです!
作っている間はうろ覚えでしたが、こうやってアウトプットをするとぐっと理解が深まります。
あと、モチベーションも上がります。
明日はVRC大規模オフ会の事前打ち合わせとかがあるのでブログを更新できるかはわかりませんが、少しでも進捗があったら更新をしたいと思います。
ここまで読んでいただきありがとうございます。
ps.ゴールデンウィークの予定が全くないので一日中unityいじってようかなって思ってます。
ちなみに講座はこちら
無料なので皆さんもやってみてください。
私がいいままで見たチュートリアルで一番わかりやすいうえにボイスロイド(弦巻マキ)の調声が神がかってます。