• [unity3D]Googlefuを使う スプレッドシートからのインポート

    2014-09-09 14:37
    随分前のことですが、有料アセットのGooglefuをセールで買ってました。
    個人的にはgoogleのサービスに依存するのはちょっとと敬遠してたんですが(googlereaderみたいに終了したら使えないとかだと困る)5$という数字を見たら気がついたら決済終わってました。
    無料版もあるみたいですが10×10マスの制限があるようなので、どんなものか試してみる体験版的な感じ。

    ちょっと使わないと忘れてしまいそうなのでgooglefuを使ってデーターを読み取る方法をメモとして残しておこう、まずはデーターベースオブジェクトの作成をメモ。




    まずgoogleスプレッドシートで適当なリストを作る、赤線で囲ってあるところはもともと日本語で「シート1」というシート名になってて、これをそのままgooglefuで使うと・・・・

              奇蹟のカーニバル
    
              開     幕     だ
            n:       ___      n:
            ||    / __ \    .||
            ||    | |(゚)  (゚)| |    ||
           f「| |^ト    ヽ  ̄ ̄ ̄ /   「| |^|`|
           |: ::  ! ]      ̄□ ̄     | !  : ::]
           ヽ  ,イ  / ̄ ̄ハ ̄ ̄\  ヽ  イ
    このアセットはシート名に対応した専用のスクリプトやコンポーネントを生成するので大量のエラーを吐き出し、自動生成されたすべてのファイルを手動で排除する作業に追われることになる。

    Window > Googlefu でログイン画面が出るので、googleアカウントのIDとパスワードを入れてログイン(俺何回かここでgoogle側にブロックくらって手こずった)

    次にSettingsタブのPathsで出力するファイルのパスを設定する必要がある。




    これ全部設定する必要はないから、出力したいもののパスを設定しておこう。
    黒く塗りつぶしたのはユーザー名で、赤く塗りつぶしたのはプロジェクト名だ。

    ちなみにLanguageに日本語があるけどオススメしない、俺は上で書いた日本語名のシートと日本語翻訳されたgooglefuの二重トラップにどっぷりハマった。





    次に対象になるworkbookを選択、これはgoogleドライブに保存されてる中から選択する画面、他にはurlで指定、upload warkbookで手持ちのxls、xlsx、csv、ods、txいずれかのファイルを利用できるっぽい。

    ファイルを選んだらActivateを押すと次のtoolsに移る。



    exportの設定をいじって下のexport worksheetsで出力するシートを選択、今回は1ページしか用意してなかったからnameeditって名前のシートしか表示されてない。
    オブジェクトにそのままデーターベースを利用できる状態でアタッチする場合は上にチェックを入れてアタッチするオブジェクトを選択、Playmakerを使う場合もこっち(generate playmaker action~にもチェックを入れる)。

    何らかの理由で自前でxmlから読み込む場合は下の項目をチェックして一番下のボタンを押せば・・・






    こんな感じでデーターベースオブジェクトが出来上がる。

  • 広告
  • [unity3D]C#自習  listとdictionary

    2014-09-06 23:14

    同じことはjsでもできるけどメモしながらコツコツ覚えていく。

    using System.Collections.Generic;
    using UnityEngine;
    using System.Collections;

    public class list_test : MonoBehaviour {

    public TextAsset namefile;
    public int count ;
    List<string> test = new List<string>();
    Dictionary<string ,string> wahaha = new Dictionary<string ,string>() ;

    // Use this for initialization
    void Start () {
    test.Add ("ファッ!?");
    test.Add("クゥーン(失神)");
    wahaha["114514"]="いいよこいよ";
    wahaha["810893"]="おいゴラァ、降りろ";
    listtest ();
    }

    // Update is called once per frame
    void Update () {
    }

    void listtest () {


    Debug.Log (wahaha["114514"]);
    Debug.Log (wahaha["810893"]);
    Debug.Log (test[2]);
    }
    }



    • listは順番が存在してソートとかで順番を変更できる配列。
    • Dictionaryはkeyから配列を検索できるけど順番が存在しない配列。
    • new~<>の後に{,,,,}で最初からリストにある程度中身を突っ込める。

    xml読み込み関係のサンプルとかをあさってると
    List<Dictionary<string,string>>みたいに組み合わせて使えるっぽいことがとりあえずおぼろげに見えてくる。
    foreachとnameを使ってdictionaryに登録してるのがなんとか理解出来てきた。
    おそらくExelやgoogleスプレッドシートをイメージして、Listが縦列でDictionaryが横列なんだろう、nameは横列の場所を特定するのに使うし、listはソート機能を持っているからおそらくうまくやればdictionaryの中身を参照して並び替えができるんだろうな。

    日曜日一日ゆっくり使って理解しよう、普通の配列も理解に時間はかかったけど覚えたら手放せないくらいに便利だった、こいつも同じ臭いがする






  • [unity3D]はじめてのC#

    2014-09-06 09:22
    unity入門とかでぐぐると大体javascript(unityscript)で、ある程度使い慣れてくるとアセットの多くがC#のみのサポートだったり、ネット上のサンプルが異様に少なかったりして、入門するのはC#よりも楽だったけど中級へステップアップする段差が異常にキツいといった印象を受けた。
    まあ、自分の場合動機の8割はアセットだったりするわけだけども。

    using UnityEngine;
    using System.Collections;

    public class tt : MonoBehaviour {
    public string mes = "ポッチャマ・・・";
    // Use this for initialization
    void Start () {
    Debug.Log (mes);
    }
    // Update is called once per frame
    void Update () {
    }
    }

    C#スクリプトを作成、実際書いたのはpublic string mesとprint()の二行、いわゆるhelloworld的なやつ。
    jsで入門してもC#の書き方をその気になってやろうと思えば結構すんなり覚えられそうな手応えを感じた。

    この後いろいろ試して、floatの書き方(1.22fみたいに尻にfをつける)とか仕様の違いに戸惑うことが多くなったけど、一番でかいのがMonoDevelopエディタが明らかにjsと違い圧倒的に使いやすくなった。