読者です 読者をやめる 読者になる 読者になる

えんの付箋紙と小さなダンボールの中

LOLとかスマホゲームとかたまに開発も サモナーネーム: enpel

何かボタン

        Hoge obj = target as Hoge;

        EditorGUILayout.BeginVertical();

        if (GUILayout.Button("なにかボタン", GUILayout.Width(250f)))
        {
            Undo.RecordObject(obj, "なにかボタン");
        }

        EditorGUILayout.EndVertical();

そういえばTOS発表会に行ってきた!あとSRDebuggerってデバッグ用アセットの紹介記事を書いてます

前に紹介した発表会行ってきた! そこでずっと大地の塔チャレンジを終了まで見てたんだけどスタッフというか日本TOSのプロジェクトマネージャーの今濱さんに色々聞いたりというか大地の塔を用意されてるセットで攻略するにはみたいなのをあーだこーだ言ってました。

発表会の内容自体は多分誰かがレポしてるはず…?

第1部はメディア向けなんだけどIMCGames キム・ハッキュ氏やNEXON社長のマホニー氏が登壇してました。 キム・ハッキュ氏についてはもうROをやっていた人であれば一度はお目にかかりたい神様ですね。 マホニー氏については最近かっこいいインタビュー記事が上がってましたがNEXONの今とある程度合致しているように感じるしTOSにも期待できるんじゃないかなぁと思います。

第1部の詳しい内容については 4Gamerさんの記事とか見るのがいいと思う。

「Tree of Savior」のプレス発表会および体験会をレポート。8月24日開始のOBTでは7次職や新フィールドなどが実装予定 - 4Gamer.net

マホニー社長のインタビューはこっち

【上期総括】ネクソン社長インタビュー「世界のゲーム市場は危機的状況」「必要なのはコモディティ化したゲームではなく、独創的で面白いゲーム」 | Social Game Info

第1部と第2部の間にコスプレイヤーのえなこさんとかと記念撮影出来たりクロスワードパズルを問いてケッピー缶バッチもらえたりしたんですけど会場に一冊コンセプトアートブックがあってそれがめちゃくちゃ良かった。 あれを見れただけでもわざわざ行ったかいはありました。

でもって第2部なんですけど自分はずっと大地の塔攻略をやったり見物してたり 多分一緒にやった人とかはROとかMMOの猛者だったりしたんだろうけどやっぱ対策知らないスキル知らないだと難しいですね。 TOSは特にジョブをビルディングしていくゲームなのでその過程をすっ飛ばして用意されたもので行けるかというとやはり難しい印象でした。

しかし大地の塔を目指したビルドをしたい。攻略したいと思わされる難易度で良かったですね。 リリースが楽しみです。

課金については復活とか見た目装備とか、国際版のスクショとか眺めてるとウェディングドレスみたいなのがあったりしたので見た目は結構楽しめそうです。 あとはROの頃に頭装備を集めた人は多分楽しめる。 猫耳っぽいの装備したい〜〜

そんな感じで自分的には好印象だったTOS発表会でした。

閑話休題

夏コミに向けてUnityのデバッグを便利にするアセットについての記事を執筆中です。 間に合えば8月のコミックマーケット90にて頒布される本の一部に掲載されるはずなので頑張りたいです。。。

ちなみに紹介するのは↓

www.stompyrobot.uk

正直かなり強力なアセットなのでデバッグを便利にしたいけど自分で実装したくないって人は一度デモとかドキュメントみてみるといいかも

そんな感じ!

TOS 発表会兼体験会がくるぞ!

tos.nexon.co.jp

7月といえばOBTの足音がするそんな月ですね! そこに体験会があるそうです。

応募急げ!

Subscribe内で他のDictionaryをClearしたら変な挙動になった

protected Dictionary<eFilter, List<Item>> ItemMap = new Dictionary<eFilter, List<Item>>();
public ReactiveProperty<List<Item>> ItemList = new ReactiveProperty<List<Item>>();

void Awake()
{
    ItemList.Subscribe(items => {
    // ItemListが更新されたらItemMapを一度Clearしたい
        ItemMap.Clear();
        if (ItemMap.ContainsKey(eFilter.NONE))
            ItemMap.Add(eFilter.NONE, items);
        else
            ItemMap[eFilter.NONE] = items;
    }).AddTo(this);
}

// ItemListを更新する奴。更新は外から呼ばれる
public void UpdateItemList (List<Item> infos)
{
    ItemList.Value = infos;
}

// 特定のクラスコードでフィルタされたItemのListをItemMapから取得したい。
// なければその場でフィルタしたものを作ってItemMapに保存してそれを返す
private List<Item> GetItemList(eFilter filterType)
{
// ここが返す値がItemListのSubscribeでClearしてるにもかかわらず古い情報を返していた。
    if (!ItemMap.ContainsKey(filterType)){
        ItemMap.Add(filterType, ItemList.Value.Where(item => item.GetFilterType() == filterType).ToList());
    }

    return ItemMap[filterType]; 
}

解決した結果こうなった

void Awake()
{
}

// ItemListを更新する奴。更新は外から呼ばれる
public void UpdateItemList (List<Item> infos)
{
    ItemList.Value = infos;

    // ItemListが更新されたらItemMapを一度Clearしたい
    ItemMap.Clear();
    if (ItemMap.ContainsKey(eFilter.NONE))
        ItemMap.Add(eFilter.NONE, items);
    else
        ItemMap[eFilter.NONE] = items;
}

いみわからん…

(一部外出し用にReplaceしたコードがあるから意味不明になってそう)

一つの機能ができるまでメモ

バージョン管理 ・SVN(リソース等AssetBundle化するもの中心) ・Git(Unityプロジェクト)

・仕様を企画が考えてまとめる ・チームで突っ込み会をする ・UIデザイナーがUIを作ってプログラマが参照したそうな奴をGameObjectを大量に指すことができる汎用コンポーネントに挿す

GameObjectをぶちこんでおくだけコンポーネント · GitHub ※これ

プログラマがいい感じに作る。

Prefabには基本的に上に紹介したGameObjectList以外のコンポーネントはNGUIやUnityEngineのコンポーネントしか刺さってない。

ダークソウル3を始めました

グンダさんを倒した。

なんだこのゲームむずすぎやろ!www

そんなかんじ

<UniRx>Pairwiseで雑にtoggleするUI試作

public enum State
{
    A,
    B,
}

public interface IUI
{
    void Open();
    void Clise();
}

ReactiveProperty<State> currentState;
Dictionary<State, IUI> ui;

currentState.Pairwise().Subscribe(x =>{
    if (ui.ContainsKey(x.Previous)) ui[x.Previous].Close(); // 前のStateに該当するUIをClose
    if (ui.ContainsKey(x.Current)) ui[x.Current].Open(); // 現在のStateに該当するUIをOpen
});

こんな奴。

最初のOpenどうするのみたいなのはあるけどそれは普通に単体でOpenすればいいんじゃないかなぁ。。。

<追記> UniRxのバージョンは5.2.0 Unityは5.2.3p1