Andre McGrail
6 年前
当前提交
b1f6c73f
共有 27 个文件被更改,包括 1762 次插入 和 1757 次删除
-
1001Assets/MainIsland.asset
-
2Assets/NavMeshComponents.meta
-
149Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs
-
47Assets/NavMeshComponents/Scripts/NavMeshSurface.cs
-
5Assets/Objects/boats/Interceptor.mat
-
8Assets/Objects/environment/Trees/Materials/Softvegetation.mat
-
8Assets/Objects/environment/Trees/Materials/Trees.mat
-
5Assets/Objects/environment/Trees/Materials/Trees_billboards.mat
-
13Assets/Objects/props/houses/Materials/Matr_BuildingsJettys.mat
-
5Assets/Objects/props/props/Matr_Props.mat
-
5Assets/Objects/props/props/Matr_Props_Hue.mat
-
225Assets/Objects/props/props/Prefabs/Geo_Props_Paraglider.prefab
-
127Assets/Scripts/Rendering/MyLWRenderer.cs
-
19Assets/Scripts/Rendering/WaterFXPass.cs
-
16Assets/Shaders/LWVegetationShader.shader
-
16Assets/Shaders/PackedPBR.ShaderGraph
-
5Assets/Textures/Island/Materials/BushTest.mat
-
904Assets/scenes/Island.unity
-
23Assets/scenes/Island_Profiles/PostVolumeGlobal Profile.asset
-
174Assets/scenes/Testing/meshSetups.unity
-
325Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs
-
11Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs.meta
-
8Assets/Plugins.meta
-
71Assets/_TerrainAutoUpgrade/Terrain.mat
-
8Assets/_TerrainAutoUpgrade/Terrain.mat.meta
-
332Assets/scenes/Testing/Terrain.unity
-
7Assets/scenes/Testing/Terrain.unity.meta
1001
Assets/MainIsland.asset
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
16
Assets/Shaders/PackedPBR.ShaderGraph
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
904
Assets/scenes/Island.unity
文件差异内容过多而无法显示
查看文件
文件差异内容过多而无法显示
查看文件
|
|||
using System.Collections.Generic; |
|||
using System.IO; |
|||
using UnityEditor.Experimental.SceneManagement; |
|||
using UnityEditor.SceneManagement; |
|||
using UnityEngine.AI; |
|||
using UnityEngine; |
|||
|
|||
namespace UnityEditor.AI |
|||
{ |
|||
public class NavMeshAssetManager : ScriptableSingleton<NavMeshAssetManager> |
|||
{ |
|||
internal struct AsyncBakeOperation |
|||
{ |
|||
public NavMeshSurface surface; |
|||
public NavMeshData bakeData; |
|||
public AsyncOperation bakeOperation; |
|||
} |
|||
|
|||
List<AsyncBakeOperation> m_BakeOperations = new List<AsyncBakeOperation>(); |
|||
internal List<AsyncBakeOperation> GetBakeOperations() { return m_BakeOperations; } |
|||
|
|||
struct SavedPrefabNavMeshData |
|||
{ |
|||
public NavMeshSurface surface; |
|||
public NavMeshData navMeshData; |
|||
} |
|||
|
|||
List<SavedPrefabNavMeshData> m_PrefabNavMeshDataAssets = new List<SavedPrefabNavMeshData>(); |
|||
|
|||
static string GetAndEnsureTargetPath(NavMeshSurface surface) |
|||
{ |
|||
// Create directory for the asset if it does not exist yet.
|
|||
var activeScenePath = surface.gameObject.scene.path; |
|||
|
|||
var targetPath = "Assets"; |
|||
if (!string.IsNullOrEmpty(activeScenePath)) |
|||
{ |
|||
targetPath = Path.Combine(Path.GetDirectoryName(activeScenePath), Path.GetFileNameWithoutExtension(activeScenePath)); |
|||
} |
|||
else |
|||
{ |
|||
var prefabStage = PrefabStageUtility.GetPrefabStage(surface.gameObject); |
|||
var isPartOfPrefab = prefabStage != null && prefabStage.IsPartOfPrefabContents(surface.gameObject); |
|||
if (isPartOfPrefab && !string.IsNullOrEmpty(prefabStage.prefabAssetPath)) |
|||
{ |
|||
var prefabDirectoryName = Path.GetDirectoryName(prefabStage.prefabAssetPath); |
|||
if (!string.IsNullOrEmpty(prefabDirectoryName)) |
|||
targetPath = prefabDirectoryName; |
|||
} |
|||
} |
|||
if (!Directory.Exists(targetPath)) |
|||
Directory.CreateDirectory(targetPath); |
|||
return targetPath; |
|||
} |
|||
|
|||
static void CreateNavMeshAsset(NavMeshSurface surface) |
|||
{ |
|||
var targetPath = GetAndEnsureTargetPath(surface); |
|||
|
|||
var combinedAssetPath = Path.Combine(targetPath, "NavMesh-" + surface.name + ".asset"); |
|||
combinedAssetPath = AssetDatabase.GenerateUniqueAssetPath(combinedAssetPath); |
|||
AssetDatabase.CreateAsset(surface.navMeshData, combinedAssetPath); |
|||
} |
|||
|
|||
NavMeshData GetNavMeshAssetToDelete(NavMeshSurface navSurface) |
|||
{ |
|||
if (PrefabUtility.IsPartOfPrefabInstance(navSurface) && !PrefabUtility.IsPartOfModelPrefab(navSurface)) |
|||
{ |
|||
// Don't allow deleting the asset belonging to the prefab parent
|
|||
var parentSurface = PrefabUtility.GetCorrespondingObjectFromSource(navSurface) as NavMeshSurface; |
|||
if (parentSurface && navSurface.navMeshData == parentSurface.navMeshData) |
|||
return null; |
|||
} |
|||
|
|||
// Do not delete the NavMeshData asset referenced from a prefab until the prefab is saved
|
|||
var prefabStage = PrefabStageUtility.GetPrefabStage(navSurface.gameObject); |
|||
var isPartOfPrefab = prefabStage != null && prefabStage.IsPartOfPrefabContents(navSurface.gameObject); |
|||
if (isPartOfPrefab && IsCurrentPrefabNavMeshDataStored(navSurface)) |
|||
return null; |
|||
|
|||
return navSurface.navMeshData; |
|||
} |
|||
|
|||
void ClearSurface(NavMeshSurface navSurface) |
|||
{ |
|||
var hasNavMeshData = navSurface.navMeshData != null; |
|||
StoreNavMeshDataIfInPrefab(navSurface); |
|||
|
|||
var assetToDelete = GetNavMeshAssetToDelete(navSurface); |
|||
navSurface.RemoveData(); |
|||
|
|||
if (hasNavMeshData) |
|||
{ |
|||
SetNavMeshData(navSurface, null); |
|||
EditorSceneManager.MarkSceneDirty(navSurface.gameObject.scene); |
|||
} |
|||
|
|||
if (assetToDelete) |
|||
AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(assetToDelete)); |
|||
} |
|||
|
|||
public void StartBakingSurfaces(UnityEngine.Object[] surfaces) |
|||
{ |
|||
// Remove first to avoid double registration of the callback
|
|||
EditorApplication.update -= UpdateAsyncBuildOperations; |
|||
EditorApplication.update += UpdateAsyncBuildOperations; |
|||
|
|||
foreach (NavMeshSurface surf in surfaces) |
|||
{ |
|||
StoreNavMeshDataIfInPrefab(surf); |
|||
|
|||
var oper = new AsyncBakeOperation(); |
|||
|
|||
oper.bakeData = InitializeBakeData(surf); |
|||
oper.bakeOperation = surf.UpdateNavMesh(oper.bakeData); |
|||
oper.surface = surf; |
|||
|
|||
m_BakeOperations.Add(oper); |
|||
} |
|||
} |
|||
|
|||
static NavMeshData InitializeBakeData(NavMeshSurface surface) |
|||
{ |
|||
var emptySources = new List<NavMeshBuildSource>(); |
|||
var emptyBounds = new Bounds(); |
|||
return UnityEngine.AI.NavMeshBuilder.BuildNavMeshData(surface.GetBuildSettings(), emptySources, emptyBounds |
|||
, surface.transform.position, surface.transform.rotation); |
|||
} |
|||
|
|||
void UpdateAsyncBuildOperations() |
|||
{ |
|||
foreach (var oper in m_BakeOperations) |
|||
{ |
|||
if (oper.surface == null || oper.bakeOperation == null) |
|||
continue; |
|||
|
|||
if (oper.bakeOperation.isDone) |
|||
{ |
|||
var surface = oper.surface; |
|||
var delete = GetNavMeshAssetToDelete(surface); |
|||
if (delete != null) |
|||
AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(delete)); |
|||
|
|||
surface.RemoveData(); |
|||
SetNavMeshData(surface, oper.bakeData); |
|||
|
|||
if (surface.isActiveAndEnabled) |
|||
surface.AddData(); |
|||
CreateNavMeshAsset(surface); |
|||
EditorSceneManager.MarkSceneDirty(surface.gameObject.scene); |
|||
} |
|||
} |
|||
m_BakeOperations.RemoveAll(o => o.bakeOperation == null || o.bakeOperation.isDone); |
|||
if (m_BakeOperations.Count == 0) |
|||
EditorApplication.update -= UpdateAsyncBuildOperations; |
|||
} |
|||
|
|||
public bool IsSurfaceBaking(NavMeshSurface surface) |
|||
{ |
|||
if (surface == null) |
|||
return false; |
|||
|
|||
foreach (var oper in m_BakeOperations) |
|||
{ |
|||
if (oper.surface == null || oper.bakeOperation == null) |
|||
continue; |
|||
|
|||
if (oper.surface == surface) |
|||
return true; |
|||
} |
|||
|
|||
return false; |
|||
} |
|||
|
|||
public void ClearSurfaces(UnityEngine.Object[] surfaces) |
|||
{ |
|||
foreach (NavMeshSurface s in surfaces) |
|||
ClearSurface(s); |
|||
} |
|||
|
|||
static void SetNavMeshData(NavMeshSurface navSurface, NavMeshData navMeshData) |
|||
{ |
|||
var so = new SerializedObject(navSurface); |
|||
var navMeshDataProperty = so.FindProperty("m_NavMeshData"); |
|||
navMeshDataProperty.objectReferenceValue = navMeshData; |
|||
so.ApplyModifiedPropertiesWithoutUndo(); |
|||
} |
|||
|
|||
void StoreNavMeshDataIfInPrefab(NavMeshSurface surfaceToStore) |
|||
{ |
|||
var prefabStage = PrefabStageUtility.GetPrefabStage(surfaceToStore.gameObject); |
|||
var isPartOfPrefab = prefabStage != null && prefabStage.IsPartOfPrefabContents(surfaceToStore.gameObject); |
|||
if (!isPartOfPrefab) |
|||
return; |
|||
|
|||
// check if data has already been stored for this surface
|
|||
foreach (var storedAssetInfo in m_PrefabNavMeshDataAssets) |
|||
if (storedAssetInfo.surface == surfaceToStore) |
|||
return; |
|||
|
|||
if (m_PrefabNavMeshDataAssets.Count == 0) |
|||
{ |
|||
PrefabStage.prefabSaving -= DeleteStoredNavMeshDataAssetsForOwnedSurfaces; |
|||
PrefabStage.prefabSaving += DeleteStoredNavMeshDataAssetsForOwnedSurfaces; |
|||
|
|||
PrefabStage.prefabStageClosing -= ForgetUnsavedNavMeshDataChanges; |
|||
PrefabStage.prefabStageClosing += ForgetUnsavedNavMeshDataChanges; |
|||
} |
|||
|
|||
var isDataOwner = true; |
|||
if (PrefabUtility.IsPartOfPrefabInstance(surfaceToStore) && !PrefabUtility.IsPartOfModelPrefab(surfaceToStore)) |
|||
{ |
|||
var basePrefabSurface = PrefabUtility.GetCorrespondingObjectFromSource(surfaceToStore) as NavMeshSurface; |
|||
isDataOwner = basePrefabSurface == null || surfaceToStore.navMeshData != basePrefabSurface.navMeshData; |
|||
} |
|||
m_PrefabNavMeshDataAssets.Add(new SavedPrefabNavMeshData { surface = surfaceToStore, navMeshData = isDataOwner ? surfaceToStore.navMeshData : null }); |
|||
} |
|||
|
|||
bool IsCurrentPrefabNavMeshDataStored(NavMeshSurface surface) |
|||
{ |
|||
if (surface == null) |
|||
return false; |
|||
|
|||
foreach (var storedAssetInfo in m_PrefabNavMeshDataAssets) |
|||
{ |
|||
if (storedAssetInfo.surface == surface) |
|||
return storedAssetInfo.navMeshData == surface.navMeshData; |
|||
} |
|||
|
|||
return false; |
|||
} |
|||
|
|||
void DeleteStoredNavMeshDataAssetsForOwnedSurfaces(GameObject gameObjectInPrefab) |
|||
{ |
|||
// Debug.LogFormat("DeleteStoredNavMeshDataAsset() when saving prefab {0}", gameObjectInPrefab.name);
|
|||
|
|||
var surfaces = gameObjectInPrefab.GetComponentsInChildren<NavMeshSurface>(true); |
|||
foreach (var surface in surfaces) |
|||
DeleteStoredPrefabNavMeshDataAsset(surface); |
|||
} |
|||
|
|||
void DeleteStoredPrefabNavMeshDataAsset(NavMeshSurface surface) |
|||
{ |
|||
for (var i = m_PrefabNavMeshDataAssets.Count - 1; i >= 0; i--) |
|||
{ |
|||
var storedAssetInfo = m_PrefabNavMeshDataAssets[i]; |
|||
if (storedAssetInfo.surface == surface) |
|||
{ |
|||
var storedNavMeshData = storedAssetInfo.navMeshData; |
|||
if (storedNavMeshData != null && storedNavMeshData != surface.navMeshData) |
|||
{ |
|||
var assetPath = AssetDatabase.GetAssetPath(storedNavMeshData); |
|||
AssetDatabase.DeleteAsset(assetPath); |
|||
} |
|||
|
|||
m_PrefabNavMeshDataAssets.RemoveAt(i); |
|||
break; |
|||
} |
|||
} |
|||
|
|||
if (m_PrefabNavMeshDataAssets.Count == 0) |
|||
{ |
|||
PrefabStage.prefabSaving -= DeleteStoredNavMeshDataAssetsForOwnedSurfaces; |
|||
PrefabStage.prefabStageClosing -= ForgetUnsavedNavMeshDataChanges; |
|||
} |
|||
} |
|||
|
|||
void ForgetUnsavedNavMeshDataChanges(PrefabStage prefabStage) |
|||
{ |
|||
// Debug.Log("On prefab closing - forget about this object's surfaces and stop caring about prefab saving");
|
|||
|
|||
if (prefabStage == null) |
|||
return; |
|||
|
|||
var allSurfacesInPrefab = prefabStage.prefabContentsRoot.GetComponentsInChildren<NavMeshSurface>(true); |
|||
NavMeshSurface surfaceInPrefab = null; |
|||
var index = 0; |
|||
do |
|||
{ |
|||
if (allSurfacesInPrefab.Length > 0) |
|||
surfaceInPrefab = allSurfacesInPrefab[index]; |
|||
|
|||
for (var i = m_PrefabNavMeshDataAssets.Count - 1; i >= 0; i--) |
|||
{ |
|||
var storedPrefabInfo = m_PrefabNavMeshDataAssets[i]; |
|||
if (storedPrefabInfo.surface == null) |
|||
{ |
|||
// Debug.LogFormat("A surface from the prefab got deleted after it has baked a new NavMesh but it hasn't saved it. Now the unsaved asset gets deleted. ({0})", storedPrefabInfo.navMeshData);
|
|||
|
|||
// surface got deleted, thus delete its initial NavMeshData asset
|
|||
if (storedPrefabInfo.navMeshData != null) |
|||
{ |
|||
var assetPath = AssetDatabase.GetAssetPath(storedPrefabInfo.navMeshData); |
|||
AssetDatabase.DeleteAsset(assetPath); |
|||
} |
|||
|
|||
m_PrefabNavMeshDataAssets.RemoveAt(i); |
|||
} |
|||
else if (surfaceInPrefab != null && storedPrefabInfo.surface == surfaceInPrefab) |
|||
{ |
|||
//Debug.LogFormat("The surface {0} from the prefab was storing the original navmesh data and now will be forgotten", surfaceInPrefab);
|
|||
|
|||
var baseSurface = PrefabUtility.GetCorrespondingObjectFromSource(surfaceInPrefab) as NavMeshSurface; |
|||
if (baseSurface == null || surfaceInPrefab.navMeshData != baseSurface.navMeshData) |
|||
{ |
|||
var assetPath = AssetDatabase.GetAssetPath(surfaceInPrefab.navMeshData); |
|||
AssetDatabase.DeleteAsset(assetPath); |
|||
|
|||
//Debug.LogFormat("The surface {0} from the prefab has baked new NavMeshData but did not save this change so the asset has been now deleted. ({1})",
|
|||
// surfaceInPrefab, assetPath);
|
|||
} |
|||
|
|||
m_PrefabNavMeshDataAssets.RemoveAt(i); |
|||
} |
|||
} |
|||
} while (++index < allSurfacesInPrefab.Length); |
|||
|
|||
if (m_PrefabNavMeshDataAssets.Count == 0) |
|||
{ |
|||
PrefabStage.prefabSaving -= DeleteStoredNavMeshDataAssetsForOwnedSurfaces; |
|||
PrefabStage.prefabStageClosing -= ForgetUnsavedNavMeshDataChanges; |
|||
} |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 178d8366aa1616849b91b66285c51454 |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
fileFormatVersion: 2 |
|||
guid: 37f591b3d23b24a118d3b6978de8ab76 |
|||
folderAsset: yes |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!21 &2100000 |
|||
Material: |
|||
serializedVersion: 6 |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_Name: Terrain |
|||
m_Shader: {fileID: 4800000, guid: 69c1f799e772cb6438f56c23efccb782, type: 3} |
|||
m_ShaderKeywords: |
|||
m_LightmapFlags: 4 |
|||
m_EnableInstancingVariants: 0 |
|||
m_DoubleSidedGI: 0 |
|||
m_CustomRenderQueue: -1 |
|||
stringTagMap: {} |
|||
disabledShaderPasses: [] |
|||
m_SavedProperties: |
|||
serializedVersion: 3 |
|||
m_TexEnvs: |
|||
- _Control: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _MainTex: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _Normal0: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _Normal1: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _Normal2: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _Normal3: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _Splat0: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _Splat1: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _Splat2: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
- _Splat3: |
|||
m_Texture: {fileID: 0} |
|||
m_Scale: {x: 1, y: 1} |
|||
m_Offset: {x: 0, y: 0} |
|||
m_Floats: |
|||
- _Metallic0: 0 |
|||
- _Metallic1: 0 |
|||
- _Metallic2: 0 |
|||
- _Metallic3: 0 |
|||
- _Smoothness0: 0.5 |
|||
- _Smoothness1: 0.5 |
|||
- _Smoothness2: 0.5 |
|||
- _Smoothness3: 0.5 |
|||
m_Colors: |
|||
- _Color: {r: 1, g: 1, b: 1, a: 1} |
|
|||
fileFormatVersion: 2 |
|||
guid: ceddfe3ad8e46440a847d6f58a5b909e |
|||
NativeFormatImporter: |
|||
externalObjects: {} |
|||
mainObjectFileID: 2100000 |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
%YAML 1.1 |
|||
%TAG !u! tag:unity3d.com,2011: |
|||
--- !u!29 &1 |
|||
OcclusionCullingSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 2 |
|||
m_OcclusionBakeSettings: |
|||
smallestOccluder: 5 |
|||
smallestHole: 0.25 |
|||
backfaceThreshold: 100 |
|||
m_SceneGUID: 00000000000000000000000000000000 |
|||
m_OcclusionCullingData: {fileID: 0} |
|||
--- !u!104 &2 |
|||
RenderSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 9 |
|||
m_Fog: 0 |
|||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} |
|||
m_FogMode: 3 |
|||
m_FogDensity: 0.01 |
|||
m_LinearFogStart: 0 |
|||
m_LinearFogEnd: 300 |
|||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} |
|||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} |
|||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} |
|||
m_AmbientIntensity: 1 |
|||
m_AmbientMode: 0 |
|||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} |
|||
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} |
|||
m_HaloStrength: 0.5 |
|||
m_FlareStrength: 1 |
|||
m_FlareFadeSpeed: 3 |
|||
m_HaloTexture: {fileID: 0} |
|||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} |
|||
m_DefaultReflectionMode: 0 |
|||
m_DefaultReflectionResolution: 128 |
|||
m_ReflectionBounces: 1 |
|||
m_ReflectionIntensity: 1 |
|||
m_CustomReflection: {fileID: 0} |
|||
m_Sun: {fileID: 0} |
|||
m_IndirectSpecularColor: {r: 0.18028373, g: 0.22571406, b: 0.3069228, a: 1} |
|||
m_UseRadianceAmbientProbe: 0 |
|||
--- !u!157 &3 |
|||
LightmapSettings: |
|||
m_ObjectHideFlags: 0 |
|||
serializedVersion: 11 |
|||
m_GIWorkflowMode: 0 |
|||
m_GISettings: |
|||
serializedVersion: 2 |
|||
m_BounceScale: 1 |
|||
m_IndirectOutputScale: 1 |
|||
m_AlbedoBoost: 1 |
|||
m_TemporalCoherenceThreshold: 1 |
|||
m_EnvironmentLightingMode: 0 |
|||
m_EnableBakedLightmaps: 1 |
|||
m_EnableRealtimeLightmaps: 1 |
|||
m_LightmapEditorSettings: |
|||
serializedVersion: 10 |
|||
m_Resolution: 2 |
|||
m_BakeResolution: 40 |
|||
m_AtlasSize: 1024 |
|||
m_AO: 0 |
|||
m_AOMaxDistance: 1 |
|||
m_CompAOExponent: 1 |
|||
m_CompAOExponentDirect: 0 |
|||
m_Padding: 2 |
|||
m_LightmapParameters: {fileID: 0} |
|||
m_LightmapsBakeMode: 1 |
|||
m_TextureCompression: 1 |
|||
m_FinalGather: 0 |
|||
m_FinalGatherFiltering: 1 |
|||
m_FinalGatherRayCount: 256 |
|||
m_ReflectionCompression: 2 |
|||
m_MixedBakeMode: 2 |
|||
m_BakeBackend: 1 |
|||
m_PVRSampling: 1 |
|||
m_PVRDirectSampleCount: 32 |
|||
m_PVRSampleCount: 500 |
|||
m_PVRBounces: 2 |
|||
m_PVRFilterTypeDirect: 0 |
|||
m_PVRFilterTypeIndirect: 0 |
|||
m_PVRFilterTypeAO: 0 |
|||
m_PVRFilteringMode: 1 |
|||
m_PVRCulling: 1 |
|||
m_PVRFilteringGaussRadiusDirect: 1 |
|||
m_PVRFilteringGaussRadiusIndirect: 5 |
|||
m_PVRFilteringGaussRadiusAO: 2 |
|||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5 |
|||
m_PVRFilteringAtrousPositionSigmaIndirect: 2 |
|||
m_PVRFilteringAtrousPositionSigmaAO: 1 |
|||
m_ShowResolutionOverlay: 1 |
|||
m_LightingDataAsset: {fileID: 0} |
|||
m_UseShadowmask: 1 |
|||
--- !u!196 &4 |
|||
NavMeshSettings: |
|||
serializedVersion: 2 |
|||
m_ObjectHideFlags: 0 |
|||
m_BuildSettings: |
|||
serializedVersion: 2 |
|||
agentTypeID: 0 |
|||
agentRadius: 0.5 |
|||
agentHeight: 2 |
|||
agentSlope: 45 |
|||
agentClimb: 0.4 |
|||
ledgeDropHeight: 0 |
|||
maxJumpAcrossDistance: 0 |
|||
minRegionArea: 2 |
|||
manualCellSize: 0 |
|||
cellSize: 0.16666667 |
|||
manualTileSize: 0 |
|||
tileSize: 256 |
|||
accuratePlacement: 0 |
|||
debug: |
|||
m_Flags: 0 |
|||
m_NavMeshData: {fileID: 0} |
|||
--- !u!1 &1013239195 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 1013239197} |
|||
- component: {fileID: 1013239196} |
|||
m_Layer: 0 |
|||
m_Name: Directional Light |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!108 &1013239196 |
|||
Light: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1013239195} |
|||
m_Enabled: 1 |
|||
serializedVersion: 8 |
|||
m_Type: 1 |
|||
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} |
|||
m_Intensity: 1 |
|||
m_Range: 10 |
|||
m_SpotAngle: 30 |
|||
m_CookieSize: 10 |
|||
m_Shadows: |
|||
m_Type: 2 |
|||
m_Resolution: -1 |
|||
m_CustomResolution: -1 |
|||
m_Strength: 1 |
|||
m_Bias: 0.05 |
|||
m_NormalBias: 0.4 |
|||
m_NearPlane: 0.2 |
|||
m_Cookie: {fileID: 0} |
|||
m_DrawHalo: 0 |
|||
m_Flare: {fileID: 0} |
|||
m_RenderMode: 0 |
|||
m_CullingMask: |
|||
serializedVersion: 2 |
|||
m_Bits: 4294967295 |
|||
m_Lightmapping: 4 |
|||
m_LightShadowCasterMode: 0 |
|||
m_AreaSize: {x: 1, y: 1} |
|||
m_BounceIntensity: 1 |
|||
m_ColorTemperature: 6570 |
|||
m_UseColorTemperature: 0 |
|||
m_ShadowRadius: 0 |
|||
m_ShadowAngle: 0 |
|||
--- !u!4 &1013239197 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1013239195} |
|||
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} |
|||
m_LocalPosition: {x: 0, y: 3, z: 0} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 1 |
|||
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} |
|||
--- !u!1 &1423289014 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 1423289017} |
|||
- component: {fileID: 1423289016} |
|||
- component: {fileID: 1423289015} |
|||
m_Layer: 0 |
|||
m_Name: Main Camera |
|||
m_TagString: MainCamera |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!81 &1423289015 |
|||
AudioListener: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1423289014} |
|||
m_Enabled: 1 |
|||
--- !u!20 &1423289016 |
|||
Camera: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1423289014} |
|||
m_Enabled: 1 |
|||
serializedVersion: 2 |
|||
m_ClearFlags: 1 |
|||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} |
|||
m_projectionMatrixMode: 1 |
|||
m_SensorSize: {x: 36, y: 24} |
|||
m_LensShift: {x: 0, y: 0} |
|||
m_GateFitMode: 2 |
|||
m_FocalLength: 50 |
|||
m_NormalizedViewPortRect: |
|||
serializedVersion: 2 |
|||
x: 0 |
|||
y: 0 |
|||
width: 1 |
|||
height: 1 |
|||
near clip plane: 0.3 |
|||
far clip plane: 1000 |
|||
field of view: 60 |
|||
orthographic: 0 |
|||
orthographic size: 5 |
|||
m_Depth: -1 |
|||
m_CullingMask: |
|||
serializedVersion: 2 |
|||
m_Bits: 4294967295 |
|||
m_RenderingPath: -1 |
|||
m_TargetTexture: {fileID: 0} |
|||
m_TargetDisplay: 0 |
|||
m_TargetEye: 3 |
|||
m_HDR: 1 |
|||
m_AllowMSAA: 1 |
|||
m_AllowDynamicResolution: 0 |
|||
m_ForceIntoRT: 0 |
|||
m_OcclusionCulling: 1 |
|||
m_StereoConvergence: 10 |
|||
m_StereoSeparation: 0.022 |
|||
--- !u!4 &1423289017 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 1423289014} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: 0, y: 1, z: -10} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 0 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|||
--- !u!1 &2119493324 |
|||
GameObject: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
serializedVersion: 6 |
|||
m_Component: |
|||
- component: {fileID: 2119493327} |
|||
- component: {fileID: 2119493326} |
|||
- component: {fileID: 2119493325} |
|||
m_Layer: 0 |
|||
m_Name: GameObject |
|||
m_TagString: Untagged |
|||
m_Icon: {fileID: 0} |
|||
m_NavMeshLayer: 0 |
|||
m_StaticEditorFlags: 0 |
|||
m_IsActive: 1 |
|||
--- !u!154 &2119493325 |
|||
TerrainCollider: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 2119493324} |
|||
m_Material: {fileID: 0} |
|||
m_Enabled: 1 |
|||
m_TerrainData: {fileID: 15600000, guid: f46269ea1099c4fb4bc7191f76fcfab3, type: 2} |
|||
m_EnableTreeColliders: 1 |
|||
--- !u!218 &2119493326 |
|||
Terrain: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 2119493324} |
|||
m_Enabled: 1 |
|||
serializedVersion: 3 |
|||
m_TerrainData: {fileID: 15600000, guid: f46269ea1099c4fb4bc7191f76fcfab3, type: 2} |
|||
m_TreeDistance: 2000 |
|||
m_TreeBillboardDistance: 50 |
|||
m_TreeCrossFadeLength: 5 |
|||
m_TreeMaximumFullLODCount: 50 |
|||
m_DetailObjectDistance: 80 |
|||
m_DetailObjectDensity: 1 |
|||
m_HeightmapPixelError: 5 |
|||
m_SplatMapDistance: 1000 |
|||
m_HeightmapMaximumLOD: 0 |
|||
m_CastShadows: 1 |
|||
m_DrawHeightmap: 1 |
|||
m_DrawInstanced: 0 |
|||
m_DrawTreesAndFoliage: 1 |
|||
m_ReflectionProbeUsage: 1 |
|||
m_MaterialType: 3 |
|||
m_LegacySpecular: |
|||
serializedVersion: 2 |
|||
rgba: 4286545791 |
|||
m_LegacyShininess: 0.078125 |
|||
m_MaterialTemplate: {fileID: 2100000, guid: ceddfe3ad8e46440a847d6f58a5b909e, type: 2} |
|||
m_BakeLightProbesForTrees: 1 |
|||
m_PreserveTreePrototypeLayers: 0 |
|||
m_ScaleInLightmap: 1 |
|||
m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} |
|||
--- !u!4 &2119493327 |
|||
Transform: |
|||
m_ObjectHideFlags: 0 |
|||
m_CorrespondingSourceObject: {fileID: 0} |
|||
m_PrefabInternal: {fileID: 0} |
|||
m_GameObject: {fileID: 2119493324} |
|||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
|||
m_LocalPosition: {x: -22.6, y: 2.6, z: 30.55} |
|||
m_LocalScale: {x: 1, y: 1, z: 1} |
|||
m_Children: [] |
|||
m_Father: {fileID: 0} |
|||
m_RootOrder: 2 |
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
|
|||
fileFormatVersion: 2 |
|||
guid: 4ef3ff9e63a9a492b9437a4d2d6ca316 |
|||
DefaultImporter: |
|||
externalObjects: {} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
撰写
预览
正在加载...
取消
保存
Reference in new issue