48 lines
1.4 KiB
C#
48 lines
1.4 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Logic.Graph;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
namespace Logic
|
|
{
|
|
public class SceneContext : MonoBehaviour
|
|
{
|
|
public List<Node> map;
|
|
public static SceneContext Instance;
|
|
|
|
void Start()
|
|
{
|
|
Instance = this;
|
|
Application.targetFrameRate = 144;
|
|
map = GetComponentsInChildren<Node>().ToList();
|
|
}
|
|
|
|
private void DrawGizmosFrom(Node from, List<Node> without)
|
|
{
|
|
foreach (var x in from.neighbors.Where(x=>!without.Contains(x)))
|
|
{
|
|
Gizmos.color = Color.blue;
|
|
var position = @from.transform.position;
|
|
Gizmos.DrawLine(position, x.transform.position);
|
|
Gizmos.DrawSphere(position,0.1f);
|
|
if(!(x is Table)) without.Add(x);
|
|
DrawGizmosFrom(x, without);
|
|
}
|
|
foreach (var x in from.neighbors.Where(x => without.Contains(x)))
|
|
{
|
|
Gizmos.color = Color.blue;
|
|
var position = @from.transform.position;
|
|
Gizmos.DrawLine(position, x.transform.position);
|
|
Gizmos.DrawSphere(position,0.1f);
|
|
}
|
|
}
|
|
|
|
private void OnDrawGizmos()
|
|
{
|
|
if(map.Count>0)
|
|
DrawGizmosFrom(map.First(), new List<Node>());
|
|
}
|
|
}
|
|
}
|