Files
badeend-go/Assets/Mapbox SDK/Mapbox/Examples/8_VoxelMap/Scripts/VoxelFetcher.cs

40 lines
877 B
C#

using System;
using UnityEngine;
namespace Mapbox.Examples.Voxels
{
public class VoxelFetcher : MonoBehaviour
{
[SerializeField]
VoxelColorMapper[] _voxels;
public GameObject GetVoxelFromColor(Color color)
{
GameObject matchingVoxel = _voxels[0].Voxel;
var minDistance = Mathf.Infinity;
foreach (var voxel in _voxels)
{
var distance = GetDistanceBetweenColors(voxel.Color, color);
if (distance < minDistance)
{
matchingVoxel = voxel.Voxel;
minDistance = distance;
}
}
return matchingVoxel;
}
public static float GetDistanceBetweenColors(Color color1, Color color2)
{
return Mathf.Sqrt(Mathf.Pow(color1.r - color2.r, 2f) + Mathf.Pow(color1.g - color2.g, 2f) + Mathf.Pow(color1.b - color2.b, 2f));
}
}
[Serializable]
public class VoxelColorMapper
{
public Color Color;
public GameObject Voxel;
}
}