Heroes_of_Hiis/Assets/Polaris - Low Poly Ecosystem/Polaris - Low Poly Terrain .../Runtime/Scripts/TerrainData/GRendering.cs

192 lines
4.7 KiB
C#

#if GRIFFIN
using UnityEngine;
using UnityEngine.Serialization;
namespace Pinwheel.Griffin
{
public class GRendering : ScriptableObject
{
[SerializeField]
private GTerrainData terrainData;
public GTerrainData TerrainData
{
get
{
return terrainData;
}
internal set
{
terrainData = value;
}
}
[SerializeField]
private bool castShadow;
public bool CastShadow
{
get
{
return castShadow;
}
set
{
castShadow = value;
}
}
[SerializeField]
private bool receiveShadow;
public bool ReceiveShadow
{
get
{
return receiveShadow;
}
set
{
receiveShadow = value;
}
}
[FormerlySerializedAs("drawFoliage")]
[SerializeField]
private bool drawTrees;
public bool DrawTrees
{
get
{
return drawTrees;
}
set
{
drawTrees = value;
}
}
[SerializeField]
private bool drawGrasses = true;
public bool DrawGrasses
{
get
{
return drawGrasses;
}
set
{
drawGrasses = value;
}
}
[SerializeField]
private bool enableInstancing;
public bool EnableInstancing
{
get
{
if (!SystemInfo.supportsInstancing)
enableInstancing = false;
return enableInstancing;
}
set
{
if (SystemInfo.supportsInstancing)
{
enableInstancing = value;
}
else
{
enableInstancing = false;
}
}
}
[SerializeField]
private float billboardStart;
public float BillboardStart
{
get
{
return billboardStart;
}
set
{
billboardStart = Mathf.Clamp(value, 0, GCommon.MAX_TREE_DISTANCE);
}
}
[SerializeField]
private float treeDistance;
public float TreeDistance
{
get
{
return treeDistance;
}
set
{
treeDistance = Mathf.Clamp(value, 0, GCommon.MAX_TREE_DISTANCE);
}
}
[SerializeField]
private float grassDistance;
public float GrassDistance
{
get
{
return grassDistance;
}
set
{
grassDistance = Mathf.Clamp(value, 0, GCommon.MAX_GRASS_DISTANCE);
}
}
[SerializeField]
private float grassFadeStart;
public float GrassFadeStart
{
get
{
return grassFadeStart;
}
set
{
grassFadeStart = Mathf.Clamp01(value);
}
}
public void Reset()
{
name = "Rendering";
CastShadow = GRuntimeSettings.Instance.renderingDefault.terrainCastShadow;
ReceiveShadow = GRuntimeSettings.Instance.renderingDefault.terrainReceiveShadow;
DrawTrees = GRuntimeSettings.Instance.renderingDefault.drawTrees;
DrawGrasses = GRuntimeSettings.Instance.renderingDefault.drawGrasses;
EnableInstancing = GRuntimeSettings.Instance.renderingDefault.enableInstancing;
BillboardStart = GRuntimeSettings.Instance.renderingDefault.billboardStart;
TreeDistance = GRuntimeSettings.Instance.renderingDefault.treeDistance;
GrassDistance = GRuntimeSettings.Instance.renderingDefault.grassDistance;
GrassFadeStart = GRuntimeSettings.Instance.renderingDefault.grassFadeStart;
}
public void ResetFull()
{
Reset();
}
public void CopyTo(GRendering des)
{
des.CastShadow = CastShadow;
des.ReceiveShadow = ReceiveShadow;
des.DrawTrees = DrawTrees;
des.EnableInstancing = EnableInstancing;
des.BillboardStart = BillboardStart;
des.TreeDistance = TreeDistance;
des.GrassDistance = GrassDistance;
des.GrassFadeStart = GrassFadeStart;
}
}
}
#endif