万年素人からHackerへの道

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

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

    Unity Advent Calendar 2012 12日目 Title:「GoKit実践 シーン4. Path Tween」

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

    またまた万年素人の僕の番が回って来ました。

    今日は引き続きGoKitのシーン「4. Path Tween」します。

    なんと、Hierarchyが少し多い!

    今まで通り気にするのは「ui」だけと思ったが、「LookTarget」も気にしなければならないと思う。
    さらに、「Cubeの子にCylinder(円柱)があるもの」も気にするべき

    「Cubeの子にCylinder(円柱)があるもの」は戦車に見せたてたいのかもしれません。(以下”戦車”と呼ぶ)
    ↓これが横から観たスクリーンショットです。

    Inspectorにはこのようになってます。

    Cube・・・戦車のTransform
    LookTarget・・・・Sphare(球)のTransform

    です。

    肝心のPathTweenGUIを呼んでみると短い!!
    ・PathTweenGUI.cs

    using UnityEngine;
    using System.Collections;
    
    public class PathTweenGUI : BaseDemoGUI
    {
        public Transform cube;
        public Transform optionalLookTarget;
        
        void Start ()
        {
            
            // example showing how to create a GoVector3Path from a saved file that was made with the visual editor. Note: the web player cannot load files from
            // disk so we will make a path directly for it
    #if !UNITY_WEBPLAYER
            var path = new GoSpline ("demoRoute");
    #else
            // alternatively, paths can be created from an array of Vector3s
            var vectors = new Vector3[] { new Vector3( 0, 1, 1 ), new Vector3( 4, 5, 6 ) };
            var path = new GoSpline( vectors );
    #endif
            
            
            // create the Tween and set the path to be relative (this will make the cube move BY the values stored in the
            // path instead of TO them). autoRemoveOnComplete is also set to false so that the Tween stays in the GoKit
            // engine and we can start/stop/reset it at will using the playback controls
            //_tween = Go.to( cube, 4f, new TweenConfig().positionPath( path, true ).setIterations( -1, LoopType.PingPong ) );
            
            // optionally, the target can be set to look at the next path node
            //_tween = Go.to( cube, 4f, new TweenConfig().positionPath( path, true, LookAtType.NextPathNode ).setIterations( -1, LoopType.PingPong ) );
            
            // or the target can be set to look at another transform
            _tween = Go.to (cube, 4f, new TweenConfig ()
                .positionPath (path, true, LookAtType.TargetTransform, optionalLookTarget)
                .setIterations (-1, LoopType.PingPong));
        }
    }
    

    まずこれが重要だと思う

            _tween = Go.to (cube, 4f, new TweenConfig ()
                .positionPath (path, true, LookAtType.TargetTransform, optionalLookTarget)
                .setIterations (-1, LoopType.PingPong));

    戦車がTargetを見ることを行っているはず。
    LookAtTypeは今回「TargetTransform」だが、「None」と「NextPathNode」があった。
    これでターゲットの方向を見てくれるんだと思う

    ↓常に見てるスクリーンショット

    「NextPathNode」はよくわからなかった。

    pathはファイルを指定している
    これが実際に戦車の動く経路だと思います。
    一番重要かも?

    #if !UNITY_WEBPLAYER
            var path = new GoSpline ("demoRoute");
    #else
            // alternatively, paths can be created from an array of Vector3s
            var vectors = new Vector3[] { new Vector3( 0, 1, 1 ), new Vector3( 4, 5, 6 ) };
            var path = new GoSpline( vectors );
    #endif
    

    ブラウザで見るUnity Web Playerでは"なけ"れば、new GoSpline ("demoRoute")を使ってる。
    Unity Web Playerで"あれ"ば、Vector3でパス作ってますねw

    ちなみに、GoSplineクラスは「GoSpline.cs」に書かれてありました

    スニペットを記載してみますと、それぞれのプラットフォームでファイルの参照先を切り替えていた。

    Android

    jarPath.Combine ("jar:file://" + Application.dataPath + "!/assets/", pathAssetName);
    

    iOS

    Path.Combine (Path.Combine (Application.dataPath, "Raw"), pathAssetName);
    

    ・その他

    Path.Combine (Path.Combine (Application.dataPath, "StreamingAssets"), pathAssetName);
    

    なディレクトリにある「demoRoute」を参照していた。


    コミュニティでやたらと見かけるAndeeeeさん作成のCRSpline(「Catmull-Romスプライン」と呼ぶらしい)っぽい。
    ベジエ曲線ライブラリのスクリプト」だと書いてある。
    URL: http://forum.unity3d.com/threads/32954-Waypoints-and-constant-variable-speed-problems?p=213942&viewfull=1#post213942

    「StreamingAssets」ってなんだ?って思った

    拡張子見たら、〜.assetでした。どうやって作るのか?

    > cd /Users/sugita/GoKit/Assets/StreamingAssets 
    > ls
    demoRoute.asset            horseShoeSpline.asset
    demoRoute.asset.meta       horseShoeSpline.asset.meta

    テラシュールウェアさんが書いてました。
    URL: http://terasur.blog.fc2.com/blog-entry-266.html


    次は、最後の「5. Shake Variants」シーンだね。
    多分また僕の番。

    GoKit終えたら、NGUIのAtlas作成のツールのハックやろっかな?

    Catmull-Romスプラインについて何かわかったら書きます。
    そもそもこのファイルどうやって作るのかも分からないので・・。