Projekt_SI_automatyczny_kelner/Assets/Logic/SceneContext.cs

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>());
}
}
}