feat(scripting): add mesh component script wrappers
This commit is contained in:
60
managed/GameScripts/MeshComponentProbe.cs
Normal file
60
managed/GameScripts/MeshComponentProbe.cs
Normal file
@@ -0,0 +1,60 @@
|
||||
using XCEngine;
|
||||
|
||||
namespace Gameplay
|
||||
{
|
||||
public sealed class MeshComponentProbe : MonoBehaviour
|
||||
{
|
||||
public bool HasMeshFilter;
|
||||
public bool HasMeshRenderer;
|
||||
public bool MeshFilterLookupSucceeded;
|
||||
public bool MeshRendererLookupSucceeded;
|
||||
public string ObservedInitialMeshPath = string.Empty;
|
||||
public string ObservedUpdatedMeshPath = string.Empty;
|
||||
public int ObservedInitialMaterialCount;
|
||||
public string ObservedInitialMaterial0Path = string.Empty;
|
||||
public bool ObservedInitialCastShadows;
|
||||
public bool ObservedInitialReceiveShadows;
|
||||
public int ObservedInitialRenderLayer;
|
||||
public int ObservedUpdatedMaterialCount;
|
||||
public string ObservedUpdatedMaterial1Path = string.Empty;
|
||||
public bool ObservedUpdatedCastShadows;
|
||||
public bool ObservedUpdatedReceiveShadows;
|
||||
public int ObservedUpdatedRenderLayer;
|
||||
|
||||
public void Start()
|
||||
{
|
||||
HasMeshFilter = HasComponent<MeshFilter>();
|
||||
HasMeshRenderer = HasComponent<MeshRenderer>();
|
||||
|
||||
MeshFilterLookupSucceeded = TryGetComponent(out MeshFilter meshFilter);
|
||||
MeshRendererLookupSucceeded = TryGetComponent(out MeshRenderer meshRenderer);
|
||||
|
||||
if (meshFilter != null)
|
||||
{
|
||||
ObservedInitialMeshPath = meshFilter.meshPath;
|
||||
meshFilter.meshPath = "Meshes/runtime_override.mesh";
|
||||
ObservedUpdatedMeshPath = meshFilter.meshPath;
|
||||
}
|
||||
|
||||
if (meshRenderer != null)
|
||||
{
|
||||
ObservedInitialMaterialCount = meshRenderer.materialCount;
|
||||
ObservedInitialMaterial0Path = meshRenderer.GetMaterialPath(0);
|
||||
ObservedInitialCastShadows = meshRenderer.castShadows;
|
||||
ObservedInitialReceiveShadows = meshRenderer.receiveShadows;
|
||||
ObservedInitialRenderLayer = meshRenderer.renderLayer;
|
||||
|
||||
meshRenderer.SetMaterialPath(1, "Materials/runtime_override.mat");
|
||||
meshRenderer.castShadows = false;
|
||||
meshRenderer.receiveShadows = true;
|
||||
meshRenderer.renderLayer = 11;
|
||||
|
||||
ObservedUpdatedMaterialCount = meshRenderer.materialCount;
|
||||
ObservedUpdatedMaterial1Path = meshRenderer.GetMaterialPath(1);
|
||||
ObservedUpdatedCastShadows = meshRenderer.castShadows;
|
||||
ObservedUpdatedReceiveShadows = meshRenderer.receiveShadows;
|
||||
ObservedUpdatedRenderLayer = meshRenderer.renderLayer;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user