public GameObject CreatePlayer(Logic.Tile tile_data) { // var tile_player = tile_data as Logic.Tile_Player; //var obj = _createBasicTile(tile_data, "player", "Collide"); var prefab = Resources.Load("Prefabs/player") as GameObject; var obj = GameObject.Instantiate(prefab) as GameObject; obj.name = tile_data.Type.ToString(); // set the sprite var sprite_renderer = obj.GetComponent <SpriteRenderer>(); sprite_renderer.sortingLayerName = "Collide"; // set the tile data var tile_component = obj.AddComponent <TileDisplay>(); tile_component.Tile = tile_data; // set the position obj.transform.parent = mTileMapObj.transform; obj.transform.localPosition = new Vector3(tile_data.Position.Col, tile_data.Position.Row, 0); //var animator = obj.AddComponent<Animator>(); //var animtor_controller = Resources.Load("Animation/player_controller") as AnimatorController; //animator.runtimeAnimatorController = animtor_controller; //// add collider //var collider_component = obj.AddComponent<BoxCollider2D>(); //collider_component.isTrigger = true; return(obj); }
public GameObject CreateItem(Logic.Tile tile_data) { var tile_item = tile_data as Logic.Tile_Item; var obj = _createBasicTile(tile_data, tile_item.CsvData["sprite"], "Collide"); return(obj); }
public GameObject CreateNpc(Logic.Tile tile_data) { var tile_npc = tile_data as Logic.Tile_Npc; var obj = _createBasicTile(tile_data, tile_npc.CsvData["sprite"], "Collide"); return(obj); }
public GameObject CreatePortal(Logic.Tile tile_data) { var tile_portal = tile_data as Logic.Tile_Portal; var obj = _createBasicTile(tile_data, tile_portal.Direction == Logic.EProtalDirection.Up ? "stair_up" : "stair_down", "Collide"); return(obj); }
public ITileDisplay GetTileDisplay(Logic.Tile tile) { switch (tile.Type) { case Logic.Tile.EType.Floor: { return(CreateFloor(tile).GetComponent <TileDisplay>()); } case Logic.Tile.EType.Wall: { return(CreateWall(tile).GetComponent <TileDisplay>()); } case Logic.Tile.EType.Water: { return(CreateWater(tile).GetComponent <TileDisplay>()); } case Logic.Tile.EType.Sky: { return(CreateSky(tile).GetComponent <TileDisplay>()); } case Logic.Tile.EType.Monster: { return(CreateMonster(tile).GetComponent <TileDisplay>()); } case Logic.Tile.EType.Player: { return(CreatePlayer(tile).GetComponent <TileDisplay>()); } case Logic.Tile.EType.Portal: { return(CreatePortal(tile).GetComponent <TileDisplay>()); } case Logic.Tile.EType.Npc: { return(CreateNpc(tile).GetComponent <TileDisplay>()); } case Logic.Tile.EType.Item: { return(CreateItem(tile).GetComponent <TileDisplay>()); } case Logic.Tile.EType.Door: { return(CreateDoor(tile).GetComponent <TileDisplay>()); } default: return(null); } }
/// <summary> /// 创建基本的阻挡地形tile /// </summary> /// <param name="tile_data">tile数据</param> /// <param name="sprite_name"></param> /// <param name="sorting_layer_name"></param> /// <returns></returns> private GameObject _createTerrainBlockTile(Logic.Tile tile_data, string sprite_name, string sorting_layer_name) { var obj = _createBasicTile(tile_data, sprite_name, sorting_layer_name); // add collider var collider_component = obj.AddComponent <BoxCollider2D>(); collider_component.isTrigger = false; return(obj); }
public GameObject CreateDoor(Logic.Tile tile_data) { var tile_door = tile_data as Logic.Tile_Door; var sprite = "door_yellow"; switch (tile_door.DoorType) { case Logic.EDoorType.Yellow: { sprite = "door_yellow"; break; } case Logic.EDoorType.Blue: { sprite = "door_blue"; break; } case Logic.EDoorType.Red: { sprite = "door_red"; break; } case Logic.EDoorType.Trigger: { sprite = "door_special"; break; } case Logic.EDoorType.Fences: { sprite = "door_fences"; break; } } var obj = _createBasicTile(tile_data, sprite, "Floor"); return(obj); }
/// <summary> /// 创建岩浆 /// </summary> /// <param name="tile_data"></param> /// <returns></returns> public GameObject CreateWater(Logic.Tile tile_data) { var prefab = Resources.Load("Prefabs/water") as GameObject; var obj = GameObject.Instantiate(prefab) as GameObject; obj.name = tile_data.Type.ToString(); // set the sprite var sprite_renderer = obj.GetComponent <SpriteRenderer>(); sprite_renderer.sortingLayerName = "Floor"; // set the tile data var tile_component = obj.AddComponent <TileDisplay>(); tile_component.Tile = tile_data; // set the position obj.transform.parent = mTileMapObj.transform; obj.transform.localPosition = new Vector3(tile_data.Position.Col, tile_data.Position.Row, 0); return(obj); //return _createTerrainBlockTile(tile_data, "water_0", "Floor"); }
/// <summary> /// 创建基本的tile /// </summary> /// <param name="tile_data">tile数据</param> /// <param name="sprite_name"></param> /// <param name="sorting_layer_name"></param> /// <returns></returns> private GameObject _createBasicTile(Logic.Tile tile_data, string sprite_name, string sorting_layer_name) { // create the gameobject var obj = new GameObject(tile_data.Type.ToString()); // set the sprite var sprite_renderer = obj.AddComponent <SpriteRenderer>(); sprite_renderer.sprite = SpriteSheetManager.Instance.GetSprite(sprite_name); // set the sorting layer sprite_renderer.sortingLayerName = sorting_layer_name; // set the tile data var tile_component = obj.AddComponent <TileDisplay>(); tile_component.Tile = tile_data; // set the position obj.transform.parent = mTileMapObj.transform; obj.transform.localPosition = new Vector3(tile_data.Position.Col, tile_data.Position.Row, 0); return(obj); }