Example #1
0
    static public MapObject create(string aFileName, string aName, string id = "")
    {
        if (!mObjectDatas.ContainsKey(aFileName))
        {
            mObjectDatas[aFileName] = new Arg(MyJson.deserializeResourse(MapObjectCreater.kDirPath + "/" + aFileName));
        }
        Arg       tObjectData = mObjectDatas[aFileName].get <Arg>(aName);
        MapObject tMapObject  = MyBehaviour.create <MapObject>();

        tMapObject.name = (id == "") ? aName : aFileName;
        //sprite
        if (tObjectData.ContainsKey("sprite"))
        {
            //画像があるフォルダのパス
            string tPath = HandleString.cutOff(aFileName, "/");
            tPath = (tPath == "") ? MapObjectCreater.kDirPath : MapObjectCreater.kDirPath + "/" + tPath;
            Arg tData = tObjectData.get <Arg>("sprite");
            //pivotYが設定されていないなら0に設定
            if (!tData.ContainsKey("pivotY"))
            {
                tData.set("pivotY", 0f);
            }
            //スプライトセット
            ChildSprite.addSpriteObject(tMapObject.gameObject, tData, tPath);
        }
        //zIndex
        if (tObjectData.ContainsKey("zIndex"))
        {
            tMapObject.zIndex = tObjectData.get <float>("zIndex");
        }
        //マップ属性
        if (tObjectData.ContainsKey("attribute"))
        {
            tMapObject.gameObject.AddComponent <MapAttributeBehaviour>().setAttribute(tObjectData.get <string>("attribute"));
        }
        //collider設定
        if (tObjectData.ContainsKey("collider"))
        {
            Arg tColliderData = tObjectData.get <Arg>("collider");
            ColliderInstaller.addCollider(tMapObject.gameObject, tObjectData.get <Arg>("collider"));
        }
        //category
        if (tObjectData.ContainsKey("category"))
        {
        }
        return(tMapObject);
    }
    static public MapEventTrigger create(Arg aData)
    {
        MapEventTrigger tTrigger = MyBehaviour.create <MapEventTrigger>();

        //collider
        ColliderInstaller.addCollider(tTrigger.gameObject, aData.get <Arg>("collider"));
        Collider2D[] tColliders = tTrigger.gameObject.GetComponents <Collider2D>();
        foreach (Collider2D tCollider in tColliders)
        {
            tCollider.isTrigger = true;
        }
        //mapBehaviourAttribute
        tTrigger.gameObject.AddComponent <MapAttributeBehaviour>().setAttribute(MapBehaviourAttribute.Attribute.empty);
        //イベント設定
        tTrigger.set((aData.ContainsKey("enter")) ? new MapEvent(aData.get <Arg>("enter")) : null,
                     (aData.ContainsKey("exit")) ? new MapEvent(aData.get <Arg>("exit")) : null,
                     (aData.ContainsKey("stay")) ? new MapEvent(aData.get <Arg>("stay")) : null,
                     aData.get <Arg>("trigger"), aData.get <bool>("destroy"));
        return(tTrigger);
    }