с помощью этого изображения я создаю объект в 3D.
Логика проста
Белый пиксель > Создать объект.
/>Черный пиксель > Ничего не делать.
Эта штука работает нормально. Но я хочу создавать объекты в определенном порядке.
Посмотрите это изображение в определенном порядке.
Вот мой код для чтения пиксельных данных из изображения и создания. объект в соответствии с ним.
но я не знаю, как перемещать пиксели изображения в определенном порядке или по пути, потому что в настоящее время мой код считывает пиксели снизу вверх.
Код: Выделить всё
using Dreamteck.Splines;
using System.Collections.Generic;
using UnityEngine;
[ExecuteInEditMode]
public class ReadImage : MonoBehaviour
{
public Texture2D spawnMap; // Assign your black and white image in the inspector
public float spawnSpacing = 1.0f; // Space between spawned objects in world units
public Vector2 startPosition = Vector2.zero; // World position where the spawning starts
public bool canSpawn;
[SerializeField] GameObject cubePrefab;
private void OnEnable()
{
if (canSpawn)
{
SpawnObjects();
}
}
void SpawnObjects()
{
int index = 0;
// Loop through each pixel in the image
for (int x = 0; x < spawnMap.width; x++)
{
for (int y = 0; y < spawnMap.height; y++)
{
// Get the pixel color at (x, y)
Color pixelColor = spawnMap.GetPixel(x, y);
// Check if the pixel is white (you can also use a tolerance)
if (pixelColor == Color.white)
{
// Convert pixel position to world position
Vector3 worldPos = new Vector3(x * spawnSpacing, 0, y * spawnSpacing);
index++;
// Spawn the object at the calculated world position
Instantiate(cubePrefab,worldPos,Quaternion.identity,transform);
}
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... ific-order