UnityくんのC# 個人的まとめ1
もっとUnityくんのこと知りたいな
日本語で頼む
プログラミングとかまじでなんにも触ったことない俺のためのまとめ
忘れないように復習と復讐を兼ねて少しずつまとめていこうと思う
とりあえず覚えているところから
中身
・とりあえずだいたい単語の組み合わせでなんとかしてる
・単語間はスペースかカンマで区切ったり区切らなかったりしろ
・処理の終わりにはセミコロンをつける、忘れるな。
・単語とかはUnityくんが用意してくれたり、自分で名付けたり
・上から順に処理していく
Unityくんが用意してくれた単語に対して、そのままでは不定形なので
箱を用意してあげる(任意の名前をつけて箱にしてあげる?)
箱はUnityくんが用意してくれた単語に沿った対応をしてくれる
箱の中身はあとで詰めたりする
一番うえのほうにあるこいつらから
こいつら何? 作りたての純真無垢な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 を信じろ。
これはイケメンが用意してくれた問題
この辺はなんとかなくわかるようにはなってきた
わかってることがわからない
これからもちょくちょくこうやってまとめていこう。