プログラミングしたことない人がゲームを作ってみる備忘録

プログラミング経験ゼロから頑張っています。

Unityチュートリアル「はじめてのUnity」のブロック崩しと同等をC#で::(3)動くボール をやってみた①

次はボールを動かすようです。うわあ、一気に本格的というか難しそう。

まずは、ボールを置きます。
f:id:gardenlove:20180605100130p:plain
①GameObject → ②3DObject → ③Sphere で、球体を追加します。
できた球体は、Ball と名付けました。

そしてBallさんを選択した状態で、
f:id:gardenlove:20180605100136p:plain
①Component → ②Physics → ③Rigidbdy
とします。

ちなみに、Physicsは物理という意味、Rigidbdyは剛性という意味だそうです。

すると、ステータスバーみたいなところに、Rigidbodyが追加されました。
f:id:gardenlove:20180606123747p:plain

一つ一つの意味はこんな感じらしいです。
f:id:gardenlove:20180606123907p:plain

さてどんな動きをするのか試してみます。
f:id:gardenlove:20180606124316p:plain
ここの再生ボタンを押します。すると、

f:id:gardenlove:20180606124604p:plain
ひゅーんとボールが落ちていきいました。

ただこれは、Y軸方面へ落ちています。ゲーム盤はX軸とZ軸の平面に設定されていて、ボールがY軸方面へ落ちてしまうということは、ゲーム盤の底を蹴破り、下へ落ちているということです。これでは困るので、

f:id:gardenlove:20180606123907p:plain
ここの、Use Gravity のチェックを外します。

これで、ゲーム盤に重力の影響を受けない一つのボールを設置できました。
次はこのボールをついに動かす予定です。

Unityチュートリアル「はじめてのUnity」のブロック崩しと同等をC#で::(2)色を変える をやってみた

さて次は、色を変えます。

f:id:gardenlove:20180605005846p:plain
まずは、①Create → ②Materialを選択。
このキャプチャーだと、①Createが隠れていますが、このあたりにあります。

f:id:gardenlove:20180605011237p:plain
NewMaterialとあるボールが追加されました。

f:id:gardenlove:20180605011348p:plain
今回は色を変更するので、このスポイトの隣の色のところをクリックします。

すると現れました、カラーピッカー。
f:id:gardenlove:20180605011453p:plain
壁の色は茶色のイメージなので、そんな感じの色にしました。

f:id:gardenlove:20180605011524p:plain
ボールの色が、茶色になりました。それをドラッグで、色変したいCubeへひょいと持っていきます。
左右と上部の色を変更しました。

このMaterialの便利なところは、Materialを変更すると、適応したObjectも一瞬で変更されるところです。今回、この壁をやっぱり青にしたいなと思えば、Materialの色を変更すれば、たちまち左右と上部の壁の色も青になります。
f:id:gardenlove:20180605012502p:plain

これって便利よねえ。すごい!

ステージ作り②

さて、どんどん進めていきます。

まずはまっさらな世界に、四角を生み出します。

f:id:gardenlove:20180601115720p:plain
①GameObject → ②3D → ③Cube と。

f:id:gardenlove:20180601115435p:plain
毎度おなじみ、立方体のあいつが出現しました。

f:id:gardenlove:20180601195121p:plain
立方体の大きさを変えます。
マウスでびよーんとやってもいいんですが、後で楽なように、きっちりと数値を指定しました。
X方向に10、YとZは1。
ポジションも変更です。
Z方向へ10移動しました。
そして、名前も変更です。上の壁なので、TopWallとしました。

f:id:gardenlove:20180601123014p:plain
このままだと見づらいので、真上から見たような視点にしてみます。
Y軸からのぞき込むようなイメージなので、こんな感じ。
この視点変更はあまり思うようにいかないことが多く、触っているうちに訳が分からなくなるので、まだまだです。

f:id:gardenlove:20180601123143p:plain
全体を把握しやすくするために、縮尺を変えます。これはマウスホイールで調整。


次は下の壁を作ります。
上の壁をコピーします。
f:id:gardenlove:20180601200216p:plain
上の壁を選択した状態で、①Edit → ②Duplicateを選択します。
Duplicateってどういう意味だろうと調べてみたら、「複写する」という意味でした。ありがとう、グーグルさん。

f:id:gardenlove:20180601200225p:plain
一見何も変化がないように見えますが、ちゃんとできています。きっと全く同じものが重なっているからわからないだけね。

f:id:gardenlove:20180601200235p:plain
複製したTopWall(1)をリネームして、移動します。ここも数値を入れてしっかり。
そうしたら姿を現しました。

