74 lines
2.7 KiB
C#
74 lines
2.7 KiB
C#
|
/************************************************************************************
|
|||
|
|
|||
|
Depthkit Unity SDK License v1
|
|||
|
Copyright 2016-2024 Simile Inc dba Scatter. All Rights reserved.
|
|||
|
|
|||
|
Licensed under the the Simile Inc dba Scatter ("Scatter")
|
|||
|
Software Development Kit License Agreement (the "License");
|
|||
|
you may not use this SDK except in compliance with the License,
|
|||
|
which is provided at the time of installation or download,
|
|||
|
or which otherwise accompanies this software in either electronic or hard copy form.
|
|||
|
|
|||
|
You may obtain a copy of the License at http://www.depthkit.tv/license-agreement-v1
|
|||
|
|
|||
|
Unless required by applicable law or agreed to in writing,
|
|||
|
the SDK distributed under the License is distributed on an "AS IS" BASIS,
|
|||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|||
|
See the License for the specific language governing permissions and limitations under the License.
|
|||
|
|
|||
|
************************************************************************************/
|
|||
|
|
|||
|
using System.Collections;
|
|||
|
using UnityEngine;
|
|||
|
|
|||
|
namespace Depthkit
|
|||
|
{
|
|||
|
[RequireComponent(typeof(MeshFilter))]
|
|||
|
[RequireComponent(typeof(MeshRenderer))]
|
|||
|
public abstract class ShaderGraphLook : Look
|
|||
|
{
|
|||
|
protected MeshRenderer m_meshRenderer = null;
|
|||
|
protected MeshFilter m_meshFilter = null;
|
|||
|
|
|||
|
protected abstract Material GetDefaultShaderGraph();
|
|||
|
|
|||
|
protected override void SetDefaults()
|
|||
|
{
|
|||
|
m_meshFilter = GetComponent<MeshFilter>();
|
|||
|
m_meshFilter.hideFlags = HideFlags.NotEditable;
|
|||
|
m_meshRenderer = GetComponent<MeshRenderer>();
|
|||
|
|
|||
|
if (m_meshRenderer.sharedMaterial == null)
|
|||
|
{
|
|||
|
m_meshRenderer.material = GetDefaultShaderGraph();
|
|||
|
}
|
|||
|
|
|||
|
m_meshRenderer.SetPropertyBlock(materialPropertyBlock);
|
|||
|
|
|||
|
base.SetDefaults();
|
|||
|
}
|
|||
|
|
|||
|
protected override bool UsesMaterial() { return true; }
|
|||
|
protected override Material GetMaterial()
|
|||
|
{
|
|||
|
return m_meshRenderer.sharedMaterial;
|
|||
|
}
|
|||
|
|
|||
|
protected override void OnUpdate()
|
|||
|
{
|
|||
|
if (!meshSource.useTriangleMesh) meshSource.useTriangleMesh = true;
|
|||
|
if(meshSource.triangleMesh != null && meshSource.triangleMesh.mesh != m_meshFilter.sharedMesh)
|
|||
|
m_meshFilter.sharedMesh = meshSource.triangleMesh.mesh;
|
|||
|
m_meshRenderer.SetPropertyBlock(GetMaterialPropertyBlock());
|
|||
|
base.OnUpdate();
|
|||
|
}
|
|||
|
|
|||
|
private void OnDestroy()
|
|||
|
{
|
|||
|
if (m_meshFilter != null)
|
|||
|
{
|
|||
|
m_meshFilter.hideFlags = HideFlags.None;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|