public void Initialize(FloorGimicData.Param fgData, FloorGimicDatabase db)
    {
        Debug.Log ("[FloorGimic] Initialized: "+fgData.name );

        m_fgData = fgData;
        m_sprite.SetSprite(m_fgData.graphic);
        m_spriteAnimator.Play(m_fgData.graphic);
    }
    /*
     *  Create FloorGimic with Graphic
     */
    private FloorGimic _CreateGimic(FloorGimicData.Param p)
    {
        GameObject fab = null;
        foreach(FloorGimicGraphic fg in m_floorGimicGraphics) {
            if( fg.name == p.graphic ) {
                fab = fg.fab;
            }
        }
        if(fab == null) {
            fab = m_generalFgfab;
        }

        GameObject go = GameObject.Instantiate(fab) as GameObject;
        FloorGimic gimic = go.GetComponent<FloorGimic>() as FloorGimic;

        gimic.Initialize(p, this);
        return gimic;
    }