Unityの初心者やかんのメモ その2

シェアする

目次

Unityの初心者やかんのUnityで使用する C#のソースコードの備忘録です。

前回までの勉強の経過。(これもただのメモの断片です。)

Unityの初心者やかんのメモ その1
Unityの初心者やかんの備忘録です。 この本 Unityの教科書 Unity 2020完全対応版が到...
.
やかん
 ソースコードのみを書き出す練習に移行します。バグというか、誤字があるかもしれません。それと教科書にあるソースコードは改変、変更したうえで学習しています。教科書のデータの著作権を守ることはもちろんですが、改変して動作確認することで学習の質が深まります。 ぼちぼち Unity 上で実施することにします。

ねこ
GitHub GistにGist(コードの集まり)を公開して、ブログに引用しなおすと読みやすいね。

.
ねこ
公式マニュアルの(更新される)Unityスクリプトリファレンスへようこそが一番、信頼のおける資料です。

empty


ねこ
ファイル名を「Test」にするなら、5行目は public class Test : MonoBehaviourにする必要があります。
クラス名の先頭は大文字ではじめるのが一応正しいです。だからファイル名の先頭も大文字にするのをおすすめします。

1.四則演算

2.変数同士の演算

やかん
using System.Diagnostics; が勝手に 毎回一行足されて困っているのっ  
ねこ
とりま、その一行を毎回 消すべしwww

変数の値を一定数増やしたい

変数の値を増加させる

ほかの四則演算でも同様。

ねこ
int u = 3; があったとして、そこに2を足したいときのストレートな方法は、u = u + 2;

変数の値を1だけ増加させる インクリメント演算子

文字列同士の連結

文字列同士の連結2

+=演算子を使って連結しているため、str1の値が変化しています。

文字列と数値の連結

関係演算子

==  左と右が等しい場合に真

!= 左と右が等しくない場合に真

> 左が右より大きい時に真

< 右が左より大きい場合に真

>= 左が右 以上の場合に真

<= 右が左 以上の場合に真

if文の使用例

if-else文で条件分岐

if文の追加

変数のスコープ

変数は宣言した行を含んだ{}内でしか使えない、これを変数のスコープと呼ぶそうな。
if文の内側で宣言した変数は、if文の外側では使えない。

for文の例

for文の例 偶数だけを表示するサンプル


Unity で実施

for文の例 カウントダウンさせるサンプル


Unity で実施

for文の例 合計値を求めるサンプル


Unity で実施

配列の例

配列と繰り返し文は相性◎
「 new 」は新しく「作る」の意味。
intは整数型 int[]は整数の配列型。配列の宣言の後に 作る箱の数を書く。
ただし配列は0番の箱から数えるので、先頭の番号は0となる。
配列は箱に入れる値を「要素」 箱の数を「要素数」といいます。


Unity で実施

配列の作り方 簡易verの例 [ ]ではなくて { }

あと要素ごとに、スペースの入れ忘れにも気を付けようとおもいました。

ねこ
カンマ(,)は必須だけれど、スペースは別になくてもいいのよ

Unity で実施

条件を満たす要素のみ表示するサンプル


Unity で実施

for文で平均値を求めるサンプル


Unity で実施

C♯で整数同士で除算をすると、小数点以下が切り捨てられていますので、便宜上 1.0fをかければよいと ( ..)φメモメモ

for文で 整数同士の割り算すると小数点以下が消されるので、1.0fを掛ける


Unity で実施

ねこ
 float average = 1.0f * 10 / 3; で、小数点出すために1.0fかけてるとこは、整数(int)同士の計算にならなければいいので、(float)10 にして小数点付きの数値(float)で扱う手もある。
ねこ
1.0f * 10 / 3; って形だと、あとで修正追加で込み入ってきたら 1.0f * (10 / 3); に括り方して間違えやすいかも。
ねこ
掛け算の計算は、割り算の計算より先にされるっていう優先順位があります。先に1.0f * 10 が計算されて、10.0f / 3 になる。・・・で()でくくった中はさらに優先順位が高いので、1.0f * (10 / 3); だと、計算順序がかわって、 10 / 3 = 3 がまず出て、1.0f * 3 = 3.0f になるのだけれど・・・ついて来れてる?
やかん
(`ェ´)ピャー

引き数も返り値もないSayJapanメソッド

返り値なしなので 『void』を指定して、引数がないので メソッドの後ろを()とし空白にします。

Unity で実施

引数を表示するメソッドの例


Unity で実施

2つの値を足したものを返すメソッドの例


Unity で実施

引数に変数を使った 引数と返り値のあるメソッドの例


Unity で実施

問題発生 Playerクラスの作成ができません なぜでしょうか?(解決済みです)


Unity で実施←バグです。(o´_`o)ハァ・・・
資料a (ヒント:この画面の中のファイルに、大文字にすべきだったファイル名がありました^^;)

資料b

資料c

問題解決 Playerクラスの作成ができました 22行目 public class test : MonoBehaviourにすればOKでした。

