public class Sample : MonoBehaviour
{
public AdvEngine engine = null;
public List<Material> materials;
void Awake()
{
if (engine != null)
{
engine.GraphicManager.OnDrawGraphicObject.AddListener(OnDrawGraphicObject);
}
}
//グラフィックオブジェクトの描画時によばれるイベント。AdvGraphicInfoは、キャラクターシートのパターンごとの情報が入っている
public void OnDrawGraphicObject(AdvGraphicObject graphicObject, AdvGraphicInfo graphicInfo)
{
//Characterシート、またはTextureシートのCustomMaterial列を参照して、マテリアル名が設定されていたら取得
if (!graphicInfo.RowData.TryParseCell("CustomMaterial", out string materialName)) return;
var material = materials.Find(m =>
m.name == materialName);
if (material == null)
{
//指定の名前のマテリアルが存在しない
Debug.LogError($"Material {materialName} not found", this);
return;
}
if (graphicObject.TargetObject.TryGetComponent(out RawImage rawImage))
{
rawImage.material = material;
}
}
}