万年素人からHackerへの道

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

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

    CoffeeScriptをインストールするときのエラー

    npm install coffee-script -g

    でインストールする際に

    npm ERR! Error: EACCES, open '/Users/ユーザ名/.npm/XXXXXXXXXX-coffee-script.lock'

    が出た。

    同じ現象の人がStackOverflowのサイトにあったので、
    URL: http://stackoverflow.com/questions/12533049/npm-wont-install-from-package-json-within-project

    このように権限を「.rpm」へ付与

    sudo chown -R shinriyo ~/.npm

    するといけるようになった。
    ※shinriyoはご自身のに置き換えてね。

    ・・・と思いきや次は

    Error: EACCES, mkdir '/usr/local/lib/node_modules/coffee-script'

    のエラーが発生。


    同じ現象の人がStackOverflowのサイトにまたまたあったので、
    URL: http://stackoverflow.com/questions/16878600/trouble-installing-coffee-script-on-my-macbook

    sudo chown -R shinriyo /usr/local

    ※shinriyoはご自身のに置き換えてね。

    UnityのSpahreからvertex一覧を取得。

        void Start ()
        {
            Mesh mesh = GetComponent<MeshFilter> ().mesh;
            Vector3[] vertices = mesh.vertices;
            int i = 0;
            foreach (Vector3 vertex in vertices)
            {
                GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
                Debug.Log (vertex);
            }
        }
    

    しかしvertexは実際の座標ではないようなのでこちらを見よう
    http://answers.unity3d.com/questions/129330/positions-of-vertices.html

    球に張り付くキューブを作ってみた。

        void Start ()
        {
            Matrix4x4 thisMatrix = transform.localToWorldMatrix;
    
            Mesh mesh = GetComponent<MeshFilter> ().mesh;
            Vector3[] vertices = mesh.vertices;
            int i = 0;
            foreach (Vector3 vertex in vertices)
            {
                GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
                Vector3 vec = thisMatrix.MultiplyPoint3x4(vertex);
                Debug.Log ("mesh1 vertex at " + thisMatrix.MultiplyPoint3x4(vertex));
    
                Transform cubeTrans = cube.transform;
                cubeTrans.localPosition = vec;
                cubeTrans.localScale = Vector3.one * 0.03f;
            }
        }
    

    このスクリプトを球(Sphare)に貼り付けてみる。


    *public new void Start について
    http://arongranberg.com/astar/download
    ここのフリーバージョンにあったコード。

    `MineBotAI.cs`
    `override`ではない。親クラスのメソッドを破棄している。
    URL: http://msdn.microsoft.com/ja-jp/library/435f1dw2(v=vs.90).aspx

    楽しく学ぶ Unity2D超入門講座

    楽しく学ぶ Unity2D超入門講座

    実践! ユニティちゃん トゥーンシェーダー2.0 スーパー使いこなし術

    実践! ユニティちゃん トゥーンシェーダー2.0 スーパー使いこなし術

    Unityゲーム プログラミング・バイブル

    Unityゲーム プログラミング・バイブル


    C# Delegateの可視性

        private delegate void OutputFuncDelegate();
    
        public Hoge (OutputFuncDelegate[] funcs)
        {}
    

    Hogeメソッドはpublicなのに、引数のfuncsはOutputFuncDelegateのDelegateの配列はprivateなので

    error CS0051: Inconsistent accessibility: parameter type `OOTFuncArray.OutputFuncDelegate[]' is less accessible than method `Hoge.Hoge(Hoge.OutputFuncDelegate[])'

    のようなエラーが出る。

        public delegate void OutputFuncDelegate();
    

    のようにpublicにする。

    StopCoroutineでハマる

    StopCoroutine

        // Hogeという引数のいるメソッド
        public void Hoge (Vector3 pos)
        {
            StartCoroutine ("Hoge");
        }
    
        // Hogeといった同名の引数なしのメソッド
        public IEnumerator ImperialCross ()
        {
            yield 0;
        }
    

    というような、普通のHogeメソッドと同名の、コルーチンのHogeメソッドがあった場合、
    StartCoroutineは自分自身を呼んでしまい、引数が必要だという旨のエラーが出てしまい、
    自分自身を呼び出してたことに気が付かずハマった。