mirror of
https://github.com/nothke/quality-control.git
synced 2025-08-09 23:23:44 +00:00
Scoring and stuff.
This commit is contained in:
@@ -6,7 +6,6 @@ using quaternion = Unity.Mathematics.quaternion;
|
||||
|
||||
public static class Grid
|
||||
{
|
||||
|
||||
public static float CellSize = 0.25f;
|
||||
public static float HalfCellSize => CellSize / 2;
|
||||
|
||||
|
@@ -5,39 +5,36 @@ using static Unity.Mathematics.math;
|
||||
using static Grid;
|
||||
using Color = UnityEngine.Color;
|
||||
|
||||
#if UNITY_EDITOR
|
||||
|
||||
[ExecuteAlways]
|
||||
[SelectionBase]
|
||||
[DisallowMultipleComponent]
|
||||
public class GridUnit : MonoBehaviour
|
||||
{
|
||||
|
||||
public int3 Size = new (1, 1, 1);
|
||||
private Vector3 SizeInMeters => new (Size.x * CellSize, Size.y * CellSize, Size.z * CellSize);
|
||||
|
||||
|
||||
public int3 Size = new(1, 1, 1);
|
||||
private Vector3 SizeInMeters => new(Size.x * CellSize, Size.y * CellSize, Size.z * CellSize);
|
||||
|
||||
public float3 CenterOffset;
|
||||
|
||||
[SerializeField, HideInInspector]
|
||||
private int3 cachedSize = new (1, 1, 1);
|
||||
[SerializeField, HideInInspector]
|
||||
private float3 cachedOffset;
|
||||
|
||||
private bool isDirty => transform.hasChanged ||
|
||||
!all(cachedOffset != CenterOffset) ||
|
||||
[SerializeField, HideInInspector] private int3 cachedSize = new(1, 1, 1);
|
||||
[SerializeField, HideInInspector] private float3 cachedOffset;
|
||||
|
||||
private bool isDirty => transform.hasChanged ||
|
||||
!all(cachedOffset != CenterOffset) ||
|
||||
!all(cachedSize == Size);
|
||||
|
||||
#if UNITY_EDITOR
|
||||
public void Update()
|
||||
{
|
||||
if (!isDirty)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
SnapUnit(transform, Size, CenterOffset);
|
||||
|
||||
transform.hasChanged = false;
|
||||
|
||||
|
||||
cachedOffset = CenterOffset;
|
||||
cachedSize = Size;
|
||||
}
|
||||
@@ -48,11 +45,10 @@ public class GridUnit : MonoBehaviour
|
||||
Transform t = unit.transform;
|
||||
quaternion rotation = t.rotation;
|
||||
var position = (float3)t.position + mul(rotation, unit.CenterOffset);
|
||||
|
||||
|
||||
Gizmos.color = Color.white;
|
||||
Gizmos.matrix = Matrix4x4.TRS(position, rotation, Vector3.one);
|
||||
Gizmos.DrawWireCube(Vector3.zero, unit.SizeInMeters);
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
|
Reference in New Issue
Block a user