51 lines
2.2 KiB
C#
51 lines
2.2 KiB
C#
using XCEngine;
|
|
|
|
namespace Gameplay
|
|
{
|
|
public sealed class MeshRendererEdgeCaseProbe : MonoBehaviour
|
|
{
|
|
public int ObservedInitialMaterialCount;
|
|
public string ObservedNegativeIndexPath = string.Empty;
|
|
public string ObservedOutOfRangePathBeforeClear = string.Empty;
|
|
public string ObservedMaterial0PathAfterNegativeWrite = string.Empty;
|
|
public string ObservedMaterial1PathAfterNegativeWrite = string.Empty;
|
|
public int ObservedMaterialCountAfterNegativeWrite;
|
|
public int ObservedRenderLayerAfterNegativeWrite;
|
|
public int ObservedMaterialCountAfterClear;
|
|
public string ObservedMaterial0PathAfterClear = string.Empty;
|
|
public string ObservedMaterial3PathAfterClear = string.Empty;
|
|
public bool ObservedCastShadowsAfterClear;
|
|
public bool ObservedReceiveShadowsAfterClear;
|
|
public int ObservedRenderLayerAfterClear;
|
|
|
|
public void Start()
|
|
{
|
|
if (!TryGetComponent(out MeshRenderer meshRenderer) || meshRenderer == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
ObservedInitialMaterialCount = meshRenderer.materialCount;
|
|
ObservedNegativeIndexPath = meshRenderer.GetMaterialPath(-1);
|
|
ObservedOutOfRangePathBeforeClear = meshRenderer.GetMaterialPath(3);
|
|
|
|
meshRenderer.SetMaterialPath(-1, "Materials/ignored.mat");
|
|
|
|
ObservedMaterial0PathAfterNegativeWrite = meshRenderer.GetMaterialPath(0);
|
|
ObservedMaterial1PathAfterNegativeWrite = meshRenderer.GetMaterialPath(1);
|
|
ObservedMaterialCountAfterNegativeWrite = meshRenderer.materialCount;
|
|
|
|
meshRenderer.renderLayer = -5;
|
|
ObservedRenderLayerAfterNegativeWrite = meshRenderer.renderLayer;
|
|
|
|
meshRenderer.ClearMaterials();
|
|
|
|
ObservedMaterialCountAfterClear = meshRenderer.materialCount;
|
|
ObservedMaterial0PathAfterClear = meshRenderer.GetMaterialPath(0);
|
|
ObservedMaterial3PathAfterClear = meshRenderer.GetMaterialPath(3);
|
|
ObservedCastShadowsAfterClear = meshRenderer.castShadows;
|
|
ObservedReceiveShadowsAfterClear = meshRenderer.receiveShadows;
|
|
ObservedRenderLayerAfterClear = meshRenderer.renderLayer;
|
|
}
|
|
}
|
|
} |