万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

!IsNormalized (normal) のよく分からないエラー。 Unity

http://unity3d.qatohost.com/questions/158411/isnormalized-normal.html
「Point light」のインスペクタのRangeが変な値になってたからだった。

C# Unity

C#じゃないとできないこと多すぎなのでC#でやりたい。
アセットもほとんどC#で行っていることが多くて連携がしにくい。
みんなに合わせてUnityScriptにしたり、Pythonを使ったつもりになるためにBooにしたが役不足

Too many characters in character literal

とかいろいろうざい
さらに、エラーで指摘するコード行もおかしい・・

Vectorにはnewを!

this.transform.rigidbody.velocity = Vector3(0, -25, 0);

N/A

this.transform.rigidbody.velocity = new Vector3(0, -25, 0);

this.transform.rigidbody.velocity = new Vector3.zero; // でもこれはnewいらん
this.transform.rigidbody.velocity = Vector3.zero; // こうする!

OK

文字列型には必ず「"」で!「'」はダメ

void OnTriggerStay (Collider trigger) {	
	if (trigger.gameObject.tag == 'tag') {
	}
}

N/A ※JSでは許されてたのに・・・

void OnTriggerStay (Collider trigger) {	
	if (trigger.gameObject.tag == "tag") {
	}
}

OK

hogeGui.text = "";

OK ※シングルクォートはもう使わない?PythonRubyとかの癖でシングルもOKという考えをなくさねば。

Instantiateやるときはas Hoge忘れずにね!

GameObject gameObj = Instantiate( hoge, this.transform.position, Quaternion.identity );

N/A ※as GameObjectがねーぞ! JSは許してくれるのに・・・

GameObject gameObj = Instantiate( hoge, this.transform.position, Quaternion.identity ) as GameObject;

OK

hoge.xとかのプロパティへの代入には気をつけるべき

transform.eulerAngles.y = 0;

N/A ※参照型なのか?書き込み禁止?

transform.eulerAngles = new Vector3(transform.eulerAngles.x, 0, transform.eulerAngles.z);

OK 元のxとyを使用してyだけ0入れる。Vector3なのでもちろん「new 」を!

outはなに?

RaycastHit hit;
if (Physics.Raycast (transform.position, -Vector3.up, hit, 100.0)) {
    float distanceToGround = hit.distance;

N/A

RaycastHit hit;
if (Physics.Raycast(transform.position, -Vector3.up, out hit, 100.0F))
    float distanceToGround = hit.distance;

OK ※hitの前にoutがいる。代入してないhitを使うのに必要か?C#の勉強不足だわ


IEnumeratorをわすれんな

void Zoomin () {
    yield return new WaitForSeconds(.7);
}

N/A ※voidじゃないよん

IEnumerator Zoomin () {
    yield return new WaitForSeconds(.7);
}

OK ※Booでも同じでハマったとこ。yieldはreturnみたいなもんだから返り値がIEnumeratorなんだね

floatは徹底的にFつけよう

yield return new WaitForSeconds(.7);

N/A

yield return new WaitForSeconds(0.7F);

OK