としるみSoftの制作ブログ

主に作っている作品の紹介や今やっている活動の紹介を書いています。おすすめポイントですらなくなっちゃった。

(UnityLearn)Ruby'sAdventureを作ってみた1

どもです、としです。

 

やっとこさUnityLearnのやりたかった項目の「Ruby's Adventure」を始めました。

自分的メモを兼ねてできた所まで簡単にまとめます。

Unityのバージョンは2020.3.12f1で、UnityHubを使っている前提で書きます。

 

learn.unity.com

 

目次

 

1:Unityエディタの設定

learn.unity.com

Unityエディタの設定自体は初心者本などの方が詳しいので、

ここではその辺りは省きます。

エディタ周りの説明を省くとここでは教材アセットのインポートがメインになってきます。

 

アセットのインポートには2通りあり、一つはUnityHubのLearn(使い方を学ぶ)から対象のアセットを取ってプロジェクトを作成する方法です。

説明のページのステップ3にもありますが、この方法ではエラーが出る可能性があるそうです。

ぼくはもう一つの方法の一度空のプロジェクトを作って、アセットストアからインポートする方法で作成しました。

が、こちらは使用しているUnity2020.3ではちょっと問題があり、

アセットストアがUnity上で使えなくなっていました。

f:id:toshirumisoft:20210730232502p:plain

アセットストアはWebブラウザで見てください

assetstore.unity.com

Webブラウザでアカウントに登録していくタイプに変わっていました。

 

アセットストアに付いたら目的の教材を探します。

今回はリソースの方が欲しいのでそちらを検索します。

f:id:toshirumisoft:20210730233015p:plain

これを探す

もう1つ確認用の完成プロジェクトの方もありますので間違えないように。

ここでUnityで開くを押すとすでに立ち上げているUnityでパッケージマネージャーが出てきます。

f:id:toshirumisoft:20210730233603p:plain

パッケージマネージャー

ここで目的のアセットを選んでインポートすればアセットのインポートは終了です。

インポート前にはアセットを最新版にしましょう。

 

 

2:メインキャラクターと最初のスクリプト

learn.unity.com

始めに新しいシーンを作りましょうと書いていますが、

すでにSampleSceneがある場合は名前を変更してやっても特に問題はないです。

 

ステップ2で画像を保存してインポートしようと書いていますが、

画像のリンクはページトップにあるのでそこまで戻ってページと同じ名前で保存して

説明通りに画像をUnityにインポートすればこの手順は終わりです。

 

配置やユニット周りの話はページを閲覧してみた方が早いです。

機械翻訳ですが変な日本語になっていないので進められると思います。

むしろ、前に読んだUnity本などではユニットの話は出てきませんでした。

 

RubyControllerというスクリプトをページ通りに作成して、

説明を読んだらページ通りにスクリプトを作成します。

その後先ほど作ったRubyオブジェクトにドラッグして追加(アタッチ)します。

ページで解説もしていますが、ここのスクリプトはVector2型の変数positionを作って、

そこにアタッチしたオブジェクト(Ruby)のtransform.positionを代入しています。

その後に作った変数positionのxに0.1f(float)を足して、

アタッチしたオブジェクトのtransform.positionに変数positionを代入しています。

(後の話になりますが、変数positionにはyも存在しています。)

 

ここまでできたらプレイヤーを再生してゲームを実行してみると、

Rubyオブジェクトが右にすっ飛んでいきます。

これはさっきのスクリプトで毎フレームpositionのxが0.1ずつ増えているからで、

動作が確認できればこの項目は完了です。

 

 

3:キャラクターコントローラーとキーボード入力

learn.unity.com

このチャプターでは初めにインプットの設定を確認するためにプロジェクトセッティングを開いています。

この前やったUnity本ではプロジェクトセッティングでphysicsのレイヤー判定の設定もここでやったので、プロジェクトセッティングは何かとお世話になると思います。

ステップ3で前のチャプターのスクリプトを手直しします。

始めにfloat型(小数点が使える数字の変数)でhorizontalというのを定義して、

Input.GetAxis("Horizontal")を代入するコードを追加しています。

これはステップ2にある程度書いていますが、入力の軸を検知して-1から1の値を検知して値を返しています。

返った値は計算されてからposition.xに足されています。

(四則演算は+-より*/の方が先)

これで、入力でキャラクターをx軸だけ動かすことができました。

この後ステップ8で縦方向の移動を自分で考えてみようと出てきますが、

ほぼほぼ横軸と同じ方法でいけます。

縦軸は「Vertical」の入力を使い、positionのyに入れないといけないのに気を付ければ問題ないです。

 

ステップ10でフレームレートの話を行っていますが、

チェックの為に増やしたコードは垂直同期やマイフレーム何回更新するかのコードみたいですが、このプロジェクトでは必要ないので後々必要な時に勉強すればいいと思います。

またこのステップはフレームレートでどのぐらい動きが変わるなどの説明をやっているだけなので、動作を確認出来たらスクリプトの0.1fを3.0fに変えてこのチャプターを終了させても問題なさそうです。

 

 

ここまでのまとめ

今できた範囲はここまでです。

プロジェクトを作ってキャラを配置して、スクリプトを書いてキャラを動かすまでが出来ました。

まだ初歩の範囲なのでまだ簡単だと思います。

むしろ先に何かしら本でやっていると復習がてらできる感じです。

 

この後はマップを作っていく感じですが、まだ全部終わっていないので次回です。

 

 

 

あとがき

ここまでの範囲だけではまだ少しわかりにくいですが、

先日までやっていたたのしい2Dゲームの作り方の方がこのUnityLeranより少し複雑なので、ぼく的にはこっちが先の方がよかったかもしれません。

もちろんどっちも知識として身になれば問題ないので、今後も進めていく予定です。

来週には続きのマップの範囲をまとめられるようにしていきます。

 

 

という事で今日はこれにて!

では!