mirror of
https://github.com/godotengine/godot.git
synced 2024-11-21 19:42:43 +00:00
Some improvements to TileSetScenesCollectionSource docs
This commit is contained in:
parent
97b8ad1af0
commit
1ec176d6cc
@ -6,6 +6,32 @@
|
|||||||
<description>
|
<description>
|
||||||
When placed on a [TileMap], tiles from [TileSetScenesCollectionSource] will automatically instantiate an associated scene at the cell's position in the TileMap.
|
When placed on a [TileMap], tiles from [TileSetScenesCollectionSource] will automatically instantiate an associated scene at the cell's position in the TileMap.
|
||||||
Scenes are instantiated as children of the [TileMap] when it enters the tree. If you add/remove a scene tile in the [TileMap] that is already inside the tree, the [TileMap] will automatically instantiate/free the scene accordingly.
|
Scenes are instantiated as children of the [TileMap] when it enters the tree. If you add/remove a scene tile in the [TileMap] that is already inside the tree, the [TileMap] will automatically instantiate/free the scene accordingly.
|
||||||
|
[b]Note:[/b] Scene tiles all occupy one tile slot and instead use alternate tile ID to identify scene index. [method TileSetSource.get_tiles_count] will always return [code]1[/code]. Use [method get_scene_tiles_count] to get a number of scenes in a [TileSetScenesCollectionSource].
|
||||||
|
Use this code if you want to find the scene path at a given tile in [TileMapLayer]:
|
||||||
|
[codeblocks]
|
||||||
|
[gdscript]
|
||||||
|
var source_id = tile_map_layer.get_cell_source_id(Vector2i(x, y))
|
||||||
|
if source_id > -1:
|
||||||
|
var scene_source = tile_map_layer.tile_set.get_source(source_id)
|
||||||
|
if scene_source is TileSetScenesCollectionSource:
|
||||||
|
var alt_id = tile_map_layer.get_cell_alternative_tile(Vector2i(x, y))
|
||||||
|
# The assigned PackedScene.
|
||||||
|
var scene = scene_source.get_scene_tile_scene(alt_id)
|
||||||
|
[/gdscript]
|
||||||
|
[csharp]
|
||||||
|
int sourceId = tileMapLayer.GetCellSourceId(new Vector2I(x, y));
|
||||||
|
if (sourceId > -1)
|
||||||
|
{
|
||||||
|
TileSetSource source = tileMapLayer.TileSet.GetSource(sourceId);
|
||||||
|
if (source is TileSetScenesCollectionSource sceneSource)
|
||||||
|
{
|
||||||
|
int altId = tileMapLayer.GetCellAlternativeTile(new Vector2I(x, y));
|
||||||
|
// The assigned PackedScene.
|
||||||
|
PackedScene scene = sceneSource.GetSceneTileScene(altId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[/csharp]
|
||||||
|
[/codeblocks]
|
||||||
</description>
|
</description>
|
||||||
<tutorials>
|
<tutorials>
|
||||||
</tutorials>
|
</tutorials>
|
||||||
|
Loading…
Reference in New Issue
Block a user