!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 ※シングルクォートはもう使わない?Python、Rubyとかの癖でシングルも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