この戦いはブログに残す

読みに行きますよ、必ず

UnityくんのC# 個人的まとめ1

もっとUnityくんのこと知りたいな

日本語で頼む

プログラミングとかまじでなんにも触ったことない俺のためのまとめ

 

 

忘れないように復習と復讐を兼ねて少しずつまとめていこうと思う

とりあえず覚えているところから

 

中身

・とりあえずだいたい単語の組み合わせでなんとかしてる

・単語間はスペースかカンマで区切ったり区切らなかったりしろ

・処理の終わりにはセミコロンをつける、忘れるな。

・単語とかはUnityくんが用意してくれたり、自分で名付けたり

・上から順に処理していく

 

 

 

Unityくんが用意してくれた単語に対して、そのままでは不定形なので

箱を用意してあげる(任意の名前をつけて箱にしてあげる?)

箱はUnityくんが用意してくれた単語に沿った対応をしてくれる

箱の中身はあとで詰めたりする

 

一番うえのほうにあるこいつらから

f:id:terabogii:20191021125756p:plain

 

こいつら何? 作りたての純真無垢なC#くんを開くと上の3行目まではある

イマイチわかってないけどUnity内でUI(テキストとか?)を使おうとする時に

using UnityRngine.UI;

とかって記述を加えるとうまいこと使えるっぽい、知らん。次。

 

public class (C#につけた名前、aと名付けなたらa) : MonoBehaviour

 

public 公のって意味だろうから多分他から参照させたい時につけとばいい?

逆に private なら他からは参照できない(はず)

 

class 知らん

 

名前をつけられるところは箱の名前とかそんなの

 

MonoBehaviour 誰だよ

 

次に変数を宣言できる所

 

ここでどんな箱を用意しておくか宣言したりする

ここで箱を用意しておかないと、あとの処理で箱を指定しても

そんなもんねーぞってUnityが怒る、なんでそんなすぐ怒るの?

 

[SerializeField]くんは優秀、publicくんとの違いはわかってないけど

2つともC#をアタッチした時にインスペクター上で色々弄れるようになる優れもの

オブジェクトの指定とかをD&Dで出来るの最強感ある

でもイケメンの友人曰く弱点もあるとかなんとか、俺は最強だ

 

void Start()

void Update()

 

Startのほうは、起動したときのみの処理で

Updateは毎フレーム処理を繰り返す哀れな子羊

 

最初に取得させておきたいのをStartに入れて

細かな動きをUpdateに入れていく

 

そしたらUpdateのほうがめちゃくちゃ長くなるな?

だから機能毎にわけてやる(なんだっけ、メソッド?)

分け方はUpdateの外に切り離して下のように記述する

void (任意の名前)()

{

(処理)

こうすると分けられるが、このままでは機能しない

(任意の名前)();

とUpdate内に組み込むと、Update実行時にvoid (任意の名前)()が発動する

 

void Update()

{

(なんか分割できそうなむっちゃ長い処理);

}

 

をすっきりさせようとしたときに

 

void Update()

{

ABC();

(めっちゃ長い処理の分割した残りの部分);

 

void ABC()

{

(さっきまでUpdate内にあっためっちゃ長い処理の分割した一部);

}

とすればいい

 

何故分ける必要性があるかというと視認性の問題と

分けることによって問題箇所の早期発見につながったり

とにかくわかりやすい、ということは後々重要らしい

ちゃんと分けていこう

 

バグを起こしている箇所を見つけるために

Debug.Log や print をつかって

どこまで処理が続行されているかを確認する手段がある

これを覚えておくの大事そう

 

if は最強、if をがんがんつかっていけ、恐れるな

if(条件A)

{

if(条件B)

}

みたいなこともしていいらしい

Aが駄目だった時はスルーしてBに入るらしい

Aが駄目なら中にいるBも発動しなくね? と思っていたがそうでもないらしい

如何に if を使いこなすかが課題、 if を信じろ。

f:id:terabogii:20191021135606p:plain

 

これはイケメンが用意してくれた問題

この辺はなんとかなくわかるようにはなってきた

 

わかってることがわからない

これからもちょくちょくこうやってまとめていこう。