万年素人からHackerへの道

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

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

    Boo Language Advent Calendar 2012 7日目 Title:「Listの便利なテクニック」

    URL: http://atnd.org/events/34622

    おはよう、こんにちは。こんばんは。
    結局今日も書くことになりました。

    ・ちなみに技評にのったよ
    http://gihyo.jp/news/info/2012/12/0101

    ・ここにはまだない(・∀・)
    http://matome.naver.jp/odai/2135217818800380701

    最近Pythonやってなくてよく忘れるが、
    BooもListとArrayを明確に分けてます。

    ・Array
    これがArrayです。
    ()カッコにstring型入れてます。

    my_array as (string) = (string, "one", "two", "three")
    for i in my_array:
        Debug.Log(i)
    

    → 結果
    one
    two
    three

    公式ドキュメントではアンダースコア区切りはしてませんでした。


    0番目に型を書けばその型になるようです。

    my_array as (string) = ("one", "two", "three")
    for i in my_array:
        Debug.Log(i)

    → 結果(同じ)
    one
    two
    three

    ・List
    今回主役のListです・
    []で書きます。UnityScriptの配列的な書き方なので混合しそう。
    Arrayと違うのは、どんなかたも入れれること。

    my_list as List = ["foo", "bar", "baz", 0, 1, 2]
        Debug.Log(my_list)
    
    for item in my_list:
            Debug.Log(item)
    

    → 結果
    foo
    bar
    baz
    0
    1
    2

    ・if文でこんな書き方ができます。my_list内に"foo"があるかを判別できます

    my_list as List = ["foo", "bar", "baz", 0, 1, 2]
    if my_list.Find({item | return item == "foo"}):
        Debug.Log("found foo");
    

    intの判別もできる

    my_list as List = [0, 1, 2]
    if my_list.Find({ i as int | i > 5 }):
        Debug.Log("found more than 5");
    

    "as int"を書かないとobjectと比較演算子使ってるとこのエラーが出るので注意。

    InvalidCastException: Cannot cast from source type to destination type.

    では次の方よろしくです。

    Unity Advent Calendar 2012 5日目 Title:「GoKit実践 シーン2. Tween Chain」

    URL: http://atnd.org/events/34621
    今日も僕。

    「GoKit実践 シーン2. Tween Chain」します。


    Project内の2. Tween Chainを開きます。
    「トゥイーン"ちゃん"」って読みそうになりました。
    「チェイン」でした。

    Cubeなど沢山あるが、uiだけ見ればいいと思います。

    すると、TweenChainGUI.csがInspector上にありますね。

    このシーンで行なっていることは複数のアニメーションを
    合体させてあたかも1つとして扱うことだともいます。

    ・TweenChainGUI.cs

    using UnityEngine;
    using System.Collections;
    
    public class TweenChainGUI : BaseDemoGUI
    {
        // ここでHierarchyの4個のキューブたちをInspectorで設定しておく
        public Transform[] cubes;
        
        void Start ()
        {
            // (1)前回同様TweenConfigで4つのキューブに対するTween用の設定です、あとで使ってます。
            var config = new TweenConfig ()
                .setEaseType (EaseType.QuadIn) // Tweenの種類
                .materialColor (Color.magenta) // マゼンタ色
                .eulerAngles (new Vector3 (0, 360, 0)) // Y軸に対して360度回転する(※オイラー角なのでラジアン角ではない)
                .position (new Vector3 (2, 8, 0), true) // 右に2上に8移動するよ。trueは今の位置から右上になるが、falseにすると、それぞれが同じ座標に行きます。右にもともといるCubeは左上に行く
                .setIterations (2, LoopType.PingPong); // 行って帰ってくるループです。(行き+返り=2ですね。)
            
            // 4つのキューブの一連の動作が何回やるか?今回は2回です。int型
            var chain = new TweenChain ().setIterations (2);
            
            // ここで一連の動作が終わった時に行うものを設定できます。
            // ラムダ式の引数がcとなってますが、ahoとかでもOK
            // cはchainの楽かな?
            chain.setOnCompleteHandler (c => Debug.Log ("chain complete"));
    
            // 4つのCubeに対してTweenをセットしています。(1)の設定ですね。0.5秒で終える
            foreach (var cube in cubes) {
                var tween = new Tween (cube, 0.5f, config);
                chain.append (tween);
            }
            
            _tween = chain;
        }
    }
    

    次回はお願いします
    多分僕になるので「シーン3. Tween Flow」かもね。
    タイムスケールのこともやるかも?