次は左右の壁です。
f:id:gardenlove:20180601202957p:plain
下の壁を複製し、リネームします。
そして、大きさはx方向は1、Z方向に20にします。
上下の壁がz方向に+10と-10の位置にあるので、左の壁は長さ20でぴったりのはずです。
(ただ、壁の厚み10は計算に入れていませんが)
で、位置を考えると、上下の壁の長さは10ですから、x方向に-5~+5のところに横たわっています。なので、位置は-5としたいところですが、そうすると壁の厚さの分めり込んでしまうので、-5.5としました。

そうしてできた左の壁を複製して、右の壁の位置に配置します。

f:id:gardenlove:20180601203007p:plain
こんな感じで、ブロック崩しのステージができました!

四角を4つ配置しただけですが、うん、頑張りました!!

ステージ作り①

さて、ブロック崩しを作るようです。
ざっと出来上がりは、以下のようです。
・長方形のステージ
・ブロックが上部にたくさん配置されている
・ボールが一つあり、長方形のステージの壁に当たると跳ね返る
・ボールがブロックに当たると、ブロックが消える
・下部に、ユーザーが操作できる小さな箱があり、それでボールを打つ

ごくごく一般的でシンプルなブロック崩しです。
頑張って作ってみます。

f:id:gardenlove:20180601112846p:plain
えーっと、Newを押すでしょ。そして…。

f:id:gardenlove:20180601112916p:plain
名前はblockにして、他はよくわからないのでデフォルトにしておいて、Create Project、と。

f:id:gardenlove:20180601113501p:plain
とりあえず、まっさらなページができました!

C#はこれにて撤収→unityを操作する

さて、一週間でC#を身につけるのを、6日目までやりました。
ここまできて、どうにもこうにも7日目のやる気が出ないので、C#はこれにて撤収。
あとはやりながら何とかしていきます。
目的は、unityでゲームを作ることなので、unityを触りたくて仕方がないのです。

なので、ここからはunityを操作します。
チュートリアルはこちらを参考にします。
[超初心者向け]Unityチュートリアル「はじめてのUnity」のブロック崩しと同等をC#で::(1)ステージ配置

では次からやっていきます。

6日目 クラスとオブジェクト②

前回の続きです。
色々やってみて、何とかデバッグ実行ができるはできました。

f:id:gardenlove:20180525002011p:plain

program.csを開いた状態でデバッグを押すと、グレーアウトしておらず、目的のボタンが押せました。

しかし実行すると…
f:id:gardenlove:20180525002118p:plain

あーん、何も出てこないよう。
原因は分かりません。

はあ。もうここはちょっと飛ばします。概念のみ理解に努めます。


追記
と、完全にあきらめていたんですが、ちょっと心当たりがあったのでやってみました。
この参考にしているサイト、結構誤字が多いのです。
program,javaじゃなくて、program.csのファイルに書くんじゃない?と思ってやってみたら、見事にできました。そうだよね、唐突すぎるよね、java
ちょっとやる気を失っていたんですが、これで持ち直しました。

6日目 クラスとオブジェクト①

ついに6日目。ラスト2日です。
どちらかというと、概念のお話のようです。

まずはよく聞くけれどその実態は全然理解していなかったカタカナから。

クラス→設計図
オブジェクト→設計図を元に作った製品
メソッド→製品を操作する
フィールド→製品のデータ

んー?合っているのかしら。
書きながら、何となくしか理解していません。
まあ、やっていくうちに理解できるかしら。

とりあえず、

プロジェクトSample601を作成し、ファイルPerson.csを追加し、以下のプログラムを入力してください。

とのことなので、頑張ります。

と思いましたが、…わからない!
「ファイルPerson.csを追加し」
ここの一言が分からない。どうしたらよいのか。
説明、これだけ。
f:id:gardenlove:20180523102756p:plain
f:id:gardenlove:20180523102807p:plain

これらを見る限り、「ファイルPerson.cs」を追加しなくてはならない他に、「program.jave」ってのも、さらっとあるではないですか。
これらを「追加」しなくてはならないようですが、そのやり方は書いてありません。

どこから追加するのか、どうやったらよいのかわからず、色々なところを探し回りました。
で、何とかこれかなというのを発見。
f:id:gardenlove:20180523103717p:plain

この追加→ファイルでいいのかな。
しかしこれでファイルを追加すると、まっさらな画面が…。
今までは上のほうの
using System~~
のところは書いておいてくれたのに、今回は自力。
まあいいや。どんどん書いていきましょう。
f:id:gardenlove:20180523110358p:plain
f:id:gardenlove:20180523110410p:plain

よし実行!と思ったら、あれ?グレーアウトしている…。
f:id:gardenlove:20180523142324p:plain

んんん~!お手上げです。