- Home /
Question by
Eisdrache393 · Apr 24, 2020 at 02:37 PM ·
3dmaterialsmap-generation
I need to group materials and objects in game together // Time sensitive//
So I'm creating a tile map with differents biomes. I can create the map and I can assign materials randomly to the tiles. My problem is that I can't create the biomes they should be around 30 tiles large and only consist of one material. I don't know how I can script that.
This is the script I use to generate the map
public GameObject HexTilePrefab;
[SerializeField] int mapWidth = 25;
[SerializeField] int mapHeight = 12;
[SerializeField] private string tileTag;
public float tileXOffset = 0.433f;
public float tileZOffset = 0.747f;
public Material[] randomMaterials;
void Start()
{
CreateHexTileMap();
}
void CreateHexTileMap()
{
float mapXMin = -mapWidth / 2;
float mapXMax = mapWidth / 2;
float mapZMin = -mapHeight / 2;
float mapZMax = mapHeight / 2;
for(float x= mapXMin; x < mapXMax; x ++)
{
for (float z = mapZMin; z < mapZMax; z++)
{
GameObject TempGo = Instantiate(HexTilePrefab);
if (z % 2 == 0)
{
TempGo.transform.position = new Vector3(x * tileXOffset, 0, z * tileZOffset);
}
else
{
TempGo.transform.position = new Vector3(x * tileXOffset + tileXOffset / 2, 0, z * tileZOffset);
}
SetTileInfo(TempGo, x, z);
}
}
}
void SetTileInfo(GameObject Go, float x, float z)
{
Go.tag = tileTag;
Go.name = x.ToString() + ", " + z.ToString();
}
And this is the script I use to apply the materials
[SerializeField]
private Material[] _materials;
[SerializeField]
private Renderer _renderer;
public void Start()
{
ChangeMaterial();
}
public void Reset()
{
_renderer = GetComponent<Renderer>();
}
public void ChangeMaterial()
{
_renderer.material = SelectRandomMaterial();
}
private Material SelectRandomMaterial()
{
return _materials[Random.Range(0, _materials.Length)];
}
I couldn't find anything on google so I'm hoping you can help me. Thank you in advance.
Comment
Your answer
Follow this Question
Related Questions
Import Blender models 2 Answers
Display high quality Environment 3D Models 0 Answers
making a "Material" 0 Answers
Making only some parts of a 3D object's texture transparent 1 Answer
Need help with URP Lit Shader 1 Answer