56 lines
1.4 KiB
C#
56 lines
1.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace Studio.Test
|
|
{
|
|
public class AGVNode : TwinObject
|
|
{
|
|
public List<AGVNode> linkedNodes = new();
|
|
public bool reserved;
|
|
public Transform nextConveyor;
|
|
|
|
#region legacy
|
|
public AGVNodeClass nodeClass;
|
|
MaterialPropertyBlock mpb;
|
|
List<Renderer> meshRendererList = new List<Renderer>();
|
|
public GameObject loadSocket;
|
|
public GameObject unLoadSocket;
|
|
#endregion
|
|
|
|
public void Initialize(AGVNodeClass data)
|
|
{
|
|
nodeClass = data;
|
|
|
|
mpb = new MaterialPropertyBlock();
|
|
var allChildren = gameObject.GetComponentsInChildren<Transform>(true);
|
|
|
|
foreach (var child in allChildren)
|
|
{
|
|
if (child.gameObject.GetComponent<Renderer>() != null)
|
|
{
|
|
meshRendererList.Add(child.gameObject.GetComponent<Renderer>());
|
|
}
|
|
}
|
|
}
|
|
|
|
public void SetColor(Color color)
|
|
{
|
|
foreach (var r in meshRendererList)
|
|
{
|
|
mpb.SetColor("_BaseColor", color);
|
|
mpb.SetColor("baseColorFactor", color);
|
|
r.SetPropertyBlock(mpb);
|
|
}
|
|
}
|
|
|
|
public void DeleteColor()
|
|
{
|
|
foreach (var r in meshRendererList)
|
|
{
|
|
r.SetPropertyBlock(null);
|
|
}
|
|
}
|
|
}
|
|
}
|