portals and dash. Also a bit of terrain building and level design

This commit is contained in:
2022-03-13 00:26:35 +02:00
parent 813cd0c451
commit e82799c36a
6242 changed files with 2160679 additions and 188245 deletions

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: aa68d3b2f494cdd49bc2ac0d4d02fe4f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,150 @@
#if GRIFFIN
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using Pinwheel.Griffin;
using UnityEditor;
using UnityEditor.Callbacks;
using System.Reflection;
using TerrainMaterialTemplate = Pinwheel.Griffin.GRuntimeSettings.TerrainRenderingSettings.TerrainMaterialTemplate;
namespace Pinwheel.Griffin.URP
{
public static class GGriffinUrpInstaller
{
[DidReloadScripts]
private static void HandleAutomaticInstallAndUpgrade()
{
string key = GEditorCommon.GetProjectRelatedEditorPrefsKey("polaris-urp-package-imported-0");
bool isFirstImport = !EditorPrefs.HasKey(key);
if (isFirstImport)
{
EditorApplication.update += () =>
{
Install();
UpgradeTerrainMaterialInProject();
Debug.Log("POLARIS: Universal Render Pipeline shaders installed!");
EditorApplication.update = null;
EditorPrefs.SetBool(key, true);
};
}
}
public static void Install()
{
GGriffinUrpResources resources = GGriffinUrpResources.Instance;
if (resources == null)
{
return;
}
List<TerrainMaterialTemplate> terrainMaterialTemplates = new List<TerrainMaterialTemplate>();
terrainMaterialTemplates.Add(new TerrainMaterialTemplate()
{
lightingModel = GLightingModel.PBR,
texturingModel = GTexturingModel.Splat,
splatsModel = GSplatsModel.Splats4,
material = resources.Terrain4SplatsMaterial
});
terrainMaterialTemplates.Add(new TerrainMaterialTemplate()
{
lightingModel = GLightingModel.PBR,
texturingModel = GTexturingModel.Splat,
splatsModel = GSplatsModel.Splats4Normals4,
material = resources.Terrain4Splats4NormalsMaterial
});
terrainMaterialTemplates.Add(new TerrainMaterialTemplate()
{
lightingModel = GLightingModel.PBR,
texturingModel = GTexturingModel.Splat,
splatsModel = GSplatsModel.Splats8,
material = resources.Terrain8SplatsMaterial
});
terrainMaterialTemplates.Add(new TerrainMaterialTemplate()
{
lightingModel = GLightingModel.PBR,
texturingModel = GTexturingModel.GradientLookup,
material = resources.TerrainGradientLookupMaterial
});
terrainMaterialTemplates.Add(new TerrainMaterialTemplate()
{
lightingModel = GLightingModel.PBR,
texturingModel = GTexturingModel.VertexColor,
material = resources.TerrainVertexColorMaterial
});
terrainMaterialTemplates.Add(new TerrainMaterialTemplate()
{
lightingModel = GLightingModel.PBR,
texturingModel = GTexturingModel.ColorMap,
material = resources.TerrainColorMapMaterial
});
GRuntimeSettings.Instance.terrainRendering.universalRpMaterials = terrainMaterialTemplates;
GRuntimeSettings.Instance.foliageRendering.urpGrassMaterial = resources.GrassMaterial;
GRuntimeSettings.Instance.foliageRendering.urpGrassBillboardMaterial = resources.GrassBillboardMaterial;
GRuntimeSettings.Instance.foliageRendering.urpGrassInteractiveMaterial = resources.GrassInteractiveMaterial;
GRuntimeSettings.Instance.foliageRendering.urpTreeBillboardMaterial = resources.TreeBillboardMaterial;
EditorUtility.SetDirty(GRuntimeSettings.Instance);
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
}
public static void UpgradeTerrainMaterialInProject()
{
if (GCommon.CurrentRenderPipeline != GRenderPipelineType.Universal)
{
return;
}
string[] guid = AssetDatabase.FindAssets("t:GTerrainData");
for (int i = 0; i < guid.Length; ++i)
{
string path = AssetDatabase.GUIDToAssetPath(guid[i]);
GTerrainData data = AssetDatabase.LoadAssetAtPath<GTerrainData>(path);
Material mat = data.Shading.CustomMaterial;
if (mat != null)
{
if (UpgradeMaterial(mat))
{
data.Shading.UpdateMaterials();
}
}
}
}
public static bool UpgradeMaterial(Material mat)
{
if (GCommon.CurrentRenderPipeline != GRenderPipelineType.Universal)
return false;
Shader currentShader = mat.shader;
TerrainMaterialTemplate template;
bool found = GRuntimeSettings.Instance.terrainRendering.FindMaterialTemplate(
currentShader,
GRenderPipelineType.Builtin,
out template);
if (!found)
return false;
Material urpMat = GRuntimeSettings.Instance.terrainRendering.GetClonedMaterial(
GRenderPipelineType.Universal,
GLightingModel.PBR,
template.texturingModel,
template.splatsModel);
if (urpMat != null)
{
mat.shader = urpMat.shader;
GUtilities.DestroyObject(urpMat);
Debug.Log(string.Format("POLARIS: Upgrade material {0} to URP succeeded.", mat.name));
return true;
}
return false;
}
}
}
#endif

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 14f5c5cc208e67649919d77d841991c5
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,165 @@
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
namespace Pinwheel.Griffin.URP
{
//[CreateAssetMenu(menuName = "Griffin/URP Resources")]
public class GGriffinUrpResources : ScriptableObject
{
private static GGriffinUrpResources instance;
public static GGriffinUrpResources Instance
{
get
{
if (instance == null)
{
instance = Resources.Load<GGriffinUrpResources>("GriffinUrpResources");
}
return instance;
}
}
[Header("Terrain Material")]
[SerializeField]
private Material terrain4SplatsMaterial;
public Material Terrain4SplatsMaterial
{
get
{
return terrain4SplatsMaterial;
}
set
{
terrain4SplatsMaterial = value;
}
}
[SerializeField]
private Material terrain4Splats4NormalsMaterial;
public Material Terrain4Splats4NormalsMaterial
{
get
{
return terrain4Splats4NormalsMaterial;
}
set
{
terrain4Splats4NormalsMaterial = value;
}
}
[SerializeField]
private Material terrain8SplatsMaterial;
public Material Terrain8SplatsMaterial
{
get
{
return terrain8SplatsMaterial;
}
set
{
terrain8SplatsMaterial = value;
}
}
[SerializeField]
private Material terrainGradientLookupMaterial;
public Material TerrainGradientLookupMaterial
{
get
{
return terrainGradientLookupMaterial;
}
set
{
terrainGradientLookupMaterial = value;
}
}
[SerializeField]
private Material terrainVertexColorMaterial;
public Material TerrainVertexColorMaterial
{
get
{
return terrainVertexColorMaterial;
}
set
{
terrainVertexColorMaterial = value;
}
}
[SerializeField]
private Material terrainColorMapMaterial;
public Material TerrainColorMapMaterial
{
get
{
return terrainColorMapMaterial;
}
set
{
terrainColorMapMaterial = value;
}
}
[Header("Foliage Material")]
[SerializeField]
private Material grassMaterial;
public Material GrassMaterial
{
get
{
return grassMaterial;
}
set
{
grassMaterial = value;
}
}
[SerializeField]
private Material grassBillboardMaterial;
public Material GrassBillboardMaterial
{
get
{
return grassBillboardMaterial;
}
set
{
grassBillboardMaterial = value;
}
}
[SerializeField]
private Material grassInteractiveMaterial;
public Material GrassInteractiveMaterial
{
get
{
return grassInteractiveMaterial;
}
set
{
grassInteractiveMaterial = value;
}
}
[SerializeField]
private Material treeBillboardMaterial;
public Material TreeBillboardMaterial
{
get
{
return treeBillboardMaterial;
}
set
{
treeBillboardMaterial = value;
}
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: bc2a1cc0d83caa64eb8a04447b0eff01
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,70 @@
#if GRIFFIN && UNITY_EDITOR
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using Pinwheel.Griffin;
using Pinwheel.Griffin.URP;
namespace Pinwheel.Griffin.URP.GriffinExtension
{
public static class GriffinUrpSupport
{
public static string GetExtensionName()
{
return "Universal Render Pipeline Support";
}
public static string GetPublisherName()
{
return "Pinwheel Studio";
}
public static string GetDescription()
{
return "Adding support for URP.\n" +
"Requires Unity 2019.3 or above.";
}
public static string GetVersion()
{
return "2020.1";
}
public static void OpenSupportLink()
{
GEditorCommon.OpenEmailEditor(
GCommon.SUPPORT_EMAIL,
"[Polaris V2] LWRP Support",
"YOUR_MESSAGE_HERE");
}
public static void OnGUI()
{
bool isUnity20193orNewer = false;
#if UNITY_2019_3_OR_NEWER
isUnity20193orNewer = true;
#endif
GUI.enabled = isUnity20193orNewer;
if (GUILayout.Button("Install"))
{
GGriffinUrpInstaller.Install();
}
GUI.enabled = isUnity20193orNewer && GCommon.CurrentRenderPipeline == GRenderPipelineType.Universal;
string upgradeButtonLabel =
GCommon.CurrentRenderPipeline == GRenderPipelineType.Universal ?
"Upgrade Terrain Materials" :
"Enable URP to upgrade terrain materials.";
if (GUILayout.Button(upgradeButtonLabel))
{
GGriffinUrpInstaller.UpgradeTerrainMaterialInProject();
}
GUI.enabled = true;
}
}
}
#endif

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 75990f54f4e88224181f33efe43ee481
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,3 @@
{
"reference": "GUID:5d7906c0134269149b5691f96c01c162"
}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 82ee79896e95a2a45b75e0838166bdd1
AssemblyDefinitionReferenceImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant: