Wie nimmt man eine Zeichenfolge als Parameter in Einheit oder bekommt Fliesenpaletten, wenn Sie nur die Fliesenkarte kenC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Wie nimmt man eine Zeichenfolge als Parameter in Einheit oder bekommt Fliesenpaletten, wenn Sie nur die Fliesenkarte ken

Post by Anonymous »

Ich habe versucht, eine prozedural generierende Welt in Unity zu schaffen, bin jedoch auf ein Hindernis gestoßen. Ich habe eine Tilemap mit 2 Kachelpaletten erstellt und möchte eine davon für die Weltgenerierung verwenden. Ich habe versucht, einen String-Parameter zu übergeben, damit ich einfach den Namen des Parameters eingeben kann, den ich verwenden möchte, aber es funktioniert nicht:

Code: Select all

using UnityEngine;
using UnityEngine.Tilemaps;

public class TilePlacer : MonoBehaviour
{
public Tilemap tilemap;
[SerializeField]
string tilepalette;
[SerializeField]
int mapsizex;
[SerializeField]
int mapsizey;

void Start()
{
tilemap = GetComponent();
var tilePalette = Resources.Load($"Assets/Blocks/Sprites/{tilepalette}");

var currenttile = GetRandomTileFromPalette();
for (int x = 0; x < mapsizex; x++)
{
for (int y = 0; y < mapsizey; y++)
{
tilemap.SetTile(new Vector3Int(x * 20, y * 20, 0), currenttile);
}
}
}

void Update()
{

}

public Tile GetRandomTileFromPalette()
{
var tiles = tilePalette.GetTiles();
return tiles[Random.Range(0, tiles.Length)];
}
}
Dies ist der vollständige Code und die einzige Fehlermeldung, die ich erhalte, ist, dass TilePalette nicht existiert. Dies liegt daran, dass der Name nirgendwo eingegeben werden kann, obwohl er für Mapsizex und Mapsizey funktioniert. Irgendwelche Ideen, wie man das erreichen kann?
Image

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post