ねこ
クラス名の先頭は大文字ではじめるのが一応正しいので、参考にした本では、ファイル名を「Test」にしていたのではないですか?
やかん
あっ……やかんは、ファイル名を「test」にしていました!!! 
ねこ
ファイル名が「test.cs」になっているから、『ファイル名とクラス名が合ってないっ』てエラーがでていますね
やかん
(`ェ´)ピャー クラスをいじるまで問題が表に出なかっただけでした!!

GitHub Gistでは、書いたソースコードの修正が出来ますが、数時間費やしたので、下記に貼りなおします。


Unity で実施 アタッチメントもできました。↓が正常な処理画面です。

mp4動画

クラスの作成は成功したので、クラスの使い方、アクセス修飾子を自習してきます。
次は、Vectorクラスの実践をしてきます。( ´Д`)=3 フゥ

アクセス修飾子

public修飾子

(参照設定があれば)他のプロジェクトからでもアクセスができる修飾子です。すべてのクラスからアクセスできます。

internal

同一アセンブリ(exeとかdllとかファイル単位)内のクラス内のみアクセス可能な修飾子です。他のプロジェクトからは、(参照設定があっても)internalの場合はアクセス不可です。
修正範囲が同一アセンブリ内に限定されているため、修正が管理しやすいのでよさげです。

protected

同じクラスとそのサブクラスからアクセスできる修飾子です。
クラス内部と派生クラスの内部から限定でアクセス可能な修飾子です。派生クラスとは、継承しているクラス(親子関係の子サイド)です。
基底クラスだけで使用する場合にはprivateとし、派生クラスにも使わせる必要がある場合はprotectedを実装する。
違うアセンブリであっても継承関係にあればprotectedの参照が可能。

private

同じクラス内部からのみアクセスできる修飾子です。

Vectorクラスとは、float型の x,y,zの3つの値のことです。

構造体(別名 Vector3クラス 変数とメソッドをひとまとめにするシステム クラスより高速に動作)には、メンバ変数として、 x,y,z があります。
Vector2には、メンバ変数として、 x,y があります。

座標の指定や、加速度や力、移動速度などのベクトルなど物理的な数値として使えます。

座標として使えば、x=5 y=4 とすると (5,4) の座標にオブジェクトが配置されます。
また、ベクトルとして使えば、オブジエクトのある位置から、x方向へ5、y方向に4進むことを意味します。
Vector2同士の加算や減算もできて、つるつる滑る床や、ネバつく沼地など、移動のベクトルに影響を与える使い方もできます。
float型の x,y,zの3つの値であるメンバ変数の値にアクセスするには、変数名.x や 変数名.y と記述します。

Vector2クラスの持つメンバ変数に加算する例


Unity で実施

Vector2同士の減算の例 Vectorのクラスの用例を実践してみた。


Unity で実施

Unity のWebGLプレイヤーを設置しているURLをブログ記事に埋め込むタグの例です。

if(length >= 0) { } else if(length == 0) { } else { } の例

ゴールに幅を持たせる例

0より大きくて1より小さければ って意味

WebGLでゲームをビルドする時 エラーがでたらチェックすること

ねこ
ソース編集するときに起動するVisualStudioってソフトとの連携部分で、文字コード関係のバグがあるみたいで、古いバージョンにしたら直ったっていうのがあります。Unity の Windowってメニューから、Package Manager をひらいて、左側の、Visual Studio Editor のところを、左の三角マーク押してひらいて、下にSee other versions って出てくるので、それをおして、1.0.11 のところをおして、右側の下のボタンの、Update to 1.0.11 を押すで直ることもあります。

ねこ
CompressionFormatは、一番下のPublishing Settingsの中。まあ英語だとわかりにくいけど要するに、DevelopmentBuild=正式リリース用に不要なものを消したりしない(バグってて必要なものまで消してる模様)。Publishing Settings=書き出し設定、で、CompressionFormat=圧縮形式(書き出したファイルを軽くするために圧縮する機能なのだけけど、バグってて圧縮すると読めない模様)……なので、CompressionFormatはDisabled(無効)に

ねこ
File メニューから、BuidSettings…のところも、公開用もチェックを入れておいたほうがいいという話も聞いたような……聞かなかったような……
ねこ
設定変更したあとは、メインのエディタ画面に戻ったあと Ctrl+S を一回しておかないと設定が元に戻ることもあります

ブラウザゲームの書きだし設定について 追記

ねこ
エディタで編集中に開かれてるシーンっていうのは、あくまで今開いてるシーンです。
書き出し後に最初に開くシーンではないので、どれが最初に開くシーンになるかは、書き出し設定のこの部分の順番で決まるっぽい。
SampleSceneのほうが上に来ていたりすると、書き出し後にそちらを開くみたいで、それだと書きだしても当然なにも表示されないし、そこから本来の画面に移動する手段もないので詰みます。ちなみにシーンの順序の変更は、ドラッグアンドドロップでいけます。

やかん
 ( ..)φメモメモ 

習作はこちらのカテゴリです。

ソースの学習の続きはこちらへ続きます。
申し訳ないのだけれど、その3はスルーでお願いします。

※記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。