@ -7,66 +7,48 @@ using UnityEngine.Rendering;
public class VisualStyle : ScriptableObject
public class VisualStyle : ScriptableObject
{
{
[SerializeField]
[SerializeField]
protected Material aliasModel Material;
protected Material entity Material;
[SerializeField]
[SerializeField]
protected Material brushModelMaterial ; // TODO: not sure if this should be separate or combined into one entityMaterial
[SerializeField]
protected Material worldModelMaterial ; // TODO: split into wall, liquid, sky, etc
protected Material worldMaterial ; // TODO: split into wall, liquid, sky, etc
// TODO: add particle effects
// TODO: add particle effects
public virtual void SetupAliasModelRenderer ( MeshRenderer meshRenderer )
public virtual Material CreateEntityMaterial ( )
{
return new Material ( entityMaterial ) ;
}
public virtual Material CreateWorldMaterial ( )
{
return new Material ( worldMaterial ) ;
}
public virtual void SetupEntityRenderer ( MeshRenderer meshRenderer )
{
{
meshRenderer . material = new Material ( aliasModelMaterial ) ;
meshRenderer . shadowCastingMode = ShadowCastingMode . Off ;
meshRenderer . shadowCastingMode = ShadowCastingMode . Off ;
meshRenderer . receiveShadows = false ;
meshRenderer . receiveShadows = false ;
meshRenderer . lightProbeUsage = LightProbeUsage . Off ;
meshRenderer . lightProbeUsage = LightProbeUsage . Off ;
meshRenderer . reflectionProbeUsage = ReflectionProbeUsage . Off ;
meshRenderer . reflectionProbeUsage = ReflectionProbeUsage . Off ;
}
}
public virtual void SetupAliasModelRenderer ( SkinnedMeshRenderer skinnedMeshRenderer )
public virtual void SetupEntity Renderer ( SkinnedMeshRenderer skinnedMeshRenderer )
{
{
skinnedMeshRenderer . material = new Material ( aliasModelMaterial ) ;
skinnedMeshRenderer . shadowCastingMode = ShadowCastingMode . Off ;
skinnedMeshRenderer . shadowCastingMode = ShadowCastingMode . Off ;
skinnedMeshRenderer . receiveShadows = false ;
skinnedMeshRenderer . receiveShadows = false ;
skinnedMeshRenderer . lightProbeUsage = LightProbeUsage . Off ;
skinnedMeshRenderer . lightProbeUsage = LightProbeUsage . Off ;
skinnedMeshRenderer . reflectionProbeUsage = ReflectionProbeUsage . Off ;
skinnedMeshRenderer . reflectionProbeUsage = ReflectionProbeUsage . Off ;
}
}
public virtual void SetupBrushModel Renderer ( MeshRenderer meshRenderer )
public virtual void SetupWorld Renderer ( MeshRenderer meshRenderer )
{
{
meshRenderer . material = new Material ( brushModelMaterial ) ;
meshRenderer . shadowCastingMode = ShadowCastingMode . Off ;
meshRenderer . shadowCastingMode = ShadowCastingMode . Off ;
meshRenderer . receiveShadows = false ;
meshRenderer . receiveShadows = false ;
meshRenderer . lightProbeUsage = LightProbeUsage . Off ;
meshRenderer . lightProbeUsage = LightProbeUsage . Off ;
meshRenderer . reflectionProbeUsage = ReflectionProbeUsage . Off ;
meshRenderer . reflectionProbeUsage = ReflectionProbeUsage . Off ;
}
}
public virtual void SetupWorldModelRenderer ( MeshRenderer meshRenderer )
{
meshRenderer . material = new Material ( worldModelMaterial ) ;
meshRenderer . shadowCastingMode = ShadowCastingMode . Off ;
meshRenderer . receiveShadows = false ;
meshRenderer . lightProbeUsage = LightProbeUsage . Off ;
meshRenderer . reflectionProbeUsage = ReflectionProbeUsage . Off ;
}
public virtual void SetAliasModelTextures ( Material material , Texture2D mainTexture , Texture2D fullBright )
{
material . mainTexture = mainTexture ;
material . SetTexture ( "_EmissionMap" , fullBright ) ;
material . SetColor ( "_EmissionColor" , Color . white ) ;
if ( fullBright ! = null )
material . EnableKeyword ( "_EMISSION" ) ;
else
material . DisableKeyword ( "_EMISSION" ) ;
}
public virtual void SetBrushModelTextures ( Material material , Texture2D mainTexture , Texture2D fullBright )
public virtual void SetEntityTextures ( Material material , Texture2D mainTexture , Texture2D fullBright )
{
{
material . mainTexture = mainTexture ;
material . mainTexture = mainTexture ;
@ -79,7 +61,7 @@ public class VisualStyle : ScriptableObject
material . DisableKeyword ( "_EMISSION" ) ;
material . DisableKeyword ( "_EMISSION" ) ;
}
}
public virtual void SetWorldModel Textures ( Material material , Texture2D mainTexture , Texture2D fullBright , Texture2D lightmap )
public virtual void SetWorldTextures ( Material material , Texture2D mainTexture , Texture2D fullBright , Texture2D lightmap )
{
{
material . mainTexture = mainTexture ;
material . mainTexture = mainTexture ;