万年素人からHackerへの道

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

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    !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