日々是unity#2

前回の続きである。
今回はRubyちゃんにHPを設定し、それを変動する項目だ。
これは目指しているゲームでは絶対使うところなので、何度も読み返して覚えていきたい所だ。

この記事は初心者が練習問題を解く過程を書いたものです。
復習がてら書いているので、その時思ったことなどをそのまま載せています。

最初のステップでは最大HPと現在のHPを定義して、それを変動できるようにスクリプトを書いている。
なんとなく書いてあることがわかるようになってきたが、amountとは?
「unity amount」で検索しても出てこない。
まさか、普通に英語なのか?私は遊戯王英語しか読めんぞ。
Google先生に聞いてみると「額」、「量」と返ってきた。
つまり量をint型にしてるってことであっているのか。

そして次のステップへ。
ついにゲームオブジェクトへインタラクトできるようにするらしい。
コライダーは当たり判定としても使えるが、IsTriggerにチェックを入れると移動検知みたいなこともできるのか。
これにより、回復アイテムを取得できるようになる。

最後にキャラクターコントローラーにプロパティを定義するらしい。

public int health { get { return currentHealth; }}

これは、パブリックになっているhealthはcurrentHealthを返しますよ~、ということだろう。
コントローラー内でcurrentHealthを使っているがパブリックにしたくないけど、他のところにも使いたいという時が来た時に、こういったことをするらしい。
getが読み取り専用なので参照したいときのみ使うとか、そんな感じだろう。

さて、次はこの逆にダメージを与えるオブジェクトを作成するらしいが、ちょっとサイコロの勉強をしたくなったので、今度はそっちに行くことにする。


参考にしたサイトはこちらだ。
困ったことにいろんなサイトが3Dのサイコロを転がしていた。
私は2Dのゲームを作る予定なので、2Dの教材が欲しいのだ。

ただ、当たり前だがこちらのサイトはutniylearnほど甘くはない。
やり方は書かれてるしコードも書いてあるが、コードが何を書いてあるかさっぱりだ。
ここは勉強と割り切って体当たりで挑むとしよう。

[SerializeField] private Sprite[] _diceSprite;

いきなり謎の文字列が飛んできたぞ。
まずもって全く読めないので、そっくりそのままコピペしてGoogle先生に聞いてみたところ、こちらのHPを紹介された。

こちらのページ内の例でとらえるなら、インスペクターでいじりたいし他のクラスでも参照したいけど、他のクラスではいじれないようにしたいというところか。
先ほどのgetとの違いはインスペクターで操作できるかどうかだろう。

public void RollingDice()
{ StartCoroutine(LoadDice()); }
private IEnumerator LoadDice()

本当に読めない文字が来た。ころうていね?
調べてみたところコルーチンと呼ぶようだ。
呼べたところで意味は分からないが。
で、このコルーチンでは一「定時間待つ→処理→待つ→処理」のような処理を一つの関数でまとめて書けるものらしい。

こいつは便利だ。
一つ一つ書くとどうしても時間かかるし、ミスが多くなってしまう。
サイコロもそうだが、いろんなところで応用が利きそうな魔法だな。
↓こちらを参考にさせてもらった。

で、出来上がってボタンを押しコロコロする。
たったこれだけなのに楽しいではないか。
これにあとは出た数字を出力する仕組みを入れれば、土台は完成しそうだ。

この記事が気に入ったらサポートをしてみませんか?