Files
Studio/Assets/Test/AGVNode/AGVNode.cs
2025-05-21 10:10:30 +09:00

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