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); }