p_chinのおっぱいブログ

UnityとPerlなど

(1)先週覚えたけどブログにする程ボリューム無いから全部まとめてメモ

Const.pmとconfig.pl

  • 環境によって変更する値はconfig.plで
  • そうじゃないのはConst.pmで管理した方がいい
  • config.plが膨らんじゃうのも見づらい

 

トランザクションについて

  • メソッドの中で多くのDB操作をするならば、メソッドの中でトランザクション宣言した方が良い
       my $txn = $teng->txn_scope;
            $token = $self->_fugu($args);
        $txn->commit;

では無くて、_fuguメソッドの中で$txn = $teng->txn_scope;したほうがが良い。

 

AssetBundle触ってみる

 

svnで管理されてるプロジェクトをcheckoutしてを開くとUnity落ちる

 

拡張メソッドの返り値を自分自身にするとメンバも更新されると思ったら、普通の挙動だった。thisで渡してるから参照渡しだろ!となった

using UnityEngine;
using UnityEditor;
using System.Collections;

public interface IFugu {

        int life {get; set;}
        int attack {get; set;}
}

public class Fugu : IFugu {
    
    private int mLife;
    private int mAttack;

    public int life
    {
        get {return mLife;}
        set {mLife = value;}
    }
    public int attack
    {
        get {return mAttack;}
        set {mAttack = value;}
    }

    [MenuItem("Fugu/Create new instance fugu")]
    static void CreateFugu()
    {
        Fugu fugu = new Fugu ();
    }

    public Fugu() {
        FuguManager.InitStatus(this);
        Debug.Log ("life : " + mLife + "\nattack : " + mAttack);
    }

    ~Fugu(){
        Debug.Log ("die fugu");
    }
}

public static class FuguManager {
    public static IFugu InitStatus (this IFugu fugu) {

        fugu.life = 100;
        fugu.attack = 20;

        //return fugu; これしなくてもfuguに反映されてる
    }
}