添加 CombatNodeComponent 及相关类
- CombatNodeComponent:节点组件,负责提取并开始关卡 - CombatScheduler:关卡调度器,负责关卡的生命周期调度 - MapEntity:地图实体,提供地图相关的数据 - Spawner:出生点,负责标记地图上的敌人出生点坐标 - House:基地,负责标记地图上的敌人目标点坐标
This commit is contained in:
parent
d9c118ace3
commit
dd9cedef5f
|
|
@ -102,3 +102,5 @@ InitTestScene*.unity*
|
||||||
/.vscode
|
/.vscode
|
||||||
AGENTS.md
|
AGENTS.md
|
||||||
/.dotnet-home
|
/.dotnet-home
|
||||||
|
/[Aa]ssets/RawResources
|
||||||
|
/[Aa]ssets/RawResources.meta
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7258f46ca3cc69546ad93c07bcd08582
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0cc71b1087c7dfd42a8233a7101fc27e
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e69bde6c996edd94397c98e836e81bf3
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 80277bb9563227842a4231e7178e88a7
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f4c8efb3dfa084241abdcb15db1f27e8
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,100 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &6419463151899262168
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 2220800525145552943}
|
||||||
|
- component: {fileID: 6893725239225079109}
|
||||||
|
- component: {fileID: 1122596187208388309}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: TestEnemy
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &2220800525145552943
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6419463151899262168}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!212 &6893725239225079109
|
||||||
|
SpriteRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6419463151899262168}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 0
|
||||||
|
m_ReceiveShadows: 0
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_StaticShadowCaster: 0
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 0
|
||||||
|
m_RayTraceProcedural: 0
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_ReceiveGI: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 1
|
||||||
|
m_SelectedEditorRenderState: 0
|
||||||
|
m_MinimumChartSize: 4
|
||||||
|
m_AutoUVMaxDistance: 0.5
|
||||||
|
m_AutoUVMaxAngle: 89
|
||||||
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_SortingLayerID: -1869315837
|
||||||
|
m_SortingLayer: 1
|
||||||
|
m_SortingOrder: 0
|
||||||
|
m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b,
|
||||||
|
type: 3}
|
||||||
|
m_Color: {r: 0.7, g: 0.7, b: 0.7, a: 1}
|
||||||
|
m_FlipX: 0
|
||||||
|
m_FlipY: 0
|
||||||
|
m_DrawMode: 0
|
||||||
|
m_Size: {x: 1, y: 1}
|
||||||
|
m_AdaptiveModeThreshold: 0.5
|
||||||
|
m_SpriteTileMode: 0
|
||||||
|
m_WasSpriteAssigned: 1
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_SpriteSortPoint: 0
|
||||||
|
--- !u!114 &1122596187208388309
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 6419463151899262168}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 9baf591df06b9bb44ba5313457ba84b3, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0cd1424cd9c330d4492a6d541cb4275e
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -321,7 +321,7 @@ Camera:
|
||||||
m_Enabled: 1
|
m_Enabled: 1
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_ClearFlags: 1
|
m_ClearFlags: 1
|
||||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
m_projectionMatrixMode: 1
|
m_projectionMatrixMode: 1
|
||||||
m_GateFitMode: 2
|
m_GateFitMode: 2
|
||||||
m_FOVAxisMode: 0
|
m_FOVAxisMode: 0
|
||||||
|
|
@ -343,10 +343,10 @@ Camera:
|
||||||
width: 1
|
width: 1
|
||||||
height: 1
|
height: 1
|
||||||
near clip plane: 0.3
|
near clip plane: 0.3
|
||||||
far clip plane: 1000
|
far clip plane: 50
|
||||||
field of view: 60
|
field of view: 60
|
||||||
orthographic: 0
|
orthographic: 1
|
||||||
orthographic size: 5
|
orthographic size: 7.5
|
||||||
m_Depth: -1
|
m_Depth: -1
|
||||||
m_CullingMask:
|
m_CullingMask:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
|
|
|
||||||
|
|
@ -343,10 +343,10 @@ Camera:
|
||||||
width: 1
|
width: 1
|
||||||
height: 1
|
height: 1
|
||||||
near clip plane: 0.3
|
near clip plane: 0.3
|
||||||
far clip plane: 1000
|
far clip plane: 50
|
||||||
field of view: 60
|
field of view: 60
|
||||||
orthographic: 0
|
orthographic: 1
|
||||||
orthographic size: 5
|
orthographic size: 7.5
|
||||||
m_Depth: -1
|
m_Depth: -1
|
||||||
m_CullingMask:
|
m_CullingMask:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
|
|
@ -371,7 +371,7 @@ Transform:
|
||||||
m_GameObject: {fileID: 961739749}
|
m_GameObject: {fileID: 961739749}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
m_LocalPosition: {x: 0, y: 1, z: -10}
|
m_LocalPosition: {x: 0, y: 0, z: -10}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children: []
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,6 @@ public partial class GameEntry : MonoBehaviour
|
||||||
|
|
||||||
public static HPBarComponent HPBar { get; private set; }
|
public static HPBarComponent HPBar { get; private set; }
|
||||||
|
|
||||||
public static EnemyManagerComponent EnemyManager { get; private set; }
|
|
||||||
|
|
||||||
public static UIRouterComponent UIRouter { get; private set; }
|
public static UIRouterComponent UIRouter { get; private set; }
|
||||||
|
|
||||||
public static EventNodeComponent EventNode { get; private set; }
|
public static EventNodeComponent EventNode { get; private set; }
|
||||||
|
|
@ -30,7 +28,6 @@ public partial class GameEntry : MonoBehaviour
|
||||||
{
|
{
|
||||||
BuiltinData = UnityGameFramework.Runtime.GameEntry.GetComponent<BuiltinDataComponent>();
|
BuiltinData = UnityGameFramework.Runtime.GameEntry.GetComponent<BuiltinDataComponent>();
|
||||||
HPBar = UnityGameFramework.Runtime.GameEntry.GetComponent<HPBarComponent>();
|
HPBar = UnityGameFramework.Runtime.GameEntry.GetComponent<HPBarComponent>();
|
||||||
EnemyManager = UnityGameFramework.Runtime.GameEntry.GetComponent<EnemyManagerComponent>();
|
|
||||||
UIRouter = UnityGameFramework.Runtime.GameEntry.GetComponent<UIRouterComponent>();
|
UIRouter = UnityGameFramework.Runtime.GameEntry.GetComponent<UIRouterComponent>();
|
||||||
EventNode = UnityGameFramework.Runtime.GameEntry.GetComponent<EventNodeComponent>();
|
EventNode = UnityGameFramework.Runtime.GameEntry.GetComponent<EventNodeComponent>();
|
||||||
CombatNode = UnityGameFramework.Runtime.GameEntry.GetComponent<CombatNodeComponent>();
|
CombatNode = UnityGameFramework.Runtime.GameEntry.GetComponent<CombatNodeComponent>();
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c942b083720d4d588063c5f1dde93428
|
||||||
|
timeCreated: 1772165636
|
||||||
|
|
@ -8,7 +8,7 @@ using UnityGameFramework.Runtime;
|
||||||
namespace GeometryTD.CustomComponent
|
namespace GeometryTD.CustomComponent
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 战斗节点组件
|
/// 鎴樻枟鑺傜偣缁勪欢
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class CombatNodeComponent : GameFrameworkComponent
|
public class CombatNodeComponent : GameFrameworkComponent
|
||||||
{
|
{
|
||||||
|
|
@ -20,19 +20,25 @@ namespace GeometryTD.CustomComponent
|
||||||
|
|
||||||
// LevelPhase.Id => LevelSpawnEntries
|
// LevelPhase.Id => LevelSpawnEntries
|
||||||
private readonly Dictionary<int, List<DRLevelSpawnEntry>> _spawnEntriesByPhaseId = new();
|
private readonly Dictionary<int, List<DRLevelSpawnEntry>> _spawnEntriesByPhaseId = new();
|
||||||
|
private readonly Dictionary<int, IReadOnlyList<DRLevelSpawnEntry>> _selectedSpawnEntriesByPhaseId = new();
|
||||||
private readonly List<int> _levelIdBuffer = new();
|
private readonly List<int> _levelIdBuffer = new();
|
||||||
|
private readonly CombatScheduler _combatScheduler = new CombatScheduler();
|
||||||
|
|
||||||
|
private bool _runtimeInitialized;
|
||||||
|
|
||||||
public LevelThemeType CurrentThemeType { get; private set; }
|
public LevelThemeType CurrentThemeType { get; private set; }
|
||||||
public DRLevel CurrentLevel { get; private set; }
|
public DRLevel CurrentLevel { get; private set; }
|
||||||
|
|
||||||
public void OnInit(LevelThemeType themeType)
|
public void OnInit(LevelThemeType themeType)
|
||||||
{
|
{
|
||||||
|
ShutdownBattleRuntime();
|
||||||
|
|
||||||
CurrentThemeType = themeType;
|
CurrentThemeType = themeType;
|
||||||
CurrentLevel = null;
|
CurrentLevel = null;
|
||||||
_levelsById.Clear();
|
_levelsById.Clear();
|
||||||
_phasesByLevelId.Clear();
|
_phasesByLevelId.Clear();
|
||||||
_spawnEntriesByPhaseId.Clear();
|
_spawnEntriesByPhaseId.Clear();
|
||||||
|
_selectedSpawnEntriesByPhaseId.Clear();
|
||||||
_levelIdBuffer.Clear();
|
_levelIdBuffer.Clear();
|
||||||
|
|
||||||
IDataTable<DRLevel> dtLevel = GameEntry.DataTable.GetDataTable<DRLevel>();
|
IDataTable<DRLevel> dtLevel = GameEntry.DataTable.GetDataTable<DRLevel>();
|
||||||
|
|
@ -45,8 +51,9 @@ namespace GeometryTD.CustomComponent
|
||||||
}
|
}
|
||||||
|
|
||||||
DRLevel[] levels = dtLevel.GetAllDataRows();
|
DRLevel[] levels = dtLevel.GetAllDataRows();
|
||||||
foreach (var level in levels)
|
for (int i = 0; i < levels.Length; i++)
|
||||||
{
|
{
|
||||||
|
DRLevel level = levels[i];
|
||||||
if (level.LevelThemeType != themeType)
|
if (level.LevelThemeType != themeType)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
|
|
@ -58,8 +65,9 @@ namespace GeometryTD.CustomComponent
|
||||||
}
|
}
|
||||||
|
|
||||||
DRLevelPhase[] levelPhases = dtLevelPhase.GetAllDataRows();
|
DRLevelPhase[] levelPhases = dtLevelPhase.GetAllDataRows();
|
||||||
foreach (var phase in levelPhases)
|
for (int i = 0; i < levelPhases.Length; i++)
|
||||||
{
|
{
|
||||||
|
DRLevelPhase phase = levelPhases[i];
|
||||||
int levelId = phase.Id / 1000;
|
int levelId = phase.Id / 1000;
|
||||||
if (!_levelsById.ContainsKey(levelId))
|
if (!_levelsById.ContainsKey(levelId))
|
||||||
{
|
{
|
||||||
|
|
@ -96,28 +104,130 @@ namespace GeometryTD.CustomComponent
|
||||||
entries.Add(spawnEntry);
|
entries.Add(spawnEntry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach (List<DRLevelPhase> phaseList in _phasesByLevelId.Values)
|
||||||
|
{
|
||||||
|
phaseList.Sort((left, right) => left.Id.CompareTo(right.Id));
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (List<DRLevelSpawnEntry> phaseSpawnEntries in _spawnEntriesByPhaseId.Values)
|
||||||
|
{
|
||||||
|
phaseSpawnEntries.Sort((left, right) =>
|
||||||
|
{
|
||||||
|
int timeCompare = left.StartTime.CompareTo(right.StartTime);
|
||||||
|
if (timeCompare != 0)
|
||||||
|
{
|
||||||
|
return timeCompare;
|
||||||
|
}
|
||||||
|
|
||||||
|
return left.Id.CompareTo(right.Id);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
Log.Info(
|
Log.Info(
|
||||||
"CombatNodeComponent initialized. Theme={0}, Levels={1}, Phases={2}, Entries={3}",
|
"CombatNodeComponent initialized. Theme={0}, Levels={1}, Phases={2}, Entries={3}.",
|
||||||
themeType,
|
themeType,
|
||||||
_levelsById.Count,
|
_levelsById.Count,
|
||||||
CountPhases(),
|
CountPhases(),
|
||||||
CountEntries());
|
CountEntries());
|
||||||
|
|
||||||
|
EnsureBattleRuntimeInitialized();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StartCombat()
|
public void StartCombat()
|
||||||
{
|
{
|
||||||
if (_levelIdBuffer.Count <= 0)
|
if (!EnsureBattleRuntimeInitialized())
|
||||||
|
{
|
||||||
|
Log.Warning("CombatNodeComponent start failed. Missing scheduler runtime.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!TrySelectRandomLevel(out DRLevel selectedLevel))
|
||||||
{
|
{
|
||||||
Log.Warning("CombatNodeComponent has no level cache. Call OnInit(levelThemeType) first.");
|
Log.Warning("CombatNodeComponent has no level cache. Call OnInit(levelThemeType) first.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int randomIndex = Random.Range(0, _levelIdBuffer.Count);
|
if (!_phasesByLevelId.TryGetValue(selectedLevel.Id, out List<DRLevelPhase> phaseList) ||
|
||||||
int randomLevelId = _levelIdBuffer[randomIndex];
|
phaseList == null ||
|
||||||
CurrentLevel = _levelsById[randomLevelId];
|
phaseList.Count <= 0)
|
||||||
|
{
|
||||||
|
Log.Warning("CombatNodeComponent start failed. Level '{0}' has no phase data.", selectedLevel.Id);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: 在这里接入真实战斗节点玩法启动流程(场景进入、敌人生成、结算等)。
|
_selectedSpawnEntriesByPhaseId.Clear();
|
||||||
Log.Info("StartCombat selected level '{0}' (Theme={1}).", CurrentLevel.Id, CurrentThemeType);
|
foreach (var phase in phaseList)
|
||||||
|
{
|
||||||
|
if (_spawnEntriesByPhaseId.TryGetValue(phase.Id, out List<DRLevelSpawnEntry> entries) &&
|
||||||
|
entries != null)
|
||||||
|
{
|
||||||
|
_selectedSpawnEntriesByPhaseId[phase.Id] = entries;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_selectedSpawnEntriesByPhaseId[phase.Id] = new List<DRLevelSpawnEntry>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CurrentLevel = selectedLevel;
|
||||||
|
_combatScheduler.Start(selectedLevel, phaseList, _selectedSpawnEntriesByPhaseId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnUpdate(float elapseSeconds, float realElapseSeconds)
|
||||||
|
{
|
||||||
|
if (!_runtimeInitialized)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_combatScheduler.OnUpdate(elapseSeconds, realElapseSeconds);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnShutdown()
|
||||||
|
{
|
||||||
|
CurrentLevel = null;
|
||||||
|
ShutdownBattleRuntime();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDestroy()
|
||||||
|
{
|
||||||
|
OnShutdown();
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool EnsureBattleRuntimeInitialized()
|
||||||
|
{
|
||||||
|
if (_runtimeInitialized)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
_combatScheduler.OnInit();
|
||||||
|
_runtimeInitialized = true;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ShutdownBattleRuntime()
|
||||||
|
{
|
||||||
|
if (!_runtimeInitialized)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_combatScheduler.OnDestroy();
|
||||||
|
_runtimeInitialized = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool TrySelectRandomLevel(out DRLevel level)
|
||||||
|
{
|
||||||
|
level = null;
|
||||||
|
if (_levelIdBuffer.Count <= 0)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
int selectedIndex = Random.Range(0, _levelIdBuffer.Count);
|
||||||
|
int selectedLevelId = _levelIdBuffer[selectedIndex];
|
||||||
|
return _levelsById.TryGetValue(selectedLevelId, out level);
|
||||||
}
|
}
|
||||||
|
|
||||||
private int CountPhases()
|
private int CountPhases()
|
||||||
|
|
@ -134,7 +244,7 @@ namespace GeometryTD.CustomComponent
|
||||||
private int CountEntries()
|
private int CountEntries()
|
||||||
{
|
{
|
||||||
int count = 0;
|
int count = 0;
|
||||||
foreach (var list in _spawnEntriesByPhaseId.Values)
|
foreach (List<DRLevelSpawnEntry> list in _spawnEntriesByPhaseId.Values)
|
||||||
{
|
{
|
||||||
count += list.Count;
|
count += list.Count;
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,422 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Globalization;
|
||||||
|
using GameFramework.Event;
|
||||||
|
using GameFramework.Resource;
|
||||||
|
using GeometryTD.CustomUtility;
|
||||||
|
using GeometryTD.DataTable;
|
||||||
|
using GeometryTD.Definition;
|
||||||
|
using GeometryTD.Entity;
|
||||||
|
using GeometryTD.Entity.EntityData;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityGameFramework.Runtime;
|
||||||
|
|
||||||
|
namespace GeometryTD.CustomComponent
|
||||||
|
{
|
||||||
|
public class CombatScheduler
|
||||||
|
{
|
||||||
|
private enum SchedulerState : byte
|
||||||
|
{
|
||||||
|
Idle = 0,
|
||||||
|
WaitingForMap = 1,
|
||||||
|
RunningPhase = 2,
|
||||||
|
Completed = 3,
|
||||||
|
Failed = 4
|
||||||
|
}
|
||||||
|
|
||||||
|
private readonly List<DRLevelPhase> _phaseBuffer = new List<DRLevelPhase>();
|
||||||
|
private readonly Dictionary<int, IReadOnlyList<DRLevelSpawnEntry>> _spawnEntriesByPhaseId =
|
||||||
|
new Dictionary<int, IReadOnlyList<DRLevelSpawnEntry>>();
|
||||||
|
|
||||||
|
private readonly EnemyManager _enemyManager = new EnemyManager();
|
||||||
|
|
||||||
|
private EntityComponent _entity;
|
||||||
|
private DRLevel _currentLevel;
|
||||||
|
private DRLevelPhase _currentPhase;
|
||||||
|
private int _currentPhaseIndex;
|
||||||
|
private float _currentPhaseElapsed;
|
||||||
|
private SchedulerState _state = SchedulerState.Idle;
|
||||||
|
private int _loadingMapEntityId;
|
||||||
|
private int _loadedMapEntityId;
|
||||||
|
private bool _initialized;
|
||||||
|
private bool _isEntityEventSubscribed;
|
||||||
|
private MapEntity _currentMap;
|
||||||
|
|
||||||
|
public bool IsRunning => _state == SchedulerState.WaitingForMap || _state == SchedulerState.RunningPhase;
|
||||||
|
public bool IsCompleted => _state == SchedulerState.Completed;
|
||||||
|
public DRLevel CurrentLevel => _currentLevel;
|
||||||
|
public DRLevelPhase CurrentPhase => _currentPhase;
|
||||||
|
public MapEntity CurrentMap => _currentMap;
|
||||||
|
|
||||||
|
public void OnInit()
|
||||||
|
{
|
||||||
|
if (!_initialized)
|
||||||
|
{
|
||||||
|
_entity = GameEntry.Entity;
|
||||||
|
EnsureEntityEventSubscribed();
|
||||||
|
_enemyManager.OnInit(this);
|
||||||
|
_initialized = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
ResetRuntime();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Start(
|
||||||
|
DRLevel level,
|
||||||
|
IReadOnlyList<DRLevelPhase> phases,
|
||||||
|
IReadOnlyDictionary<int, IReadOnlyList<DRLevelSpawnEntry>> spawnEntriesByPhaseId)
|
||||||
|
{
|
||||||
|
if (!_initialized || _entity == null)
|
||||||
|
{
|
||||||
|
_state = SchedulerState.Failed;
|
||||||
|
Log.Warning("CombatScheduler start failed. Runtime is not initialized.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (level == null || phases == null || phases.Count <= 0)
|
||||||
|
{
|
||||||
|
_state = SchedulerState.Failed;
|
||||||
|
Log.Warning("CombatScheduler start failed. Invalid level or phase data.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_enemyManager.EndPhase();
|
||||||
|
HideCurrentMapIfNeeded();
|
||||||
|
ResetRuntime();
|
||||||
|
|
||||||
|
_currentLevel = level;
|
||||||
|
foreach (var phase in phases)
|
||||||
|
{
|
||||||
|
_phaseBuffer.Add(phase);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (spawnEntriesByPhaseId != null)
|
||||||
|
{
|
||||||
|
foreach (var pair in spawnEntriesByPhaseId)
|
||||||
|
{
|
||||||
|
_spawnEntriesByPhaseId[pair.Key] = pair.Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_phaseBuffer.Count <= 0)
|
||||||
|
{
|
||||||
|
_state = SchedulerState.Failed;
|
||||||
|
Log.Warning("CombatScheduler start failed. Level '{0}' has no phase data.", level.Id);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!TryShowMap(level))
|
||||||
|
{
|
||||||
|
_state = SchedulerState.Failed;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_currentPhase = null;
|
||||||
|
_currentPhaseIndex = -1;
|
||||||
|
_currentPhaseElapsed = 0f;
|
||||||
|
_state = SchedulerState.WaitingForMap;
|
||||||
|
|
||||||
|
Log.Info("CombatScheduler started. Level={0}, PhaseCount={1}.", _currentLevel.Id, _phaseBuffer.Count);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnUpdate(float elapseSeconds, float realElapseSeconds)
|
||||||
|
{
|
||||||
|
switch (_state)
|
||||||
|
{
|
||||||
|
case SchedulerState.WaitingForMap:
|
||||||
|
if (_currentMap == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
BeginNextPhase();
|
||||||
|
return;
|
||||||
|
case SchedulerState.RunningPhase:
|
||||||
|
UpdateCurrentPhase(elapseSeconds, realElapseSeconds);
|
||||||
|
return;
|
||||||
|
default:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnDestroy()
|
||||||
|
{
|
||||||
|
if (!_initialized)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_enemyManager.OnDestroy();
|
||||||
|
HideCurrentMapIfNeeded();
|
||||||
|
ResetRuntime();
|
||||||
|
UnsubscribeEntityEvents();
|
||||||
|
_entity = null;
|
||||||
|
_initialized = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool TryShowMap(DRLevel level)
|
||||||
|
{
|
||||||
|
string mapAssetName = level.Id.ToString();
|
||||||
|
string mapAssetPath = AssetUtility.GetLevelMapAsset(mapAssetName);
|
||||||
|
if (GameEntry.Resource.HasAsset(mapAssetPath) == HasAssetResult.NotExist)
|
||||||
|
{
|
||||||
|
Log.Warning(
|
||||||
|
"CombatScheduler start failed. Level '{0}' map asset not found: '{1}'.",
|
||||||
|
level.Id,
|
||||||
|
mapAssetPath);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
_loadingMapEntityId = _entity.GenerateSerialId();
|
||||||
|
_entity.ShowMap(new MapData(_loadingMapEntityId, level.Id, Vector3.zero), mapAssetName);
|
||||||
|
|
||||||
|
Log.Info(
|
||||||
|
"CombatScheduler loading map. Level={0}, Asset='{1}', EntityId={2}.",
|
||||||
|
level.Id,
|
||||||
|
mapAssetPath,
|
||||||
|
_loadingMapEntityId);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateCurrentPhase(float elapseSeconds, float realElapseSeconds)
|
||||||
|
{
|
||||||
|
if (_currentPhase == null)
|
||||||
|
{
|
||||||
|
_state = SchedulerState.Failed;
|
||||||
|
Log.Warning("CombatScheduler update failed. Current phase is null.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_currentPhaseElapsed += elapseSeconds;
|
||||||
|
_enemyManager.OnUpdate(elapseSeconds, realElapseSeconds);
|
||||||
|
|
||||||
|
if (!ShouldEndCurrentPhase())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
CompleteCurrentPhase();
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool ShouldEndCurrentPhase()
|
||||||
|
{
|
||||||
|
switch (_currentPhase.EndType)
|
||||||
|
{
|
||||||
|
case PhaseEndType.TimeElapsed:
|
||||||
|
return _currentPhaseElapsed >= ResolveTimeElapsedThreshold(_currentPhase);
|
||||||
|
case PhaseEndType.EnemiesCleared:
|
||||||
|
case PhaseEndType.BossDead:
|
||||||
|
return _enemyManager.IsPhaseSpawnCompleted && _enemyManager.AliveEnemyCount <= 0;
|
||||||
|
case PhaseEndType.None:
|
||||||
|
default:
|
||||||
|
if (_currentPhase.DurationSeconds > 0 && _currentPhaseElapsed >= _currentPhase.DurationSeconds)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return _enemyManager.IsPhaseSpawnCompleted && _enemyManager.AliveEnemyCount <= 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private float ResolveTimeElapsedThreshold(DRLevelPhase phase)
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrWhiteSpace(phase.EndParam) &&
|
||||||
|
float.TryParse(phase.EndParam, NumberStyles.Float, CultureInfo.InvariantCulture,
|
||||||
|
out float parsedSeconds))
|
||||||
|
{
|
||||||
|
return parsedSeconds;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (phase.DurationSeconds > 0)
|
||||||
|
{
|
||||||
|
return phase.DurationSeconds;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0f;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CompleteCurrentPhase()
|
||||||
|
{
|
||||||
|
_enemyManager.EndPhase();
|
||||||
|
Log.Info(
|
||||||
|
"CombatScheduler phase completed. Level={0}, Phase={1}, Elapsed={2:F2}s.",
|
||||||
|
_currentLevel != null ? _currentLevel.Id : 0,
|
||||||
|
_currentPhase != null ? _currentPhase.Id : 0,
|
||||||
|
_currentPhaseElapsed);
|
||||||
|
|
||||||
|
BeginNextPhase();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BeginNextPhase()
|
||||||
|
{
|
||||||
|
_currentPhaseIndex++;
|
||||||
|
if (_currentPhaseIndex >= _phaseBuffer.Count)
|
||||||
|
{
|
||||||
|
_state = SchedulerState.Completed;
|
||||||
|
_currentPhase = null;
|
||||||
|
Log.Info("CombatScheduler level completed. Level={0}.", _currentLevel != null ? _currentLevel.Id : 0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_currentPhase = _phaseBuffer[_currentPhaseIndex];
|
||||||
|
_currentPhaseElapsed = 0f;
|
||||||
|
|
||||||
|
IReadOnlyList<DRLevelSpawnEntry> spawnEntries = null;
|
||||||
|
_spawnEntriesByPhaseId.TryGetValue(_currentPhase.Id, out spawnEntries);
|
||||||
|
_enemyManager.BeginPhase(_currentPhase, spawnEntries);
|
||||||
|
_state = SchedulerState.RunningPhase;
|
||||||
|
|
||||||
|
Log.Info(
|
||||||
|
"CombatScheduler phase started. Level={0}, Phase={1}, EndType={2}, Entries={3}.",
|
||||||
|
_currentLevel != null ? _currentLevel.Id : 0,
|
||||||
|
_currentPhase.Id,
|
||||||
|
_currentPhase.EndType,
|
||||||
|
spawnEntries != null ? spawnEntries.Count : 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void HideCurrentMapIfNeeded()
|
||||||
|
{
|
||||||
|
if (_entity == null)
|
||||||
|
{
|
||||||
|
_currentMap = null;
|
||||||
|
_loadingMapEntityId = 0;
|
||||||
|
_loadedMapEntityId = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_loadingMapEntityId != 0)
|
||||||
|
{
|
||||||
|
EntityBase loadingMap = _entity.GetGameEntity(_loadingMapEntityId);
|
||||||
|
if (loadingMap != null)
|
||||||
|
{
|
||||||
|
_entity.HideEntity(loadingMap);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_loadedMapEntityId != 0)
|
||||||
|
{
|
||||||
|
EntityBase loadedMap = _entity.GetGameEntity(_loadedMapEntityId);
|
||||||
|
if (loadedMap != null)
|
||||||
|
{
|
||||||
|
_entity.HideEntity(loadedMap);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_loadingMapEntityId = 0;
|
||||||
|
_loadedMapEntityId = 0;
|
||||||
|
_currentMap = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void EnsureEntityEventSubscribed()
|
||||||
|
{
|
||||||
|
if (_isEntityEventSubscribed)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
GameEntry.Event.Subscribe(ShowEntitySuccessEventArgs.EventId, OnShowEntitySuccess);
|
||||||
|
GameEntry.Event.Subscribe(ShowEntityFailureEventArgs.EventId, OnShowEntityFailure);
|
||||||
|
GameEntry.Event.Subscribe(HideEntityCompleteEventArgs.EventId, OnHideEntityComplete);
|
||||||
|
_isEntityEventSubscribed = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UnsubscribeEntityEvents()
|
||||||
|
{
|
||||||
|
if (!_isEntityEventSubscribed)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
GameEntry.Event.Unsubscribe(ShowEntitySuccessEventArgs.EventId, OnShowEntitySuccess);
|
||||||
|
GameEntry.Event.Unsubscribe(ShowEntityFailureEventArgs.EventId, OnShowEntityFailure);
|
||||||
|
GameEntry.Event.Unsubscribe(HideEntityCompleteEventArgs.EventId, OnHideEntityComplete);
|
||||||
|
_isEntityEventSubscribed = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ResetRuntime()
|
||||||
|
{
|
||||||
|
_phaseBuffer.Clear();
|
||||||
|
_spawnEntriesByPhaseId.Clear();
|
||||||
|
_currentLevel = null;
|
||||||
|
_currentPhase = null;
|
||||||
|
_currentPhaseIndex = -1;
|
||||||
|
_currentPhaseElapsed = 0f;
|
||||||
|
_state = SchedulerState.Idle;
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Event Handlers
|
||||||
|
|
||||||
|
private void OnShowEntitySuccess(object sender, GameEventArgs e)
|
||||||
|
{
|
||||||
|
if (!(e is ShowEntitySuccessEventArgs ne))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ne.EntityLogicType != typeof(MapEntity) || ne.Entity.Id != _loadingMapEntityId)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_loadedMapEntityId = _loadingMapEntityId;
|
||||||
|
_loadingMapEntityId = 0;
|
||||||
|
_currentMap = ne.Entity.Logic as MapEntity;
|
||||||
|
if (_currentMap == null)
|
||||||
|
{
|
||||||
|
_state = SchedulerState.Failed;
|
||||||
|
Log.Error("Loaded map entity logic is invalid. EntityId={0}.", ne.Entity.Id);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Log.Info(
|
||||||
|
"Map ready. LevelId={0}, PathCells={1}, FoundationCells={2}, Spawners={3}, House={4}.",
|
||||||
|
_currentLevel != null ? _currentLevel.Id : 0,
|
||||||
|
_currentMap.PathCells.Count,
|
||||||
|
_currentMap.FoundationCells.Count,
|
||||||
|
_currentMap.Spawners.Length,
|
||||||
|
_currentMap.House != null ? _currentMap.House.name : "None");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnShowEntityFailure(object sender, GameEventArgs e)
|
||||||
|
{
|
||||||
|
if (!(e is ShowEntityFailureEventArgs ne))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ne.EntityLogicType != typeof(MapEntity) || ne.EntityId != _loadingMapEntityId)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_loadingMapEntityId = 0;
|
||||||
|
_currentMap = null;
|
||||||
|
_state = SchedulerState.Failed;
|
||||||
|
Log.Error(
|
||||||
|
"Map load failed. LevelId={0}, Asset='{1}', Error='{2}'.",
|
||||||
|
_currentLevel != null ? _currentLevel.Id : 0,
|
||||||
|
ne.EntityAssetName,
|
||||||
|
ne.ErrorMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnHideEntityComplete(object sender, GameEventArgs e)
|
||||||
|
{
|
||||||
|
if (!(e is HideEntityCompleteEventArgs ne))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ne.EntityId == _loadedMapEntityId)
|
||||||
|
{
|
||||||
|
_loadedMapEntityId = 0;
|
||||||
|
_currentMap = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ne.EntityId == _loadingMapEntityId)
|
||||||
|
{
|
||||||
|
_loadingMapEntityId = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9f43fd8050fd4239b4407a4fedcf0b7a
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,465 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using GameFramework.DataTable;
|
||||||
|
using GameFramework.Event;
|
||||||
|
using GeometryTD.DataTable;
|
||||||
|
using GeometryTD.Definition;
|
||||||
|
using GeometryTD.Entity;
|
||||||
|
using GeometryTD.Entity.EntityData;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityGameFramework.Runtime;
|
||||||
|
|
||||||
|
namespace GeometryTD.CustomComponent
|
||||||
|
{
|
||||||
|
public class EnemyManager
|
||||||
|
{
|
||||||
|
private sealed class SpawnEntryRuntime
|
||||||
|
{
|
||||||
|
public DRLevelSpawnEntry Entry;
|
||||||
|
public bool Completed;
|
||||||
|
public float NextTriggerTime;
|
||||||
|
public float EndTime;
|
||||||
|
public int RemainingCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
private const int DefaultEnemyConfigId = 1;
|
||||||
|
private const float MinStreamInterval = 0.05f;
|
||||||
|
private const float MinBurstGap = 0.01f;
|
||||||
|
|
||||||
|
private readonly List<Spawner> _spawners = new List<Spawner>();
|
||||||
|
private readonly Dictionary<int, Spawner> _spawnerByOrder = new Dictionary<int, Spawner>();
|
||||||
|
private readonly List<Vector3> _pathBuffer = new List<Vector3>();
|
||||||
|
private readonly List<SpawnEntryRuntime> _spawnRuntimes = new List<SpawnEntryRuntime>();
|
||||||
|
|
||||||
|
private CombatScheduler _combatScheduler;
|
||||||
|
private EntityComponent _entity;
|
||||||
|
private IDataTable<DREnemy> _drEnemy;
|
||||||
|
|
||||||
|
private int _spawnEnemyMaxCount = 5000;
|
||||||
|
private int _currentEnemyCount;
|
||||||
|
private int _nextSpawnerIndex;
|
||||||
|
private int _currentMapEntityId;
|
||||||
|
private bool _initialized;
|
||||||
|
private bool _enemyConfigMissingLogged;
|
||||||
|
|
||||||
|
private float _phaseElapsed;
|
||||||
|
private bool _isPhaseRunning;
|
||||||
|
|
||||||
|
public int AliveEnemyCount => _currentEnemyCount;
|
||||||
|
public bool IsPhaseSpawnCompleted { get; private set; } = true;
|
||||||
|
public bool IsPhaseRunning => _isPhaseRunning;
|
||||||
|
|
||||||
|
public void OnInit(CombatScheduler combatScheduler)
|
||||||
|
{
|
||||||
|
_combatScheduler = combatScheduler;
|
||||||
|
if (_initialized)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_entity = GameEntry.Entity;
|
||||||
|
_drEnemy = GameEntry.DataTable.GetDataTable<DREnemy>();
|
||||||
|
_currentEnemyCount = 0;
|
||||||
|
_nextSpawnerIndex = 0;
|
||||||
|
_currentMapEntityId = 0;
|
||||||
|
_enemyConfigMissingLogged = false;
|
||||||
|
_spawners.Clear();
|
||||||
|
_spawnerByOrder.Clear();
|
||||||
|
_pathBuffer.Clear();
|
||||||
|
_spawnRuntimes.Clear();
|
||||||
|
_phaseElapsed = 0f;
|
||||||
|
_isPhaseRunning = false;
|
||||||
|
IsPhaseSpawnCompleted = true;
|
||||||
|
|
||||||
|
GameEntry.Event.Subscribe(ShowEntitySuccessEventArgs.EventId, OnShowEntitySuccess);
|
||||||
|
GameEntry.Event.Subscribe(ShowEntityFailureEventArgs.EventId, OnShowEntityFailure);
|
||||||
|
GameEntry.Event.Subscribe(HideEntityCompleteEventArgs.EventId, OnHideEntityComplete);
|
||||||
|
_initialized = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void BeginPhase(DRLevelPhase phase, IReadOnlyList<DRLevelSpawnEntry> spawnEntries)
|
||||||
|
{
|
||||||
|
if (!_initialized || _combatScheduler == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_ = phase;
|
||||||
|
EndPhase();
|
||||||
|
|
||||||
|
_phaseElapsed = 0f;
|
||||||
|
_isPhaseRunning = true;
|
||||||
|
IsPhaseSpawnCompleted = false;
|
||||||
|
RefreshSpawnerCache(true);
|
||||||
|
|
||||||
|
if (spawnEntries != null)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < spawnEntries.Count; i++)
|
||||||
|
{
|
||||||
|
SpawnEntryRuntime runtime = BuildSpawnRuntime(spawnEntries[i]);
|
||||||
|
if (runtime != null)
|
||||||
|
{
|
||||||
|
_spawnRuntimes.Add(runtime);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
IsPhaseSpawnCompleted = _spawnRuntimes.Count <= 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnUpdate(float elapseSeconds, float realElapseSeconds)
|
||||||
|
{
|
||||||
|
if (!_initialized || _combatScheduler == null || !_isPhaseRunning)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
RefreshSpawnerCache(false);
|
||||||
|
_phaseElapsed += elapseSeconds;
|
||||||
|
UpdateSpawnRuntimes();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void EndPhase()
|
||||||
|
{
|
||||||
|
_isPhaseRunning = false;
|
||||||
|
_phaseElapsed = 0f;
|
||||||
|
_spawnRuntimes.Clear();
|
||||||
|
IsPhaseSpawnCompleted = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnDestroy()
|
||||||
|
{
|
||||||
|
if (!_initialized)
|
||||||
|
{
|
||||||
|
_combatScheduler = null;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
EndPhase();
|
||||||
|
GameEntry.Event.Unsubscribe(ShowEntitySuccessEventArgs.EventId, OnShowEntitySuccess);
|
||||||
|
GameEntry.Event.Unsubscribe(ShowEntityFailureEventArgs.EventId, OnShowEntityFailure);
|
||||||
|
GameEntry.Event.Unsubscribe(HideEntityCompleteEventArgs.EventId, OnHideEntityComplete);
|
||||||
|
|
||||||
|
_spawners.Clear();
|
||||||
|
_spawnerByOrder.Clear();
|
||||||
|
_pathBuffer.Clear();
|
||||||
|
_currentMapEntityId = 0;
|
||||||
|
_nextSpawnerIndex = 0;
|
||||||
|
_combatScheduler = null;
|
||||||
|
_initialized = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private SpawnEntryRuntime BuildSpawnRuntime(DRLevelSpawnEntry entry)
|
||||||
|
{
|
||||||
|
if (entry == null || entry.EntryType == EntryType.None)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
SpawnEntryRuntime runtime = new SpawnEntryRuntime
|
||||||
|
{
|
||||||
|
Entry = entry,
|
||||||
|
Completed = false,
|
||||||
|
NextTriggerTime = Mathf.Max(0f, entry.StartTime),
|
||||||
|
EndTime = Mathf.Max(0f, entry.StartTime),
|
||||||
|
RemainingCount = Mathf.Max(0, entry.Count)
|
||||||
|
};
|
||||||
|
|
||||||
|
switch (entry.EntryType)
|
||||||
|
{
|
||||||
|
case EntryType.Stream:
|
||||||
|
{
|
||||||
|
float duration = Mathf.Max(0f, entry.Duration);
|
||||||
|
runtime.EndTime = duration > 0f ? runtime.NextTriggerTime + duration : runtime.NextTriggerTime;
|
||||||
|
runtime.Completed = entry.Count <= 0;
|
||||||
|
return runtime;
|
||||||
|
}
|
||||||
|
case EntryType.Burst:
|
||||||
|
case EntryType.Boss:
|
||||||
|
runtime.Completed = runtime.RemainingCount <= 0;
|
||||||
|
return runtime;
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateSpawnRuntimes()
|
||||||
|
{
|
||||||
|
bool allCompleted = true;
|
||||||
|
for (int i = 0; i < _spawnRuntimes.Count; i++)
|
||||||
|
{
|
||||||
|
SpawnEntryRuntime runtime = _spawnRuntimes[i];
|
||||||
|
if (runtime.Completed)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (runtime.Entry.EntryType)
|
||||||
|
{
|
||||||
|
case EntryType.Stream:
|
||||||
|
ProcessStreamRuntime(runtime);
|
||||||
|
break;
|
||||||
|
case EntryType.Burst:
|
||||||
|
case EntryType.Boss:
|
||||||
|
ProcessBurstRuntime(runtime);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
runtime.Completed = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!runtime.Completed)
|
||||||
|
{
|
||||||
|
allCompleted = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
IsPhaseSpawnCompleted = allCompleted;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ProcessStreamRuntime(SpawnEntryRuntime runtime)
|
||||||
|
{
|
||||||
|
if (_phaseElapsed < runtime.NextTriggerTime)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int countPerWave = Mathf.Max(0, runtime.Entry.Count);
|
||||||
|
if (countPerWave <= 0)
|
||||||
|
{
|
||||||
|
runtime.Completed = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
float interval = runtime.Entry.Interval > 0f ? runtime.Entry.Interval : MinStreamInterval;
|
||||||
|
while (_phaseElapsed >= runtime.NextTriggerTime && runtime.NextTriggerTime <= runtime.EndTime)
|
||||||
|
{
|
||||||
|
SpawnEnemies(runtime.Entry, countPerWave);
|
||||||
|
runtime.NextTriggerTime += interval;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (runtime.NextTriggerTime > runtime.EndTime)
|
||||||
|
{
|
||||||
|
runtime.Completed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ProcessBurstRuntime(SpawnEntryRuntime runtime)
|
||||||
|
{
|
||||||
|
if (_phaseElapsed < runtime.NextTriggerTime)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (runtime.RemainingCount <= 0)
|
||||||
|
{
|
||||||
|
runtime.Completed = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
float gap = runtime.Entry.Gap;
|
||||||
|
if (gap <= 0f)
|
||||||
|
{
|
||||||
|
SpawnEnemies(runtime.Entry, runtime.RemainingCount);
|
||||||
|
runtime.RemainingCount = 0;
|
||||||
|
runtime.Completed = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
gap = Mathf.Max(gap, MinBurstGap);
|
||||||
|
while (_phaseElapsed >= runtime.NextTriggerTime && runtime.RemainingCount > 0)
|
||||||
|
{
|
||||||
|
SpawnEnemies(runtime.Entry, 1);
|
||||||
|
runtime.RemainingCount--;
|
||||||
|
runtime.NextTriggerTime += gap;
|
||||||
|
}
|
||||||
|
|
||||||
|
runtime.Completed = runtime.RemainingCount <= 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SpawnEnemies(DRLevelSpawnEntry entry, int spawnCount)
|
||||||
|
{
|
||||||
|
if (spawnCount <= 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Spawner spawner = ResolveSpawner(entry.SpawnPointId);
|
||||||
|
if (spawner == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
MapEntity currentMap = _combatScheduler != null ? _combatScheduler.CurrentMap : null;
|
||||||
|
if (currentMap == null ||
|
||||||
|
!currentMap.TryFindPathWorldPoints(spawner, null, _pathBuffer) ||
|
||||||
|
_pathBuffer.Count <= 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
DREnemy enemyConfig = GetEnemyConfig(entry.EnemyId);
|
||||||
|
if (enemyConfig == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < spawnCount; i++)
|
||||||
|
{
|
||||||
|
if (_currentEnemyCount >= _spawnEnemyMaxCount)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
int enemyEntityId = _entity.GenerateSerialId();
|
||||||
|
EnemyData enemyData = new EnemyData(
|
||||||
|
enemyEntityId,
|
||||||
|
enemyConfig.EntityId,
|
||||||
|
_pathBuffer[0],
|
||||||
|
enemyConfig.BaseHp,
|
||||||
|
enemyConfig.Speed,
|
||||||
|
_pathBuffer);
|
||||||
|
_entity.ShowEnemy(enemyData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private DREnemy GetEnemyConfig(int enemyId)
|
||||||
|
{
|
||||||
|
if (_drEnemy == null)
|
||||||
|
{
|
||||||
|
_drEnemy = GameEntry.DataTable.GetDataTable<DREnemy>();
|
||||||
|
if (_drEnemy == null)
|
||||||
|
{
|
||||||
|
if (!_enemyConfigMissingLogged)
|
||||||
|
{
|
||||||
|
Log.Warning("EnemyManagerComponent can not find DREnemy data table.");
|
||||||
|
_enemyConfigMissingLogged = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (enemyId > 0)
|
||||||
|
{
|
||||||
|
DREnemy targetConfig = _drEnemy.GetDataRow(enemyId);
|
||||||
|
if (targetConfig != null)
|
||||||
|
{
|
||||||
|
return targetConfig;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DREnemy defaultConfig = _drEnemy.GetDataRow(DefaultEnemyConfigId);
|
||||||
|
if (defaultConfig != null)
|
||||||
|
{
|
||||||
|
return defaultConfig;
|
||||||
|
}
|
||||||
|
|
||||||
|
DREnemy[] allConfigs = _drEnemy.GetAllDataRows();
|
||||||
|
if (allConfigs.Length > 0)
|
||||||
|
{
|
||||||
|
return allConfigs[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_enemyConfigMissingLogged)
|
||||||
|
{
|
||||||
|
Log.Warning("EnemyManagerComponent found no enemy configs.");
|
||||||
|
_enemyConfigMissingLogged = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Spawner ResolveSpawner(int spawnPointId)
|
||||||
|
{
|
||||||
|
if (spawnPointId > 0 && _spawnerByOrder.TryGetValue(spawnPointId, out Spawner mappedSpawner))
|
||||||
|
{
|
||||||
|
return mappedSpawner;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_spawners.Count <= 0)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
Spawner fallbackSpawner = _spawners[_nextSpawnerIndex % _spawners.Count];
|
||||||
|
_nextSpawnerIndex++;
|
||||||
|
return fallbackSpawner;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RefreshSpawnerCache(bool force)
|
||||||
|
{
|
||||||
|
MapEntity currentMap = _combatScheduler != null ? _combatScheduler.CurrentMap : null;
|
||||||
|
if (currentMap == null)
|
||||||
|
{
|
||||||
|
_spawners.Clear();
|
||||||
|
_spawnerByOrder.Clear();
|
||||||
|
_currentMapEntityId = 0;
|
||||||
|
_nextSpawnerIndex = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!force && _currentMapEntityId == currentMap.Id && _spawners.Count > 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_spawners.Clear();
|
||||||
|
_spawnerByOrder.Clear();
|
||||||
|
_nextSpawnerIndex = 0;
|
||||||
|
_currentMapEntityId = currentMap.Id;
|
||||||
|
|
||||||
|
Spawner[] mapSpawners = currentMap.Spawners;
|
||||||
|
for (int i = 0; i < mapSpawners.Length; i++)
|
||||||
|
{
|
||||||
|
Spawner spawner = mapSpawners[i];
|
||||||
|
if (spawner == null)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!currentMap.TryGetDefaultPathCells(spawner, out _))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
_spawners.Add(spawner);
|
||||||
|
if (spawner.SpawnOrder > 0 && !_spawnerByOrder.ContainsKey(spawner.SpawnOrder))
|
||||||
|
{
|
||||||
|
_spawnerByOrder[spawner.SpawnOrder] = spawner;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_spawners.Sort((left, right) => left.SpawnOrder.CompareTo(right.SpawnOrder));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnShowEntitySuccess(object sender, GameEventArgs e)
|
||||||
|
{
|
||||||
|
if (e is ShowEntitySuccessEventArgs ne)
|
||||||
|
{
|
||||||
|
if (ne.EntityLogicType == typeof(EnemyEntity))
|
||||||
|
{
|
||||||
|
_currentEnemyCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnShowEntityFailure(object sender, GameEventArgs e)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnHideEntityComplete(object sender, GameEventArgs e)
|
||||||
|
{
|
||||||
|
if (!(e is HideEntityCompleteEventArgs ne))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ne.EntityGroup.Name != "Enemy")
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_currentEnemyCount = Mathf.Max(0, _currentEnemyCount - 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,101 +0,0 @@
|
||||||
using GeometryTD.Entity;
|
|
||||||
using GeometryTD.Entity.EntityData;
|
|
||||||
using GameFramework.Event;
|
|
||||||
using GeometryTD;
|
|
||||||
using UnityEngine;
|
|
||||||
using UnityGameFramework.Runtime;
|
|
||||||
|
|
||||||
namespace GeometryTD.CustomComponent
|
|
||||||
{
|
|
||||||
public class EnemyManagerComponent : GameFrameworkComponent
|
|
||||||
{
|
|
||||||
private EntityComponent _entity;
|
|
||||||
|
|
||||||
private float _spawnEnemyInterval = 5f;
|
|
||||||
private float _spawnEnemyTimer;
|
|
||||||
private float _spawnEnemyAccelerate = 0.5f;
|
|
||||||
private int _spawnEnemyCount = 5;
|
|
||||||
private int _spawnEnemyMaxCount = 5000;
|
|
||||||
private int _currentEnemyCount;
|
|
||||||
private int _spawnDistanceFromPlayer = 10;
|
|
||||||
private int _currentSpawnEnemyId = 0;
|
|
||||||
|
|
||||||
private Transform _player;
|
|
||||||
|
|
||||||
public void OnInit()
|
|
||||||
{
|
|
||||||
_entity = GameEntry.Entity;
|
|
||||||
|
|
||||||
GameEntry.Event.Subscribe(ShowEntitySuccessEventArgs.EventId, OnShowEntitySuccess);
|
|
||||||
GameEntry.Event.Subscribe(ShowEntityFailureEventArgs.EventId, OnShowEntityFailure);
|
|
||||||
GameEntry.Event.Subscribe(HideEntityCompleteEventArgs.EventId, OnHideEntityComplete);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnUpdate(float elapseSeconds, float realElapseSeconds)
|
|
||||||
{
|
|
||||||
_spawnEnemyTimer += elapseSeconds;
|
|
||||||
if (_spawnEnemyTimer < _spawnEnemyInterval) return;
|
|
||||||
SpawnEnemy();
|
|
||||||
_spawnEnemyTimer = 0;
|
|
||||||
_spawnEnemyInterval = Mathf.Max(0.1f, _spawnEnemyInterval - _spawnEnemyAccelerate);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnDestroy()
|
|
||||||
{
|
|
||||||
GameEntry.Event.Unsubscribe(ShowEntitySuccessEventArgs.EventId, OnShowEntitySuccess);
|
|
||||||
GameEntry.Event.Unsubscribe(ShowEntityFailureEventArgs.EventId, OnShowEntityFailure);
|
|
||||||
GameEntry.Event.Unsubscribe(HideEntityCompleteEventArgs.EventId, OnHideEntityComplete);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void SpawnEnemy()
|
|
||||||
{
|
|
||||||
if (_player == null) return;
|
|
||||||
for (int i = 0; i < _spawnEnemyCount; i++)
|
|
||||||
{
|
|
||||||
if (_currentEnemyCount >= _spawnEnemyMaxCount) break;
|
|
||||||
_entity.ShowEnemy(new EnemyData(_currentSpawnEnemyId % _spawnEnemyMaxCount, 1001, _player,
|
|
||||||
GetRandomPosition(), 10, 2));
|
|
||||||
_currentSpawnEnemyId++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private Vector3 GetRandomPosition()
|
|
||||||
{
|
|
||||||
float x = Random.Range(-1f, 1f);
|
|
||||||
float z = Random.Range(-1f, 1f);
|
|
||||||
Vector3 dir = new Vector3(x, 0, z).normalized;
|
|
||||||
return _player.position + dir * _spawnDistanceFromPlayer;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnShowEntitySuccess(object sender, GameEventArgs e)
|
|
||||||
{
|
|
||||||
if (e is ShowEntitySuccessEventArgs ne)
|
|
||||||
{
|
|
||||||
if (ne.EntityLogicType == typeof(Enemy))
|
|
||||||
{
|
|
||||||
_currentEnemyCount++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ne.EntityLogicType == typeof(Player))
|
|
||||||
{
|
|
||||||
_player = ne.Entity.transform;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnShowEntityFailure(object sender, GameEventArgs e)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
private void OnHideEntityComplete(object sender, GameEventArgs e)
|
|
||||||
{
|
|
||||||
if (e is HideEntityCompleteEventArgs ne)
|
|
||||||
{
|
|
||||||
if (ne.EntityGroup.Name == "Enemy")
|
|
||||||
{
|
|
||||||
_currentEnemyCount--;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -33,6 +33,7 @@ namespace GeometryTD
|
||||||
public const int BulletAsset = 80;
|
public const int BulletAsset = 80;
|
||||||
public const int AsteroiAsset = 80;
|
public const int AsteroiAsset = 80;
|
||||||
public const int EnemyAsset = 80;
|
public const int EnemyAsset = 80;
|
||||||
|
public const int MapAsset = 85;
|
||||||
public const int EffectAsset = 80;
|
public const int EffectAsset = 80;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using GeometryTD.Definition;
|
using GeometryTD.Definition;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
|
|
@ -15,6 +16,8 @@ namespace GeometryTD.Entity.EntityData
|
||||||
|
|
||||||
[SerializeField] private Transform _player = null;
|
[SerializeField] private Transform _player = null;
|
||||||
|
|
||||||
|
[SerializeField] private List<Vector3> _pathPoints = new List<Vector3>();
|
||||||
|
|
||||||
public EnemyData(int entityId, int typeId, Transform player, Vector3 pos, int maxHp, float speed) : base(
|
public EnemyData(int entityId, int typeId, Transform player, Vector3 pos, int maxHp, float speed) : base(
|
||||||
entityId, typeId)
|
entityId, typeId)
|
||||||
{
|
{
|
||||||
|
|
@ -22,6 +25,17 @@ namespace GeometryTD.Entity.EntityData
|
||||||
_speed = speed;
|
_speed = speed;
|
||||||
Position = pos;
|
Position = pos;
|
||||||
_player = player;
|
_player = player;
|
||||||
|
_pathPoints.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
public EnemyData(int entityId, int typeId, Vector3 pos, int maxHp, float speed,
|
||||||
|
IReadOnlyList<Vector3> pathPoints) : base(entityId, typeId)
|
||||||
|
{
|
||||||
|
_maxHealth = maxHp;
|
||||||
|
_speed = speed;
|
||||||
|
Position = pos;
|
||||||
|
_player = null;
|
||||||
|
SetPathPoints(pathPoints);
|
||||||
}
|
}
|
||||||
|
|
||||||
public CampType Camp
|
public CampType Camp
|
||||||
|
|
@ -47,5 +61,23 @@ namespace GeometryTD.Entity.EntityData
|
||||||
get => _player;
|
get => _player;
|
||||||
set => _player = value;
|
set => _player = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public IReadOnlyList<Vector3> PathPoints => _pathPoints;
|
||||||
|
|
||||||
|
public bool HasPath => _pathPoints.Count > 0;
|
||||||
|
|
||||||
|
public void SetPathPoints(IReadOnlyList<Vector3> pathPoints)
|
||||||
|
{
|
||||||
|
_pathPoints.Clear();
|
||||||
|
if (pathPoints == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < pathPoints.Count; i++)
|
||||||
|
{
|
||||||
|
_pathPoints.Add(pathPoints[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -13,41 +13,37 @@ namespace GeometryTD.Entity.EntityData
|
||||||
[Serializable]
|
[Serializable]
|
||||||
public abstract class EntityDataBase
|
public abstract class EntityDataBase
|
||||||
{
|
{
|
||||||
[SerializeField]
|
[SerializeField] private int _id = 0;
|
||||||
private int m_Id = 0;
|
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField] private int _typeId = 0;
|
||||||
private int m_TypeId = 0;
|
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField] private Vector3 _position = Vector3.zero;
|
||||||
private Vector3 m_Position = Vector3.zero;
|
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField] private Quaternion _rotation = Quaternion.identity;
|
||||||
private Quaternion m_Rotation = Quaternion.identity;
|
|
||||||
|
|
||||||
public EntityDataBase(int entityId, int typeId)
|
public EntityDataBase(int entityId, int typeId)
|
||||||
{
|
{
|
||||||
m_Id = entityId;
|
_id = entityId;
|
||||||
m_TypeId = typeId;
|
_typeId = typeId;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 实体编号。
|
/// 生成的实体编号。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int Id => m_Id;
|
public int Id => _id;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 实体类型编号。
|
/// 实体类型编号(外键)。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int TypeId => m_TypeId;
|
public int TypeId => _typeId;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 实体位置。
|
/// 实体位置。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Vector3 Position
|
public Vector3 Position
|
||||||
{
|
{
|
||||||
get => m_Position;
|
get => _position;
|
||||||
set => m_Position = value;
|
set => _position = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -55,8 +51,8 @@ namespace GeometryTD.Entity.EntityData
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Quaternion Rotation
|
public Quaternion Rotation
|
||||||
{
|
{
|
||||||
get => m_Rotation;
|
get => _rotation;
|
||||||
set => m_Rotation = value;
|
set => _rotation = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace GeometryTD.Entity.EntityData
|
||||||
|
{
|
||||||
|
[Serializable]
|
||||||
|
public class MapData : EntityDataBase
|
||||||
|
{
|
||||||
|
[SerializeField] private int _levelId = 0;
|
||||||
|
|
||||||
|
public MapData(int entityId, int levelId, Vector3 position) : this(entityId, 0, levelId, position)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public MapData(int entityId, int typeId, int levelId, Vector3 position) : base(entityId, typeId)
|
||||||
|
{
|
||||||
|
_levelId = levelId;
|
||||||
|
Position = position;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int LevelId
|
||||||
|
{
|
||||||
|
get => _levelId;
|
||||||
|
set => _levelId = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c2635b0451d8c944ea0a5761ebc53d51
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -48,7 +48,25 @@ namespace GeometryTD
|
||||||
|
|
||||||
public static void ShowEnemy(this EntityComponent entityComponent, EnemyData data)
|
public static void ShowEnemy(this EntityComponent entityComponent, EnemyData data)
|
||||||
{
|
{
|
||||||
entityComponent.ShowEntity(typeof(Enemy), "Enemy", Constant.AssetPriority.EnemyAsset, data);
|
entityComponent.ShowEntity(typeof(EnemyEntity), "Enemy", Constant.AssetPriority.EnemyAsset, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ShowMap(this EntityComponent entityComponent, MapData data)
|
||||||
|
{
|
||||||
|
ShowMap(entityComponent, data, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ShowMap(this EntityComponent entityComponent, MapData data, string mapAssetName)
|
||||||
|
{
|
||||||
|
if (data == null)
|
||||||
|
{
|
||||||
|
Log.Warning("Map data is invalid.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
string resolvedMapAssetName = string.IsNullOrEmpty(mapAssetName) ? data.LevelId.ToString() : mapAssetName;
|
||||||
|
string mapAssetPath = AssetUtility.GetLevelMapAsset(resolvedMapAssetName);
|
||||||
|
entityComponent.ShowEntity(data.Id, typeof(MapEntity), mapAssetPath, "Map", Constant.AssetPriority.MapAsset, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void ShowEntity(this EntityComponent entityComponent, Type logicType, string entityGroup,
|
private static void ShowEntity(this EntityComponent entityComponent, Type logicType, string entityGroup,
|
||||||
|
|
|
||||||
|
|
@ -1,69 +0,0 @@
|
||||||
using Components;
|
|
||||||
using GeometryTD.Entity.EntityData;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace GeometryTD.Entity
|
|
||||||
{
|
|
||||||
public class Enemy : EntityBase
|
|
||||||
{
|
|
||||||
private Transform _target;
|
|
||||||
private float _speed;
|
|
||||||
private MovementComponent _movementComponent;
|
|
||||||
private float _attackRange = 1f;
|
|
||||||
private float _attackRangeSquared;
|
|
||||||
|
|
||||||
protected override void OnInit(object userData)
|
|
||||||
{
|
|
||||||
base.OnInit(userData);
|
|
||||||
|
|
||||||
_movementComponent = GetComponent<MovementComponent>();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void OnShow(object userData)
|
|
||||||
{
|
|
||||||
base.OnShow(userData);
|
|
||||||
|
|
||||||
if (userData is EnemyData enemyData)
|
|
||||||
{
|
|
||||||
_speed = enemyData.Speed;
|
|
||||||
_target = enemyData.Player;
|
|
||||||
}
|
|
||||||
|
|
||||||
_movementComponent.OnInit(_speed, this.CachedTransform);
|
|
||||||
_movementComponent.SetMove(true);
|
|
||||||
_attackRangeSquared = _attackRange * _attackRange;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void OnUpdate(float elapseSeconds, float realElapseSeconds)
|
|
||||||
{
|
|
||||||
base.OnUpdate(elapseSeconds, realElapseSeconds);
|
|
||||||
|
|
||||||
float distanceSquared = (this.CachedTransform.position - _target.position).sqrMagnitude;
|
|
||||||
if (distanceSquared < _attackRangeSquared)
|
|
||||||
{
|
|
||||||
// 攻击
|
|
||||||
_movementComponent.SetMove(false);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_movementComponent.SetMove(true);
|
|
||||||
_movementComponent.SetDirection(GetTargetDirection());
|
|
||||||
}
|
|
||||||
|
|
||||||
_movementComponent.OnUpdate(elapseSeconds, realElapseSeconds);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void OnHide(bool isShutdown, object userData)
|
|
||||||
{
|
|
||||||
_movementComponent.SetMove(false);
|
|
||||||
|
|
||||||
base.OnHide(isShutdown, userData);
|
|
||||||
}
|
|
||||||
|
|
||||||
private Vector3 GetTargetDirection()
|
|
||||||
{
|
|
||||||
return new Vector3(_target.position.x - this.CachedTransform.position.x, 0f,
|
|
||||||
_target.position.z - this.CachedTransform.position.z).normalized;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 112f2a17ab82438484782c9a763fdee1
|
|
||||||
timeCreated: 1768892870
|
|
||||||
|
|
@ -0,0 +1,134 @@
|
||||||
|
using Components;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using GeometryTD.Entity.EntityData;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace GeometryTD.Entity
|
||||||
|
{
|
||||||
|
public class EnemyEntity : EntityBase
|
||||||
|
{
|
||||||
|
private const float WaypointReachDistance = 0.05f;
|
||||||
|
|
||||||
|
private Transform _target;
|
||||||
|
private float _speed;
|
||||||
|
private MovementComponent _movementComponent;
|
||||||
|
private readonly List<Vector3> _pathPoints = new List<Vector3>();
|
||||||
|
private int _pathPointIndex;
|
||||||
|
private bool _isDespawnRequested;
|
||||||
|
|
||||||
|
protected override void OnInit(object userData)
|
||||||
|
{
|
||||||
|
base.OnInit(userData);
|
||||||
|
|
||||||
|
_movementComponent = GetComponent<MovementComponent>();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnShow(object userData)
|
||||||
|
{
|
||||||
|
base.OnShow(userData);
|
||||||
|
|
||||||
|
_target = null;
|
||||||
|
_pathPoints.Clear();
|
||||||
|
_pathPointIndex = 0;
|
||||||
|
_isDespawnRequested = false;
|
||||||
|
if (userData is EnemyData enemyData)
|
||||||
|
{
|
||||||
|
_speed = enemyData.Speed;
|
||||||
|
_target = enemyData.Player;
|
||||||
|
if (enemyData.HasPath)
|
||||||
|
{
|
||||||
|
IReadOnlyList<Vector3> pathPoints = enemyData.PathPoints;
|
||||||
|
for (int i = 0; i < pathPoints.Count; i++)
|
||||||
|
{
|
||||||
|
_pathPoints.Add(pathPoints[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_movementComponent.OnInit(_speed, CachedTransform);
|
||||||
|
_movementComponent.SetMove(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnUpdate(float elapseSeconds, float realElapseSeconds)
|
||||||
|
{
|
||||||
|
base.OnUpdate(elapseSeconds, realElapseSeconds);
|
||||||
|
|
||||||
|
if (_pathPoints.Count > 0)
|
||||||
|
{
|
||||||
|
UpdatePathMovement(elapseSeconds, realElapseSeconds);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnHide(bool isShutdown, object userData)
|
||||||
|
{
|
||||||
|
_movementComponent.SetMove(false);
|
||||||
|
_pathPoints.Clear();
|
||||||
|
_pathPointIndex = 0;
|
||||||
|
_isDespawnRequested = false;
|
||||||
|
|
||||||
|
base.OnHide(isShutdown, userData);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdatePathMovement(float elapseSeconds, float realElapseSeconds)
|
||||||
|
{
|
||||||
|
if (_isDespawnRequested)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_pathPointIndex >= _pathPoints.Count)
|
||||||
|
{
|
||||||
|
DespawnOnReachHouse();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector3 direction = GetDirectionToPathPoint(_pathPoints[_pathPointIndex], out float distanceSquared);
|
||||||
|
if (distanceSquared <= WaypointReachDistance * WaypointReachDistance)
|
||||||
|
{
|
||||||
|
_pathPointIndex++;
|
||||||
|
if (_pathPointIndex >= _pathPoints.Count)
|
||||||
|
{
|
||||||
|
DespawnOnReachHouse();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
direction = GetDirectionToPathPoint(_pathPoints[_pathPointIndex], out _);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (direction.sqrMagnitude <= Mathf.Epsilon)
|
||||||
|
{
|
||||||
|
_movementComponent.SetMove(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_movementComponent.SetMove(true);
|
||||||
|
_movementComponent.SetDirection(direction);
|
||||||
|
_movementComponent.OnUpdate(elapseSeconds, realElapseSeconds);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Vector3 GetDirectionToPathPoint(Vector3 worldPoint, out float distanceSquared)
|
||||||
|
{
|
||||||
|
Vector3 delta = worldPoint - CachedTransform.position;
|
||||||
|
distanceSquared = delta.sqrMagnitude;
|
||||||
|
if (distanceSquared <= Mathf.Epsilon)
|
||||||
|
{
|
||||||
|
return Vector3.zero;
|
||||||
|
}
|
||||||
|
|
||||||
|
return delta.normalized;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DespawnOnReachHouse()
|
||||||
|
{
|
||||||
|
if (_isDespawnRequested)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_isDespawnRequested = true;
|
||||||
|
_movementComponent.SetMove(false);
|
||||||
|
GameEntry.Entity.HideEntity(Entity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ec17059949d1140428bd47809397a01f
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,300 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using GeometryTD.Entity.EntityData;
|
||||||
|
using GeometryTD.Pathfinding;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.Tilemaps;
|
||||||
|
using UnityGameFramework.Runtime;
|
||||||
|
|
||||||
|
namespace GeometryTD.Entity
|
||||||
|
{
|
||||||
|
public class MapEntity : EntityBase
|
||||||
|
{
|
||||||
|
private const string PathTileName = "Path";
|
||||||
|
private const string FoundationTileName = "Foundation";
|
||||||
|
private static readonly Spawner[] EmptySpawners = Array.Empty<Spawner>();
|
||||||
|
|
||||||
|
private readonly List<Vector3Int> _pathCells = new();
|
||||||
|
private readonly List<Vector3Int> _foundationCells = new();
|
||||||
|
private readonly HashSet<Vector3Int> _pathCellSet = new();
|
||||||
|
private readonly HashSet<Vector3Int> _foundationCellSet = new();
|
||||||
|
private readonly IMapPathfinder _mapPathfinder = new GridMapPathfinder();
|
||||||
|
private readonly List<Vector3Int> _pathCellBuffer = new();
|
||||||
|
private readonly Dictionary<Spawner, Vector3Int> _spawnerPathStartByRef = new();
|
||||||
|
private readonly Dictionary<Spawner, List<Vector3Int>> _defaultPathCellsBySpawner = new();
|
||||||
|
|
||||||
|
private MapDataRefs _mapDataRefs;
|
||||||
|
private MapData _mapData;
|
||||||
|
private bool _hasHousePathCell;
|
||||||
|
private Vector3Int _housePathCell;
|
||||||
|
|
||||||
|
public IReadOnlyList<Vector3Int> PathCells => _pathCells;
|
||||||
|
public IReadOnlyList<Vector3Int> FoundationCells => _foundationCells;
|
||||||
|
public Tilemap Tilemap => _mapDataRefs != null ? _mapDataRefs.Tilemap : null;
|
||||||
|
public Spawner[] Spawners => _mapDataRefs?.Spawners ?? EmptySpawners;
|
||||||
|
public House House => _mapDataRefs?.House;
|
||||||
|
|
||||||
|
public bool IsPathCell(Vector3Int cellPosition)
|
||||||
|
{
|
||||||
|
return _pathCellSet.Contains(cellPosition);
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsFoundationCell(Vector3Int cellPosition)
|
||||||
|
{
|
||||||
|
return _foundationCellSet.Contains(cellPosition);
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool TryGetNearestPathCell(Vector3 worldPosition, out Vector3Int pathCell)
|
||||||
|
{
|
||||||
|
pathCell = default;
|
||||||
|
if (_pathCells.Count <= 0 || Tilemap == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector3Int directCell = Tilemap.WorldToCell(worldPosition);
|
||||||
|
if (_pathCellSet.Contains(directCell))
|
||||||
|
{
|
||||||
|
pathCell = directCell;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
float minDistance = float.MaxValue;
|
||||||
|
for (int i = 0; i < _pathCells.Count; i++)
|
||||||
|
{
|
||||||
|
Vector3Int candidate = _pathCells[i];
|
||||||
|
float distance = (Tilemap.GetCellCenterWorld(candidate) - worldPosition).sqrMagnitude;
|
||||||
|
if (distance >= minDistance)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
minDistance = distance;
|
||||||
|
pathCell = candidate;
|
||||||
|
}
|
||||||
|
|
||||||
|
return minDistance < float.MaxValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Vector3 GetPathCellCenterWorld(Vector3Int pathCell)
|
||||||
|
{
|
||||||
|
return Tilemap != null ? Tilemap.GetCellCenterWorld(pathCell) : Vector3.zero;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool TryGetDefaultPathCells(Spawner spawner, out IReadOnlyList<Vector3Int> pathCells)
|
||||||
|
{
|
||||||
|
pathCells = null;
|
||||||
|
if (spawner == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_defaultPathCellsBySpawner.TryGetValue(spawner, out List<Vector3Int> cachedPathCells))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
pathCells = cachedPathCells;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool TryFindPathCells(Spawner spawner, IReadOnlyCollection<Vector3Int> blockedCells,
|
||||||
|
List<Vector3Int> pathResult)
|
||||||
|
{
|
||||||
|
if (pathResult == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
pathResult.Clear();
|
||||||
|
if (spawner == null || !_hasHousePathCell)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_spawnerPathStartByRef.TryGetValue(spawner, out Vector3Int startCell))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return _mapPathfinder.TryFindPath(_pathCells, startCell, _housePathCell, blockedCells, pathResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool TryFindPathWorldPoints(Spawner spawner, IReadOnlyCollection<Vector3Int> blockedCells,
|
||||||
|
List<Vector3> worldPathResult)
|
||||||
|
{
|
||||||
|
if (worldPathResult == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
worldPathResult.Clear();
|
||||||
|
if (Tilemap == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!TryFindPathCells(spawner, blockedCells, _pathCellBuffer))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var pos in _pathCellBuffer)
|
||||||
|
{
|
||||||
|
worldPathResult.Add(GetPathCellCenterWorld(pos));
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnInit(object userData)
|
||||||
|
{
|
||||||
|
base.OnInit(userData);
|
||||||
|
|
||||||
|
_mapDataRefs = GetComponent<MapDataRefs>();
|
||||||
|
if (_mapDataRefs == null)
|
||||||
|
{
|
||||||
|
Log.Error("MapDataRefs is missing on map entity '{0}'.", name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnShow(object userData)
|
||||||
|
{
|
||||||
|
base.OnShow(userData);
|
||||||
|
|
||||||
|
_mapData = userData as MapData;
|
||||||
|
if (_mapData == null)
|
||||||
|
{
|
||||||
|
Log.Warning("MapData is invalid for map entity '{0}'.", Id);
|
||||||
|
}
|
||||||
|
|
||||||
|
RefreshTiles();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnHide(bool isShutdown, object userData)
|
||||||
|
{
|
||||||
|
ClearRuntimeData();
|
||||||
|
base.OnHide(isShutdown, userData);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RefreshTiles()
|
||||||
|
{
|
||||||
|
ClearRuntimeData();
|
||||||
|
|
||||||
|
if (_mapDataRefs == null)
|
||||||
|
{
|
||||||
|
_mapDataRefs = GetComponent<MapDataRefs>();
|
||||||
|
if (_mapDataRefs == null)
|
||||||
|
{
|
||||||
|
Log.Error("MapDataRefs is missing on map entity '{0}'.", name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Tilemap tilemap = _mapDataRefs.Tilemap;
|
||||||
|
if (tilemap == null)
|
||||||
|
{
|
||||||
|
Log.Error("Tilemap reference is missing in MapDataRefs on '{0}'.", name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
BoundsInt bounds = tilemap.cellBounds;
|
||||||
|
foreach (Vector3Int cellPosition in bounds.allPositionsWithin)
|
||||||
|
{
|
||||||
|
TileBase tile = tilemap.GetTile(cellPosition);
|
||||||
|
if (tile == null || string.IsNullOrEmpty(tile.name))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (string.Equals(tile.name, PathTileName, StringComparison.Ordinal))
|
||||||
|
{
|
||||||
|
_pathCells.Add(cellPosition);
|
||||||
|
_pathCellSet.Add(cellPosition);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (string.Equals(tile.name, FoundationTileName, StringComparison.Ordinal))
|
||||||
|
{
|
||||||
|
_foundationCells.Add(cellPosition);
|
||||||
|
_foundationCellSet.Add(cellPosition);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
RefreshPathCache();
|
||||||
|
Log.Info(
|
||||||
|
"Map '{0}' initialized. LevelId={1}, PathCells={2}, FoundationCells={3}, Spawners={4}, House={5}, Routes={6}.",
|
||||||
|
name,
|
||||||
|
_mapData != null ? _mapData.LevelId : 0,
|
||||||
|
_pathCells.Count,
|
||||||
|
_foundationCells.Count,
|
||||||
|
Spawners.Length,
|
||||||
|
House != null ? House.name : "None",
|
||||||
|
_defaultPathCellsBySpawner.Count);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RefreshPathCache()
|
||||||
|
{
|
||||||
|
_hasHousePathCell = false;
|
||||||
|
_housePathCell = default;
|
||||||
|
_spawnerPathStartByRef.Clear();
|
||||||
|
_defaultPathCellsBySpawner.Clear();
|
||||||
|
|
||||||
|
if (House == null)
|
||||||
|
{
|
||||||
|
Log.Warning("Map '{0}' has no house reference, path cache skipped.", name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!TryGetNearestPathCell(House.Position, out _housePathCell))
|
||||||
|
{
|
||||||
|
Log.Warning("Map '{0}' house position can not map to a valid path cell.", name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_hasHousePathCell = true;
|
||||||
|
Spawner[] spawners = Spawners;
|
||||||
|
foreach (var spawner in spawners)
|
||||||
|
{
|
||||||
|
if (spawner == null)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!TryGetNearestPathCell(spawner.Position, out Vector3Int startCell))
|
||||||
|
{
|
||||||
|
Log.Warning("Map '{0}' spawner '{1}' can not map to a valid path cell.", name, spawner.name);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
_spawnerPathStartByRef[spawner] = startCell;
|
||||||
|
|
||||||
|
List<Vector3Int> defaultPathCells = new List<Vector3Int>();
|
||||||
|
if (!_mapPathfinder.TryFindPath(_pathCells, startCell, _housePathCell, null, defaultPathCells))
|
||||||
|
{
|
||||||
|
Log.Warning(
|
||||||
|
"Map '{0}' spawner '{1}' has no path to house cell {2}.",
|
||||||
|
name,
|
||||||
|
spawner.name,
|
||||||
|
_housePathCell);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
_defaultPathCellsBySpawner[spawner] = defaultPathCells;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ClearRuntimeData()
|
||||||
|
{
|
||||||
|
_pathCells.Clear();
|
||||||
|
_foundationCells.Clear();
|
||||||
|
_pathCellSet.Clear();
|
||||||
|
_foundationCellSet.Clear();
|
||||||
|
_pathCellBuffer.Clear();
|
||||||
|
_hasHousePathCell = false;
|
||||||
|
_housePathCell = default;
|
||||||
|
_spawnerPathStartByRef.Clear();
|
||||||
|
_defaultPathCellsBySpawner.Clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9d45242aa35912c46a0260f67e3b2ae0
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
using GameFramework.Fsm;
|
using GameFramework.Fsm;
|
||||||
using GameFramework.Procedure;
|
using GameFramework.Procedure;
|
||||||
using GeometryTD.Definition;
|
using GeometryTD.Definition;
|
||||||
using GeometryTD.UI;
|
|
||||||
using UnityGameFramework.Runtime;
|
using UnityGameFramework.Runtime;
|
||||||
|
|
||||||
namespace GeometryTD.Procedure
|
namespace GeometryTD.Procedure
|
||||||
|
|
@ -10,8 +9,6 @@ namespace GeometryTD.Procedure
|
||||||
{
|
{
|
||||||
public override bool UseNativeDialog => false;
|
public override bool UseNativeDialog => false;
|
||||||
|
|
||||||
private RepoFormUseCase _repoFormUseCase;
|
|
||||||
|
|
||||||
public bool GameStart { get; set; }
|
public bool GameStart { get; set; }
|
||||||
|
|
||||||
#region FSM
|
#region FSM
|
||||||
|
|
@ -28,12 +25,13 @@ namespace GeometryTD.Procedure
|
||||||
GameStart = false;
|
GameStart = false;
|
||||||
GameEntry.EventNode.OnInit();
|
GameEntry.EventNode.OnInit();
|
||||||
GameEntry.CombatNode.OnInit(LevelThemeType.Plain);
|
GameEntry.CombatNode.OnInit(LevelThemeType.Plain);
|
||||||
|
GameEntry.CombatNode.StartCombat();
|
||||||
|
|
||||||
//GameEntry.EventNode.StartEvent();
|
//GameEntry.EventNode.StartEvent();
|
||||||
|
|
||||||
_repoFormUseCase = new RepoFormUseCase();
|
// _repoFormUseCase = new RepoFormUseCase();
|
||||||
GameEntry.UIRouter.BindUIUseCase(UIFormType.RepoForm, _repoFormUseCase);
|
// GameEntry.UIRouter.BindUIUseCase(UIFormType.RepoForm, _repoFormUseCase);
|
||||||
GameEntry.UIRouter.OpenUI(UIFormType.RepoForm);
|
// GameEntry.UIRouter.OpenUI(UIFormType.RepoForm);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnUpdate(IFsm<IProcedureManager> procedureOwner, float elapseSeconds,
|
protected override void OnUpdate(IFsm<IProcedureManager> procedureOwner, float elapseSeconds,
|
||||||
|
|
@ -45,11 +43,15 @@ namespace GeometryTD.Procedure
|
||||||
{
|
{
|
||||||
procedureOwner.SetData<VarInt32>("NextSceneId", (int)SceneType.Main);
|
procedureOwner.SetData<VarInt32>("NextSceneId", (int)SceneType.Main);
|
||||||
ChangeState<ProcedureChangeScene>(procedureOwner);
|
ChangeState<ProcedureChangeScene>(procedureOwner);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GameEntry.CombatNode.OnUpdate(elapseSeconds, realElapseSeconds);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnLeave(IFsm<IProcedureManager> procedureOwner, bool isShutdown)
|
protected override void OnLeave(IFsm<IProcedureManager> procedureOwner, bool isShutdown)
|
||||||
{
|
{
|
||||||
|
GameEntry.CombatNode.OnShutdown();
|
||||||
base.OnLeave(procedureOwner, isShutdown);
|
base.OnLeave(procedureOwner, isShutdown);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,7 @@
|
||||||
//------------------------------------------------------------
|
using GameFramework;
|
||||||
// Game Framework
|
|
||||||
// Copyright © 2013-2021 Jiang Yin. All rights reserved.
|
|
||||||
// Homepage: https://gameframework.cn/
|
|
||||||
// Feedback: mailto:ellan@gameframework.cn
|
|
||||||
//------------------------------------------------------------
|
|
||||||
|
|
||||||
using GameFramework;
|
|
||||||
using GameFramework.Event;
|
using GameFramework.Event;
|
||||||
using GameFramework.Resource;
|
using GameFramework.Resource;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using GeometryTD;
|
|
||||||
using GeometryTD.CustomUtility;
|
using GeometryTD.CustomUtility;
|
||||||
using GeometryTD.DataTable;
|
using GeometryTD.DataTable;
|
||||||
using GeometryTD.Definition;
|
using GeometryTD.Definition;
|
||||||
|
|
@ -43,7 +35,7 @@ namespace GeometryTD.Procedure
|
||||||
"UISound",
|
"UISound",
|
||||||
};
|
};
|
||||||
|
|
||||||
private Dictionary<string, bool> _loadedFlag = new Dictionary<string, bool>();
|
private readonly Dictionary<string, bool> _loadedFlag = new();
|
||||||
|
|
||||||
public override bool UseNativeDialog => true;
|
public override bool UseNativeDialog => true;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace GeometryTD
|
||||||
|
{
|
||||||
|
[DisallowMultipleComponent]
|
||||||
|
public class House : MonoBehaviour
|
||||||
|
{
|
||||||
|
public Vector3 Position => transform.position;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d1a168ec7442cbb4ebe72bd5a8140a9c
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.Tilemaps;
|
||||||
|
|
||||||
|
namespace GeometryTD
|
||||||
|
{
|
||||||
|
[DisallowMultipleComponent]
|
||||||
|
public class MapDataRefs : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField] private Tilemap _tilemap = null;
|
||||||
|
[SerializeField] private Spawner[] _spawners = null;
|
||||||
|
[SerializeField] private House _house = null;
|
||||||
|
|
||||||
|
public Tilemap Tilemap => _tilemap;
|
||||||
|
public Spawner[] Spawners => _spawners;
|
||||||
|
public House House => _house;
|
||||||
|
|
||||||
|
#if UNITY_EDITOR
|
||||||
|
private void OnValidate()
|
||||||
|
{
|
||||||
|
if (_tilemap == null)
|
||||||
|
{
|
||||||
|
_tilemap = GetComponentInChildren<Tilemap>(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_spawners == null || _spawners.Length == 0)
|
||||||
|
{
|
||||||
|
_spawners = GetComponentsInChildren<Spawner>(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_house == null)
|
||||||
|
{
|
||||||
|
_house = GetComponentInChildren<House>(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 34140eda5b81ee44dafb450b3d53d9c3
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b3c0f83d0aecadf4d82856eea8b5260c
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,134 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace GeometryTD.Pathfinding
|
||||||
|
{
|
||||||
|
public class GridMapPathfinder : IMapPathfinder
|
||||||
|
{
|
||||||
|
private static readonly Vector3Int[] NeighborOffsets =
|
||||||
|
{
|
||||||
|
new Vector3Int(1, 0, 0),
|
||||||
|
new Vector3Int(-1, 0, 0),
|
||||||
|
new Vector3Int(0, 1, 0),
|
||||||
|
new Vector3Int(0, -1, 0)
|
||||||
|
};
|
||||||
|
|
||||||
|
private readonly HashSet<Vector3Int> _walkableSet = new HashSet<Vector3Int>();
|
||||||
|
private readonly Queue<Vector3Int> _openQueue = new Queue<Vector3Int>();
|
||||||
|
private readonly Dictionary<Vector3Int, Vector3Int> _cameFrom = new Dictionary<Vector3Int, Vector3Int>();
|
||||||
|
|
||||||
|
public bool TryFindPath(
|
||||||
|
IReadOnlyCollection<Vector3Int> walkableCells,
|
||||||
|
Vector3Int startCell,
|
||||||
|
Vector3Int destinationCell,
|
||||||
|
IReadOnlyCollection<Vector3Int> blockedCells,
|
||||||
|
List<Vector3Int> pathResult)
|
||||||
|
{
|
||||||
|
if (pathResult == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
pathResult.Clear();
|
||||||
|
if (walkableCells == null || walkableCells.Count <= 0)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
BuildWalkableSet(walkableCells);
|
||||||
|
if (!_walkableSet.Contains(startCell) || !_walkableSet.Contains(destinationCell))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
_openQueue.Clear();
|
||||||
|
_cameFrom.Clear();
|
||||||
|
_openQueue.Enqueue(startCell);
|
||||||
|
_cameFrom[startCell] = startCell;
|
||||||
|
|
||||||
|
while (_openQueue.Count > 0)
|
||||||
|
{
|
||||||
|
Vector3Int currentCell = _openQueue.Dequeue();
|
||||||
|
if (currentCell == destinationCell)
|
||||||
|
{
|
||||||
|
BuildPath(destinationCell, pathResult);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < NeighborOffsets.Length; i++)
|
||||||
|
{
|
||||||
|
Vector3Int nextCell = currentCell + NeighborOffsets[i];
|
||||||
|
if (!_walkableSet.Contains(nextCell) || _cameFrom.ContainsKey(nextCell))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (IsBlocked(nextCell, blockedCells, startCell, destinationCell))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
_cameFrom[nextCell] = currentCell;
|
||||||
|
_openQueue.Enqueue(nextCell);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BuildWalkableSet(IReadOnlyCollection<Vector3Int> walkableCells)
|
||||||
|
{
|
||||||
|
_walkableSet.Clear();
|
||||||
|
foreach (Vector3Int cell in walkableCells)
|
||||||
|
{
|
||||||
|
_walkableSet.Add(cell);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BuildPath(Vector3Int destinationCell, List<Vector3Int> pathResult)
|
||||||
|
{
|
||||||
|
pathResult.Clear();
|
||||||
|
Vector3Int current = destinationCell;
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
pathResult.Add(current);
|
||||||
|
Vector3Int parent = _cameFrom[current];
|
||||||
|
if (parent == current)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
current = parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
pathResult.Reverse();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool IsBlocked(
|
||||||
|
Vector3Int cell,
|
||||||
|
IReadOnlyCollection<Vector3Int> blockedCells,
|
||||||
|
Vector3Int startCell,
|
||||||
|
Vector3Int destinationCell)
|
||||||
|
{
|
||||||
|
if (blockedCells == null || blockedCells.Count <= 0)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cell == startCell || cell == destinationCell)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (Vector3Int blockedCell in blockedCells)
|
||||||
|
{
|
||||||
|
if (blockedCell == cell)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7a92a95ffefd4a6082255420a184ee34
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace GeometryTD.Pathfinding
|
||||||
|
{
|
||||||
|
public interface IMapPathfinder
|
||||||
|
{
|
||||||
|
bool TryFindPath(
|
||||||
|
IReadOnlyCollection<Vector3Int> walkableCells,
|
||||||
|
Vector3Int startCell,
|
||||||
|
Vector3Int destinationCell,
|
||||||
|
IReadOnlyCollection<Vector3Int> blockedCells,
|
||||||
|
List<Vector3Int> pathResult);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5540589b31b39ee4db4e77033a511a0c
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace GeometryTD
|
||||||
|
{
|
||||||
|
[DisallowMultipleComponent]
|
||||||
|
public class Spawner : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField] private int _spawnOrder = 0;
|
||||||
|
|
||||||
|
public int SpawnOrder => _spawnOrder;
|
||||||
|
|
||||||
|
public Vector3 Position => transform.position;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 444d6b38c3d704a4b9c4692ff53e76b1
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -69,7 +69,7 @@ namespace GeometryTD.CustomUtility
|
||||||
|
|
||||||
public static string GetLevelMapAsset(string assetName)
|
public static string GetLevelMapAsset(string assetName)
|
||||||
{
|
{
|
||||||
return Utility.Text.Format("Assets/GameMain/LevelMap/Level{0}.prefab", assetName);
|
return Utility.Text.Format("Assets/GameMain/Entities/LevelMap/Level{0}.prefab", assetName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -45,7 +45,7 @@ TextureImporter:
|
||||||
compressionQuality: 50
|
compressionQuality: 50
|
||||||
spriteMode: 1
|
spriteMode: 1
|
||||||
spriteExtrude: 1
|
spriteExtrude: 1
|
||||||
spriteMeshType: 1
|
spriteMeshType: 0
|
||||||
alignment: 0
|
alignment: 0
|
||||||
spritePivot: {x: 0.5, y: 0.5}
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
spritePixelsToUnits: 100
|
spritePixelsToUnits: 100
|
||||||
|
|
@ -93,6 +93,19 @@ TextureImporter:
|
||||||
ignorePlatformSupport: 0
|
ignorePlatformSupport: 0
|
||||||
androidETC2FallbackOverride: 0
|
androidETC2FallbackOverride: 0
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 1024
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
spriteSheet:
|
spriteSheet:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
sprites: []
|
sprites: []
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ TextureImporter:
|
||||||
compressionQuality: 50
|
compressionQuality: 50
|
||||||
spriteMode: 1
|
spriteMode: 1
|
||||||
spriteExtrude: 1
|
spriteExtrude: 1
|
||||||
spriteMeshType: 1
|
spriteMeshType: 0
|
||||||
alignment: 0
|
alignment: 0
|
||||||
spritePivot: {x: 0.5, y: 0.5}
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
spritePixelsToUnits: 100
|
spritePixelsToUnits: 100
|
||||||
|
|
@ -93,6 +93,19 @@ TextureImporter:
|
||||||
ignorePlatformSupport: 0
|
ignorePlatformSupport: 0
|
||||||
androidETC2FallbackOverride: 0
|
androidETC2FallbackOverride: 0
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 1024
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
spriteSheet:
|
spriteSheet:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
sprites: []
|
sprites: []
|
||||||
|
|
|
||||||
|
|
@ -122,134 +122,6 @@ NavMeshSettings:
|
||||||
debug:
|
debug:
|
||||||
m_Flags: 0
|
m_Flags: 0
|
||||||
m_NavMeshData: {fileID: 0}
|
m_NavMeshData: {fileID: 0}
|
||||||
--- !u!1 &48654042
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 48654047}
|
|
||||||
- component: {fileID: 48654046}
|
|
||||||
- component: {fileID: 48654048}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: Camera
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!20 &48654046
|
|
||||||
Camera:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 48654042}
|
|
||||||
m_Enabled: 1
|
|
||||||
serializedVersion: 2
|
|
||||||
m_ClearFlags: 2
|
|
||||||
m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0.019607844}
|
|
||||||
m_projectionMatrixMode: 1
|
|
||||||
m_GateFitMode: 2
|
|
||||||
m_FOVAxisMode: 0
|
|
||||||
m_Iso: 200
|
|
||||||
m_ShutterSpeed: 0.005
|
|
||||||
m_Aperture: 16
|
|
||||||
m_FocusDistance: 10
|
|
||||||
m_FocalLength: 50
|
|
||||||
m_BladeCount: 5
|
|
||||||
m_Curvature: {x: 2, y: 11}
|
|
||||||
m_BarrelClipping: 0.25
|
|
||||||
m_Anamorphism: 0
|
|
||||||
m_SensorSize: {x: 36, y: 24}
|
|
||||||
m_LensShift: {x: 0, y: 0}
|
|
||||||
m_NormalizedViewPortRect:
|
|
||||||
serializedVersion: 2
|
|
||||||
x: 0
|
|
||||||
y: 0
|
|
||||||
width: 1
|
|
||||||
height: 1
|
|
||||||
near clip plane: 0.3
|
|
||||||
far clip plane: 50
|
|
||||||
field of view: 60
|
|
||||||
orthographic: 0
|
|
||||||
orthographic size: 5
|
|
||||||
m_Depth: -100
|
|
||||||
m_CullingMask:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 0
|
|
||||||
m_RenderingPath: -1
|
|
||||||
m_TargetTexture: {fileID: 0}
|
|
||||||
m_TargetDisplay: 0
|
|
||||||
m_TargetEye: 3
|
|
||||||
m_HDR: 0
|
|
||||||
m_AllowMSAA: 1
|
|
||||||
m_AllowDynamicResolution: 0
|
|
||||||
m_ForceIntoRT: 0
|
|
||||||
m_OcclusionCulling: 1
|
|
||||||
m_StereoConvergence: 10
|
|
||||||
m_StereoSeparation: 0.022
|
|
||||||
--- !u!4 &48654047
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 48654042}
|
|
||||||
serializedVersion: 2
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_ConstrainProportionsScale: 0
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!114 &48654048
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 48654042}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_RenderShadows: 1
|
|
||||||
m_RequiresDepthTextureOption: 2
|
|
||||||
m_RequiresOpaqueTextureOption: 2
|
|
||||||
m_CameraType: 0
|
|
||||||
m_Cameras: []
|
|
||||||
m_RendererIndex: -1
|
|
||||||
m_VolumeLayerMask:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 1
|
|
||||||
m_VolumeTrigger: {fileID: 0}
|
|
||||||
m_VolumeFrameworkUpdateModeOption: 2
|
|
||||||
m_RenderPostProcessing: 0
|
|
||||||
m_Antialiasing: 0
|
|
||||||
m_AntialiasingQuality: 2
|
|
||||||
m_StopNaN: 0
|
|
||||||
m_Dithering: 0
|
|
||||||
m_ClearDepth: 1
|
|
||||||
m_AllowXRRendering: 1
|
|
||||||
m_AllowHDROutput: 1
|
|
||||||
m_UseScreenCoordOverride: 0
|
|
||||||
m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
m_RequiresDepthTexture: 0
|
|
||||||
m_RequiresColorTexture: 0
|
|
||||||
m_Version: 2
|
|
||||||
m_TaaSettings:
|
|
||||||
m_Quality: 3
|
|
||||||
m_FrameInfluence: 0.1
|
|
||||||
m_JitterScale: 1
|
|
||||||
m_MipBias: 0
|
|
||||||
m_VarianceClampScale: 0.9
|
|
||||||
m_ContrastAdaptiveSharpening: 0
|
|
||||||
--- !u!1 &119167775
|
--- !u!1 &119167775
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
@ -281,7 +153,6 @@ Transform:
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 513208573}
|
- {fileID: 513208573}
|
||||||
- {fileID: 1604812193}
|
- {fileID: 1604812193}
|
||||||
- {fileID: 1968988098}
|
|
||||||
- {fileID: 159392563}
|
- {fileID: 159392563}
|
||||||
- {fileID: 1549230541}
|
- {fileID: 1549230541}
|
||||||
- {fileID: 2007255511}
|
- {fileID: 2007255511}
|
||||||
|
|
@ -649,44 +520,44 @@ PrefabInstance:
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
||||||
propertyPath: m_EntityGroups.Array.size
|
propertyPath: m_EntityGroups.Array.size
|
||||||
value: 9
|
value: 5
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
||||||
propertyPath: m_EntityGroups.Array.data[0].m_Name
|
propertyPath: m_EntityGroups.Array.data[0].m_Name
|
||||||
value: Aircraft
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
|
||||||
propertyPath: m_EntityGroups.Array.data[1].m_Name
|
|
||||||
value: Thruster
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
|
||||||
propertyPath: m_EntityGroups.Array.data[2].m_Name
|
|
||||||
value: Weapon
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
|
||||||
propertyPath: m_EntityGroups.Array.data[3].m_Name
|
|
||||||
value: Armor
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
|
||||||
propertyPath: m_EntityGroups.Array.data[4].m_Name
|
|
||||||
value: Bullet
|
value: Bullet
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
||||||
propertyPath: m_EntityGroups.Array.data[5].m_Name
|
propertyPath: m_EntityGroups.Array.data[1].m_Name
|
||||||
value: Asteroid
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
|
||||||
propertyPath: m_EntityGroups.Array.data[6].m_Name
|
|
||||||
value: Effect
|
value: Effect
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
||||||
propertyPath: m_EntityGroups.Array.data[7].m_Name
|
propertyPath: m_EntityGroups.Array.data[2].m_Name
|
||||||
value: Enemy
|
value: Enemy
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
||||||
propertyPath: m_EntityGroups.Array.data[8].m_Name
|
propertyPath: m_EntityGroups.Array.data[3].m_Name
|
||||||
value: Player
|
value: Player
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
||||||
|
propertyPath: m_EntityGroups.Array.data[4].m_Name
|
||||||
|
value: Map
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
||||||
|
propertyPath: m_EntityGroups.Array.data[5].m_Name
|
||||||
|
value: Player
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
||||||
|
propertyPath: m_EntityGroups.Array.data[6].m_Name
|
||||||
|
value: Player
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
||||||
|
propertyPath: m_EntityGroups.Array.data[7].m_Name
|
||||||
|
value: Player
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
||||||
|
propertyPath: m_EntityGroups.Array.data[8].m_Name
|
||||||
|
value: Aircraft
|
||||||
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
||||||
propertyPath: m_EntityGroups.Array.data[0].m_InstanceCapacity
|
propertyPath: m_EntityGroups.Array.data[0].m_InstanceCapacity
|
||||||
value: 16
|
value: 16
|
||||||
|
|
@ -697,32 +568,32 @@ PrefabInstance:
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
||||||
propertyPath: m_EntityGroups.Array.data[2].m_InstanceCapacity
|
propertyPath: m_EntityGroups.Array.data[2].m_InstanceCapacity
|
||||||
value: 16
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
|
||||||
propertyPath: m_EntityGroups.Array.data[3].m_InstanceCapacity
|
|
||||||
value: 16
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
|
||||||
propertyPath: m_EntityGroups.Array.data[4].m_InstanceCapacity
|
|
||||||
value: 16
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
|
||||||
propertyPath: m_EntityGroups.Array.data[5].m_InstanceCapacity
|
|
||||||
value: 16
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
|
||||||
propertyPath: m_EntityGroups.Array.data[6].m_InstanceCapacity
|
|
||||||
value: 16
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
|
||||||
propertyPath: m_EntityGroups.Array.data[7].m_InstanceCapacity
|
|
||||||
value: 500
|
value: 500
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
||||||
propertyPath: m_EntityGroups.Array.data[8].m_InstanceCapacity
|
propertyPath: m_EntityGroups.Array.data[3].m_InstanceCapacity
|
||||||
value: 2
|
value: 2
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
||||||
|
propertyPath: m_EntityGroups.Array.data[4].m_InstanceCapacity
|
||||||
|
value: 2
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
||||||
|
propertyPath: m_EntityGroups.Array.data[5].m_InstanceCapacity
|
||||||
|
value: 2
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
||||||
|
propertyPath: m_EntityGroups.Array.data[6].m_InstanceCapacity
|
||||||
|
value: 2
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
||||||
|
propertyPath: m_EntityGroups.Array.data[7].m_InstanceCapacity
|
||||||
|
value: 2
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
||||||
|
propertyPath: m_EntityGroups.Array.data[8].m_InstanceCapacity
|
||||||
|
value: 16
|
||||||
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
||||||
propertyPath: m_EntityGroups.Array.data[0].m_InstanceExpireTime
|
propertyPath: m_EntityGroups.Array.data[0].m_InstanceExpireTime
|
||||||
value: 60
|
value: 60
|
||||||
|
|
@ -769,7 +640,7 @@ PrefabInstance:
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
||||||
propertyPath: m_EntityGroups.Array.data[2].m_InstanceAutoReleaseInterval
|
propertyPath: m_EntityGroups.Array.data[2].m_InstanceAutoReleaseInterval
|
||||||
value: 60
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
||||||
propertyPath: m_EntityGroups.Array.data[3].m_InstanceAutoReleaseInterval
|
propertyPath: m_EntityGroups.Array.data[3].m_InstanceAutoReleaseInterval
|
||||||
|
|
@ -789,7 +660,7 @@ PrefabInstance:
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
||||||
propertyPath: m_EntityGroups.Array.data[7].m_InstanceAutoReleaseInterval
|
propertyPath: m_EntityGroups.Array.data[7].m_InstanceAutoReleaseInterval
|
||||||
value: 0
|
value: 60
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
- target: {fileID: 11494652, guid: adb3eb1c35fcff14f89fba7b05c9d71c, type: 3}
|
||||||
propertyPath: m_EntityGroups.Array.data[8].m_InstanceAutoReleaseInterval
|
propertyPath: m_EntityGroups.Array.data[8].m_InstanceAutoReleaseInterval
|
||||||
|
|
@ -1275,50 +1146,6 @@ MonoBehaviour:
|
||||||
m_Script: {fileID: 11500000, guid: 3d09b8a3e8c0e7e4dbcfd2fa52bf69ea, type: 3}
|
m_Script: {fileID: 11500000, guid: 3d09b8a3e8c0e7e4dbcfd2fa52bf69ea, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
--- !u!1 &1968988097
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 1968988098}
|
|
||||||
- component: {fileID: 1968988099}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: EnemyManager
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!4 &1968988098
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1968988097}
|
|
||||||
serializedVersion: 2
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_ConstrainProportionsScale: 0
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 119167776}
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!114 &1968988099
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1968988097}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 8d840df1b53db744cb522b82426f2cd5, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
--- !u!1 &2007255510
|
--- !u!1 &2007255510
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
@ -1368,5 +1195,4 @@ SceneRoots:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_Roots:
|
m_Roots:
|
||||||
- {fileID: 1852670053}
|
- {fileID: 1852670053}
|
||||||
- {fileID: 48654047}
|
|
||||||
- {fileID: 120093242}
|
- {fileID: 120093242}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,114 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3}
|
||||||
|
m_Name: High_PipelineAsset
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
k_AssetVersion: 11
|
||||||
|
k_AssetPreviousVersion: 11
|
||||||
|
m_RendererType: 1
|
||||||
|
m_RendererData: {fileID: 0}
|
||||||
|
m_RendererDataList:
|
||||||
|
- {fileID: 11400000, guid: a9491753d0562f64d94d4aedae8b9adc, type: 2}
|
||||||
|
m_DefaultRendererIndex: 0
|
||||||
|
m_RequireDepthTexture: 0
|
||||||
|
m_RequireOpaqueTexture: 0
|
||||||
|
m_OpaqueDownsampling: 1
|
||||||
|
m_SupportsTerrainHoles: 1
|
||||||
|
m_SupportsHDR: 0
|
||||||
|
m_HDRColorBufferPrecision: 0
|
||||||
|
m_MSAA: 1
|
||||||
|
m_RenderScale: 1
|
||||||
|
m_UpscalingFilter: 0
|
||||||
|
m_FsrOverrideSharpness: 0
|
||||||
|
m_FsrSharpness: 0.92
|
||||||
|
m_EnableLODCrossFade: 1
|
||||||
|
m_LODCrossFadeDitheringType: 1
|
||||||
|
m_ShEvalMode: 0
|
||||||
|
m_MainLightRenderingMode: 1
|
||||||
|
m_MainLightShadowsSupported: 0
|
||||||
|
m_MainLightShadowmapResolution: 2048
|
||||||
|
m_AdditionalLightsRenderingMode: 1
|
||||||
|
m_AdditionalLightsPerObjectLimit: 2
|
||||||
|
m_AdditionalLightShadowsSupported: 0
|
||||||
|
m_AdditionalLightsShadowmapResolution: 2048
|
||||||
|
m_AdditionalLightsShadowResolutionTierLow: 256
|
||||||
|
m_AdditionalLightsShadowResolutionTierMedium: 512
|
||||||
|
m_AdditionalLightsShadowResolutionTierHigh: 1024
|
||||||
|
m_ReflectionProbeBlending: 1
|
||||||
|
m_ReflectionProbeBoxProjection: 1
|
||||||
|
m_ShadowDistance: 40
|
||||||
|
m_ShadowCascadeCount: 2
|
||||||
|
m_Cascade2Split: 0.33333334
|
||||||
|
m_Cascade3Split: {x: 0.1, y: 0.3}
|
||||||
|
m_Cascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
||||||
|
m_CascadeBorder: 0.2
|
||||||
|
m_ShadowDepthBias: 1
|
||||||
|
m_ShadowNormalBias: 1
|
||||||
|
m_AnyShadowsSupported: 0
|
||||||
|
m_SoftShadowsSupported: 0
|
||||||
|
m_ConservativeEnclosingSphere: 0
|
||||||
|
m_NumIterationsEnclosingSphere: 64
|
||||||
|
m_SoftShadowQuality: 2
|
||||||
|
m_AdditionalLightsCookieResolution: 2048
|
||||||
|
m_AdditionalLightsCookieFormat: 3
|
||||||
|
m_UseSRPBatcher: 1
|
||||||
|
m_SupportsDynamicBatching: 0
|
||||||
|
m_MixedLightingSupported: 1
|
||||||
|
m_SupportsLightCookies: 1
|
||||||
|
m_SupportsLightLayers: 0
|
||||||
|
m_DebugLevel: 0
|
||||||
|
m_StoreActionsOptimization: 0
|
||||||
|
m_EnableRenderGraph: 0
|
||||||
|
m_UseAdaptivePerformance: 1
|
||||||
|
m_ColorGradingMode: 0
|
||||||
|
m_ColorGradingLutSize: 32
|
||||||
|
m_UseFastSRGBLinearConversion: 0
|
||||||
|
m_SupportDataDrivenLensFlare: 1
|
||||||
|
m_ShadowType: 1
|
||||||
|
m_LocalShadowsSupported: 0
|
||||||
|
m_LocalShadowsAtlasResolution: 256
|
||||||
|
m_MaxPixelLights: 0
|
||||||
|
m_ShadowAtlasResolution: 256
|
||||||
|
m_VolumeFrameworkUpdateMode: 0
|
||||||
|
m_Textures:
|
||||||
|
blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3}
|
||||||
|
bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3}
|
||||||
|
m_PrefilteringModeMainLightShadows: 1
|
||||||
|
m_PrefilteringModeAdditionalLight: 4
|
||||||
|
m_PrefilteringModeAdditionalLightShadows: 1
|
||||||
|
m_PrefilterXRKeywords: 0
|
||||||
|
m_PrefilteringModeForwardPlus: 1
|
||||||
|
m_PrefilteringModeDeferredRendering: 1
|
||||||
|
m_PrefilteringModeScreenSpaceOcclusion: 1
|
||||||
|
m_PrefilterDebugKeywords: 0
|
||||||
|
m_PrefilterWriteRenderingLayers: 0
|
||||||
|
m_PrefilterHDROutput: 0
|
||||||
|
m_PrefilterSSAODepthNormals: 0
|
||||||
|
m_PrefilterSSAOSourceDepthLow: 0
|
||||||
|
m_PrefilterSSAOSourceDepthMedium: 0
|
||||||
|
m_PrefilterSSAOSourceDepthHigh: 0
|
||||||
|
m_PrefilterSSAOInterleaved: 0
|
||||||
|
m_PrefilterSSAOBlueNoise: 0
|
||||||
|
m_PrefilterSSAOSampleCountLow: 0
|
||||||
|
m_PrefilterSSAOSampleCountMedium: 0
|
||||||
|
m_PrefilterSSAOSampleCountHigh: 0
|
||||||
|
m_PrefilterDBufferMRT1: 0
|
||||||
|
m_PrefilterDBufferMRT2: 0
|
||||||
|
m_PrefilterDBufferMRT3: 0
|
||||||
|
m_PrefilterSoftShadowsQualityLow: 0
|
||||||
|
m_PrefilterSoftShadowsQualityMedium: 0
|
||||||
|
m_PrefilterSoftShadowsQualityHigh: 0
|
||||||
|
m_PrefilterSoftShadows: 0
|
||||||
|
m_PrefilterScreenCoord: 0
|
||||||
|
m_PrefilterNativeRenderPass: 0
|
||||||
|
m_ShaderVariantLogLevel: 0
|
||||||
|
m_ShadowCascades: 0
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bc33e66b6fb14ee4ca285f231a27cc8f
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,68 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3}
|
||||||
|
m_Name: High_PipelineAsset_ForwardRenderer
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
debugShaders:
|
||||||
|
debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7,
|
||||||
|
type: 3}
|
||||||
|
hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3}
|
||||||
|
m_RendererFeatures: []
|
||||||
|
m_RendererFeatureMap:
|
||||||
|
m_UseNativeRenderPass: 0
|
||||||
|
postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
|
||||||
|
xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2}
|
||||||
|
shaders:
|
||||||
|
blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3}
|
||||||
|
copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}
|
||||||
|
screenSpaceShadowPS: {fileID: 0}
|
||||||
|
samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3}
|
||||||
|
stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3}
|
||||||
|
fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3}
|
||||||
|
fallbackLoadingPS: {fileID: 4800000, guid: 7f888aff2ac86494babad1c2c5daeee2, type: 3}
|
||||||
|
materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3}
|
||||||
|
coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3}
|
||||||
|
coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b,
|
||||||
|
type: 3}
|
||||||
|
blitHDROverlay: {fileID: 4800000, guid: a89bee29cffa951418fc1e2da94d1959, type: 3}
|
||||||
|
cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf,
|
||||||
|
type: 3}
|
||||||
|
objectMotionVector: {fileID: 4800000, guid: 7b3ede40266cd49a395def176e1bc486,
|
||||||
|
type: 3}
|
||||||
|
dataDrivenLensFlare: {fileID: 4800000, guid: 6cda457ac28612740adb23da5d39ea92,
|
||||||
|
type: 3}
|
||||||
|
terrainDetailLitPS: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144,
|
||||||
|
type: 3}
|
||||||
|
terrainDetailGrassPS: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1,
|
||||||
|
type: 3}
|
||||||
|
terrainDetailGrassBillboardPS: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90,
|
||||||
|
type: 3}
|
||||||
|
m_AssetVersion: 2
|
||||||
|
m_OpaqueLayerMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_TransparentLayerMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_DefaultStencilState:
|
||||||
|
overrideStencilState: 0
|
||||||
|
stencilReference: 0
|
||||||
|
stencilCompareFunction: 8
|
||||||
|
passOperation: 2
|
||||||
|
failOperation: 0
|
||||||
|
zFailOperation: 0
|
||||||
|
m_ShadowTransparentReceive: 1
|
||||||
|
m_RenderingMode: 0
|
||||||
|
m_DepthPrimingMode: 0
|
||||||
|
m_CopyDepthMode: 1
|
||||||
|
m_AccurateGbufferNormals: 0
|
||||||
|
m_IntermediateTextureMode: 1
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a9491753d0562f64d94d4aedae8b9adc
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,114 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3}
|
||||||
|
m_Name: Low_PipelineAsset
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
k_AssetVersion: 11
|
||||||
|
k_AssetPreviousVersion: 11
|
||||||
|
m_RendererType: 1
|
||||||
|
m_RendererData: {fileID: 0}
|
||||||
|
m_RendererDataList:
|
||||||
|
- {fileID: 11400000, guid: 2ccbdd81466a9924497b284d72bc5c49, type: 2}
|
||||||
|
m_DefaultRendererIndex: 0
|
||||||
|
m_RequireDepthTexture: 0
|
||||||
|
m_RequireOpaqueTexture: 0
|
||||||
|
m_OpaqueDownsampling: 1
|
||||||
|
m_SupportsTerrainHoles: 1
|
||||||
|
m_SupportsHDR: 0
|
||||||
|
m_HDRColorBufferPrecision: 0
|
||||||
|
m_MSAA: 1
|
||||||
|
m_RenderScale: 1
|
||||||
|
m_UpscalingFilter: 0
|
||||||
|
m_FsrOverrideSharpness: 0
|
||||||
|
m_FsrSharpness: 0.92
|
||||||
|
m_EnableLODCrossFade: 1
|
||||||
|
m_LODCrossFadeDitheringType: 1
|
||||||
|
m_ShEvalMode: 0
|
||||||
|
m_MainLightRenderingMode: 0
|
||||||
|
m_MainLightShadowsSupported: 0
|
||||||
|
m_MainLightShadowmapResolution: 1024
|
||||||
|
m_AdditionalLightsRenderingMode: 2
|
||||||
|
m_AdditionalLightsPerObjectLimit: 4
|
||||||
|
m_AdditionalLightShadowsSupported: 0
|
||||||
|
m_AdditionalLightsShadowmapResolution: 1024
|
||||||
|
m_AdditionalLightsShadowResolutionTierLow: 256
|
||||||
|
m_AdditionalLightsShadowResolutionTierMedium: 512
|
||||||
|
m_AdditionalLightsShadowResolutionTierHigh: 1024
|
||||||
|
m_ReflectionProbeBlending: 1
|
||||||
|
m_ReflectionProbeBoxProjection: 1
|
||||||
|
m_ShadowDistance: 20
|
||||||
|
m_ShadowCascadeCount: 1
|
||||||
|
m_Cascade2Split: 0.33333334
|
||||||
|
m_Cascade3Split: {x: 0.1, y: 0.3}
|
||||||
|
m_Cascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
||||||
|
m_CascadeBorder: 0.2
|
||||||
|
m_ShadowDepthBias: 1
|
||||||
|
m_ShadowNormalBias: 1
|
||||||
|
m_AnyShadowsSupported: 0
|
||||||
|
m_SoftShadowsSupported: 0
|
||||||
|
m_ConservativeEnclosingSphere: 0
|
||||||
|
m_NumIterationsEnclosingSphere: 64
|
||||||
|
m_SoftShadowQuality: 2
|
||||||
|
m_AdditionalLightsCookieResolution: 2048
|
||||||
|
m_AdditionalLightsCookieFormat: 3
|
||||||
|
m_UseSRPBatcher: 1
|
||||||
|
m_SupportsDynamicBatching: 0
|
||||||
|
m_MixedLightingSupported: 1
|
||||||
|
m_SupportsLightCookies: 1
|
||||||
|
m_SupportsLightLayers: 0
|
||||||
|
m_DebugLevel: 0
|
||||||
|
m_StoreActionsOptimization: 0
|
||||||
|
m_EnableRenderGraph: 0
|
||||||
|
m_UseAdaptivePerformance: 1
|
||||||
|
m_ColorGradingMode: 0
|
||||||
|
m_ColorGradingLutSize: 32
|
||||||
|
m_UseFastSRGBLinearConversion: 0
|
||||||
|
m_SupportDataDrivenLensFlare: 1
|
||||||
|
m_ShadowType: 1
|
||||||
|
m_LocalShadowsSupported: 0
|
||||||
|
m_LocalShadowsAtlasResolution: 256
|
||||||
|
m_MaxPixelLights: 0
|
||||||
|
m_ShadowAtlasResolution: 256
|
||||||
|
m_VolumeFrameworkUpdateMode: 0
|
||||||
|
m_Textures:
|
||||||
|
blueNoise64LTex: {fileID: 0}
|
||||||
|
bayerMatrixTex: {fileID: 0}
|
||||||
|
m_PrefilteringModeMainLightShadows: 1
|
||||||
|
m_PrefilteringModeAdditionalLight: 4
|
||||||
|
m_PrefilteringModeAdditionalLightShadows: 1
|
||||||
|
m_PrefilterXRKeywords: 0
|
||||||
|
m_PrefilteringModeForwardPlus: 1
|
||||||
|
m_PrefilteringModeDeferredRendering: 1
|
||||||
|
m_PrefilteringModeScreenSpaceOcclusion: 1
|
||||||
|
m_PrefilterDebugKeywords: 0
|
||||||
|
m_PrefilterWriteRenderingLayers: 0
|
||||||
|
m_PrefilterHDROutput: 0
|
||||||
|
m_PrefilterSSAODepthNormals: 0
|
||||||
|
m_PrefilterSSAOSourceDepthLow: 0
|
||||||
|
m_PrefilterSSAOSourceDepthMedium: 0
|
||||||
|
m_PrefilterSSAOSourceDepthHigh: 0
|
||||||
|
m_PrefilterSSAOInterleaved: 0
|
||||||
|
m_PrefilterSSAOBlueNoise: 0
|
||||||
|
m_PrefilterSSAOSampleCountLow: 0
|
||||||
|
m_PrefilterSSAOSampleCountMedium: 0
|
||||||
|
m_PrefilterSSAOSampleCountHigh: 0
|
||||||
|
m_PrefilterDBufferMRT1: 0
|
||||||
|
m_PrefilterDBufferMRT2: 0
|
||||||
|
m_PrefilterDBufferMRT3: 0
|
||||||
|
m_PrefilterSoftShadowsQualityLow: 0
|
||||||
|
m_PrefilterSoftShadowsQualityMedium: 0
|
||||||
|
m_PrefilterSoftShadowsQualityHigh: 0
|
||||||
|
m_PrefilterSoftShadows: 0
|
||||||
|
m_PrefilterScreenCoord: 0
|
||||||
|
m_PrefilterNativeRenderPass: 0
|
||||||
|
m_ShaderVariantLogLevel: 0
|
||||||
|
m_ShadowCascades: 0
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: dbe4558fce084304f8acf363e66e5f8c
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,68 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3}
|
||||||
|
m_Name: Low_PipelineAsset_ForwardRenderer
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
debugShaders:
|
||||||
|
debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7,
|
||||||
|
type: 3}
|
||||||
|
hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3}
|
||||||
|
m_RendererFeatures: []
|
||||||
|
m_RendererFeatureMap:
|
||||||
|
m_UseNativeRenderPass: 0
|
||||||
|
postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
|
||||||
|
xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2}
|
||||||
|
shaders:
|
||||||
|
blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3}
|
||||||
|
copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}
|
||||||
|
screenSpaceShadowPS: {fileID: 0}
|
||||||
|
samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3}
|
||||||
|
stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3}
|
||||||
|
fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3}
|
||||||
|
fallbackLoadingPS: {fileID: 4800000, guid: 7f888aff2ac86494babad1c2c5daeee2, type: 3}
|
||||||
|
materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3}
|
||||||
|
coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3}
|
||||||
|
coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b,
|
||||||
|
type: 3}
|
||||||
|
blitHDROverlay: {fileID: 4800000, guid: a89bee29cffa951418fc1e2da94d1959, type: 3}
|
||||||
|
cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf,
|
||||||
|
type: 3}
|
||||||
|
objectMotionVector: {fileID: 4800000, guid: 7b3ede40266cd49a395def176e1bc486,
|
||||||
|
type: 3}
|
||||||
|
dataDrivenLensFlare: {fileID: 4800000, guid: 6cda457ac28612740adb23da5d39ea92,
|
||||||
|
type: 3}
|
||||||
|
terrainDetailLitPS: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144,
|
||||||
|
type: 3}
|
||||||
|
terrainDetailGrassPS: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1,
|
||||||
|
type: 3}
|
||||||
|
terrainDetailGrassBillboardPS: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90,
|
||||||
|
type: 3}
|
||||||
|
m_AssetVersion: 2
|
||||||
|
m_OpaqueLayerMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_TransparentLayerMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_DefaultStencilState:
|
||||||
|
overrideStencilState: 0
|
||||||
|
stencilReference: 0
|
||||||
|
stencilCompareFunction: 8
|
||||||
|
passOperation: 2
|
||||||
|
failOperation: 0
|
||||||
|
zFailOperation: 0
|
||||||
|
m_ShadowTransparentReceive: 1
|
||||||
|
m_RenderingMode: 0
|
||||||
|
m_DepthPrimingMode: 0
|
||||||
|
m_CopyDepthMode: 1
|
||||||
|
m_AccurateGbufferNormals: 0
|
||||||
|
m_IntermediateTextureMode: 1
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2ccbdd81466a9924497b284d72bc5c49
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,114 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3}
|
||||||
|
m_Name: Medium_PipelineAsset
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
k_AssetVersion: 11
|
||||||
|
k_AssetPreviousVersion: 11
|
||||||
|
m_RendererType: 1
|
||||||
|
m_RendererData: {fileID: 0}
|
||||||
|
m_RendererDataList:
|
||||||
|
- {fileID: 11400000, guid: 81ef22ed66009184c8e4e27d310d7047, type: 2}
|
||||||
|
m_DefaultRendererIndex: 0
|
||||||
|
m_RequireDepthTexture: 0
|
||||||
|
m_RequireOpaqueTexture: 0
|
||||||
|
m_OpaqueDownsampling: 1
|
||||||
|
m_SupportsTerrainHoles: 1
|
||||||
|
m_SupportsHDR: 0
|
||||||
|
m_HDRColorBufferPrecision: 0
|
||||||
|
m_MSAA: 1
|
||||||
|
m_RenderScale: 1
|
||||||
|
m_UpscalingFilter: 0
|
||||||
|
m_FsrOverrideSharpness: 0
|
||||||
|
m_FsrSharpness: 0.92
|
||||||
|
m_EnableLODCrossFade: 1
|
||||||
|
m_LODCrossFadeDitheringType: 1
|
||||||
|
m_ShEvalMode: 0
|
||||||
|
m_MainLightRenderingMode: 1
|
||||||
|
m_MainLightShadowsSupported: 0
|
||||||
|
m_MainLightShadowmapResolution: 1024
|
||||||
|
m_AdditionalLightsRenderingMode: 1
|
||||||
|
m_AdditionalLightsPerObjectLimit: 1
|
||||||
|
m_AdditionalLightShadowsSupported: 0
|
||||||
|
m_AdditionalLightsShadowmapResolution: 1024
|
||||||
|
m_AdditionalLightsShadowResolutionTierLow: 256
|
||||||
|
m_AdditionalLightsShadowResolutionTierMedium: 512
|
||||||
|
m_AdditionalLightsShadowResolutionTierHigh: 1024
|
||||||
|
m_ReflectionProbeBlending: 1
|
||||||
|
m_ReflectionProbeBoxProjection: 1
|
||||||
|
m_ShadowDistance: 20
|
||||||
|
m_ShadowCascadeCount: 1
|
||||||
|
m_Cascade2Split: 0.33333334
|
||||||
|
m_Cascade3Split: {x: 0.1, y: 0.3}
|
||||||
|
m_Cascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
||||||
|
m_CascadeBorder: 0.2
|
||||||
|
m_ShadowDepthBias: 1
|
||||||
|
m_ShadowNormalBias: 1
|
||||||
|
m_AnyShadowsSupported: 0
|
||||||
|
m_SoftShadowsSupported: 0
|
||||||
|
m_ConservativeEnclosingSphere: 0
|
||||||
|
m_NumIterationsEnclosingSphere: 64
|
||||||
|
m_SoftShadowQuality: 2
|
||||||
|
m_AdditionalLightsCookieResolution: 2048
|
||||||
|
m_AdditionalLightsCookieFormat: 3
|
||||||
|
m_UseSRPBatcher: 1
|
||||||
|
m_SupportsDynamicBatching: 0
|
||||||
|
m_MixedLightingSupported: 1
|
||||||
|
m_SupportsLightCookies: 1
|
||||||
|
m_SupportsLightLayers: 0
|
||||||
|
m_DebugLevel: 0
|
||||||
|
m_StoreActionsOptimization: 0
|
||||||
|
m_EnableRenderGraph: 0
|
||||||
|
m_UseAdaptivePerformance: 1
|
||||||
|
m_ColorGradingMode: 0
|
||||||
|
m_ColorGradingLutSize: 32
|
||||||
|
m_UseFastSRGBLinearConversion: 0
|
||||||
|
m_SupportDataDrivenLensFlare: 1
|
||||||
|
m_ShadowType: 1
|
||||||
|
m_LocalShadowsSupported: 0
|
||||||
|
m_LocalShadowsAtlasResolution: 256
|
||||||
|
m_MaxPixelLights: 0
|
||||||
|
m_ShadowAtlasResolution: 256
|
||||||
|
m_VolumeFrameworkUpdateMode: 0
|
||||||
|
m_Textures:
|
||||||
|
blueNoise64LTex: {fileID: 0}
|
||||||
|
bayerMatrixTex: {fileID: 0}
|
||||||
|
m_PrefilteringModeMainLightShadows: 1
|
||||||
|
m_PrefilteringModeAdditionalLight: 4
|
||||||
|
m_PrefilteringModeAdditionalLightShadows: 1
|
||||||
|
m_PrefilterXRKeywords: 0
|
||||||
|
m_PrefilteringModeForwardPlus: 1
|
||||||
|
m_PrefilteringModeDeferredRendering: 1
|
||||||
|
m_PrefilteringModeScreenSpaceOcclusion: 1
|
||||||
|
m_PrefilterDebugKeywords: 0
|
||||||
|
m_PrefilterWriteRenderingLayers: 0
|
||||||
|
m_PrefilterHDROutput: 0
|
||||||
|
m_PrefilterSSAODepthNormals: 0
|
||||||
|
m_PrefilterSSAOSourceDepthLow: 0
|
||||||
|
m_PrefilterSSAOSourceDepthMedium: 0
|
||||||
|
m_PrefilterSSAOSourceDepthHigh: 0
|
||||||
|
m_PrefilterSSAOInterleaved: 0
|
||||||
|
m_PrefilterSSAOBlueNoise: 0
|
||||||
|
m_PrefilterSSAOSampleCountLow: 0
|
||||||
|
m_PrefilterSSAOSampleCountMedium: 0
|
||||||
|
m_PrefilterSSAOSampleCountHigh: 0
|
||||||
|
m_PrefilterDBufferMRT1: 0
|
||||||
|
m_PrefilterDBufferMRT2: 0
|
||||||
|
m_PrefilterDBufferMRT3: 0
|
||||||
|
m_PrefilterSoftShadowsQualityLow: 0
|
||||||
|
m_PrefilterSoftShadowsQualityMedium: 0
|
||||||
|
m_PrefilterSoftShadowsQualityHigh: 0
|
||||||
|
m_PrefilterSoftShadows: 0
|
||||||
|
m_PrefilterScreenCoord: 0
|
||||||
|
m_PrefilterNativeRenderPass: 0
|
||||||
|
m_ShaderVariantLogLevel: 0
|
||||||
|
m_ShadowCascades: 0
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a6da7fbcb52df9c4db85780c4cf55175
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,68 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3}
|
||||||
|
m_Name: Medium_PipelineAsset_ForwardRenderer
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
debugShaders:
|
||||||
|
debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7,
|
||||||
|
type: 3}
|
||||||
|
hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3}
|
||||||
|
m_RendererFeatures: []
|
||||||
|
m_RendererFeatureMap:
|
||||||
|
m_UseNativeRenderPass: 0
|
||||||
|
postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
|
||||||
|
xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2}
|
||||||
|
shaders:
|
||||||
|
blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3}
|
||||||
|
copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}
|
||||||
|
screenSpaceShadowPS: {fileID: 0}
|
||||||
|
samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3}
|
||||||
|
stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3}
|
||||||
|
fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3}
|
||||||
|
fallbackLoadingPS: {fileID: 4800000, guid: 7f888aff2ac86494babad1c2c5daeee2, type: 3}
|
||||||
|
materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3}
|
||||||
|
coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3}
|
||||||
|
coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b,
|
||||||
|
type: 3}
|
||||||
|
blitHDROverlay: {fileID: 4800000, guid: a89bee29cffa951418fc1e2da94d1959, type: 3}
|
||||||
|
cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf,
|
||||||
|
type: 3}
|
||||||
|
objectMotionVector: {fileID: 4800000, guid: 7b3ede40266cd49a395def176e1bc486,
|
||||||
|
type: 3}
|
||||||
|
dataDrivenLensFlare: {fileID: 4800000, guid: 6cda457ac28612740adb23da5d39ea92,
|
||||||
|
type: 3}
|
||||||
|
terrainDetailLitPS: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144,
|
||||||
|
type: 3}
|
||||||
|
terrainDetailGrassPS: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1,
|
||||||
|
type: 3}
|
||||||
|
terrainDetailGrassBillboardPS: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90,
|
||||||
|
type: 3}
|
||||||
|
m_AssetVersion: 2
|
||||||
|
m_OpaqueLayerMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_TransparentLayerMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_DefaultStencilState:
|
||||||
|
overrideStencilState: 0
|
||||||
|
stencilReference: 0
|
||||||
|
stencilCompareFunction: 8
|
||||||
|
passOperation: 2
|
||||||
|
failOperation: 0
|
||||||
|
zFailOperation: 0
|
||||||
|
m_ShadowTransparentReceive: 1
|
||||||
|
m_RenderingMode: 0
|
||||||
|
m_DepthPrimingMode: 0
|
||||||
|
m_CopyDepthMode: 1
|
||||||
|
m_AccurateGbufferNormals: 0
|
||||||
|
m_IntermediateTextureMode: 1
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 81ef22ed66009184c8e4e27d310d7047
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,114 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3}
|
||||||
|
m_Name: Ultra_PipelineAsset
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
k_AssetVersion: 11
|
||||||
|
k_AssetPreviousVersion: 11
|
||||||
|
m_RendererType: 1
|
||||||
|
m_RendererData: {fileID: 0}
|
||||||
|
m_RendererDataList:
|
||||||
|
- {fileID: 11400000, guid: bff17d3370b9be84ebbeadf162f76a9a, type: 2}
|
||||||
|
m_DefaultRendererIndex: 0
|
||||||
|
m_RequireDepthTexture: 0
|
||||||
|
m_RequireOpaqueTexture: 0
|
||||||
|
m_OpaqueDownsampling: 1
|
||||||
|
m_SupportsTerrainHoles: 1
|
||||||
|
m_SupportsHDR: 0
|
||||||
|
m_HDRColorBufferPrecision: 0
|
||||||
|
m_MSAA: 1
|
||||||
|
m_RenderScale: 1
|
||||||
|
m_UpscalingFilter: 0
|
||||||
|
m_FsrOverrideSharpness: 0
|
||||||
|
m_FsrSharpness: 0.92
|
||||||
|
m_EnableLODCrossFade: 1
|
||||||
|
m_LODCrossFadeDitheringType: 1
|
||||||
|
m_ShEvalMode: 0
|
||||||
|
m_MainLightRenderingMode: 1
|
||||||
|
m_MainLightShadowsSupported: 0
|
||||||
|
m_MainLightShadowmapResolution: 1024
|
||||||
|
m_AdditionalLightsRenderingMode: 1
|
||||||
|
m_AdditionalLightsPerObjectLimit: 4
|
||||||
|
m_AdditionalLightShadowsSupported: 0
|
||||||
|
m_AdditionalLightsShadowmapResolution: 1024
|
||||||
|
m_AdditionalLightsShadowResolutionTierLow: 256
|
||||||
|
m_AdditionalLightsShadowResolutionTierMedium: 512
|
||||||
|
m_AdditionalLightsShadowResolutionTierHigh: 1024
|
||||||
|
m_ReflectionProbeBlending: 1
|
||||||
|
m_ReflectionProbeBoxProjection: 1
|
||||||
|
m_ShadowDistance: 150
|
||||||
|
m_ShadowCascadeCount: 4
|
||||||
|
m_Cascade2Split: 0.33333334
|
||||||
|
m_Cascade3Split: {x: 0.1, y: 0.3}
|
||||||
|
m_Cascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
||||||
|
m_CascadeBorder: 0.2
|
||||||
|
m_ShadowDepthBias: 1
|
||||||
|
m_ShadowNormalBias: 1
|
||||||
|
m_AnyShadowsSupported: 0
|
||||||
|
m_SoftShadowsSupported: 0
|
||||||
|
m_ConservativeEnclosingSphere: 0
|
||||||
|
m_NumIterationsEnclosingSphere: 64
|
||||||
|
m_SoftShadowQuality: 2
|
||||||
|
m_AdditionalLightsCookieResolution: 2048
|
||||||
|
m_AdditionalLightsCookieFormat: 3
|
||||||
|
m_UseSRPBatcher: 1
|
||||||
|
m_SupportsDynamicBatching: 0
|
||||||
|
m_MixedLightingSupported: 1
|
||||||
|
m_SupportsLightCookies: 1
|
||||||
|
m_SupportsLightLayers: 0
|
||||||
|
m_DebugLevel: 0
|
||||||
|
m_StoreActionsOptimization: 0
|
||||||
|
m_EnableRenderGraph: 0
|
||||||
|
m_UseAdaptivePerformance: 1
|
||||||
|
m_ColorGradingMode: 0
|
||||||
|
m_ColorGradingLutSize: 32
|
||||||
|
m_UseFastSRGBLinearConversion: 0
|
||||||
|
m_SupportDataDrivenLensFlare: 1
|
||||||
|
m_ShadowType: 1
|
||||||
|
m_LocalShadowsSupported: 0
|
||||||
|
m_LocalShadowsAtlasResolution: 256
|
||||||
|
m_MaxPixelLights: 0
|
||||||
|
m_ShadowAtlasResolution: 256
|
||||||
|
m_VolumeFrameworkUpdateMode: 0
|
||||||
|
m_Textures:
|
||||||
|
blueNoise64LTex: {fileID: 0}
|
||||||
|
bayerMatrixTex: {fileID: 0}
|
||||||
|
m_PrefilteringModeMainLightShadows: 1
|
||||||
|
m_PrefilteringModeAdditionalLight: 4
|
||||||
|
m_PrefilteringModeAdditionalLightShadows: 1
|
||||||
|
m_PrefilterXRKeywords: 0
|
||||||
|
m_PrefilteringModeForwardPlus: 1
|
||||||
|
m_PrefilteringModeDeferredRendering: 1
|
||||||
|
m_PrefilteringModeScreenSpaceOcclusion: 1
|
||||||
|
m_PrefilterDebugKeywords: 0
|
||||||
|
m_PrefilterWriteRenderingLayers: 0
|
||||||
|
m_PrefilterHDROutput: 0
|
||||||
|
m_PrefilterSSAODepthNormals: 0
|
||||||
|
m_PrefilterSSAOSourceDepthLow: 0
|
||||||
|
m_PrefilterSSAOSourceDepthMedium: 0
|
||||||
|
m_PrefilterSSAOSourceDepthHigh: 0
|
||||||
|
m_PrefilterSSAOInterleaved: 0
|
||||||
|
m_PrefilterSSAOBlueNoise: 0
|
||||||
|
m_PrefilterSSAOSampleCountLow: 0
|
||||||
|
m_PrefilterSSAOSampleCountMedium: 0
|
||||||
|
m_PrefilterSSAOSampleCountHigh: 0
|
||||||
|
m_PrefilterDBufferMRT1: 0
|
||||||
|
m_PrefilterDBufferMRT2: 0
|
||||||
|
m_PrefilterDBufferMRT3: 0
|
||||||
|
m_PrefilterSoftShadowsQualityLow: 0
|
||||||
|
m_PrefilterSoftShadowsQualityMedium: 0
|
||||||
|
m_PrefilterSoftShadowsQualityHigh: 0
|
||||||
|
m_PrefilterSoftShadows: 0
|
||||||
|
m_PrefilterScreenCoord: 0
|
||||||
|
m_PrefilterNativeRenderPass: 0
|
||||||
|
m_ShaderVariantLogLevel: 0
|
||||||
|
m_ShadowCascades: 0
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: cc916aa482e261144a49f6a5eb5d9ce4
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,68 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3}
|
||||||
|
m_Name: Ultra_PipelineAsset_ForwardRenderer
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
debugShaders:
|
||||||
|
debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7,
|
||||||
|
type: 3}
|
||||||
|
hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3}
|
||||||
|
m_RendererFeatures: []
|
||||||
|
m_RendererFeatureMap:
|
||||||
|
m_UseNativeRenderPass: 0
|
||||||
|
postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
|
||||||
|
xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2}
|
||||||
|
shaders:
|
||||||
|
blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3}
|
||||||
|
copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}
|
||||||
|
screenSpaceShadowPS: {fileID: 0}
|
||||||
|
samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3}
|
||||||
|
stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3}
|
||||||
|
fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3}
|
||||||
|
fallbackLoadingPS: {fileID: 4800000, guid: 7f888aff2ac86494babad1c2c5daeee2, type: 3}
|
||||||
|
materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3}
|
||||||
|
coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3}
|
||||||
|
coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b,
|
||||||
|
type: 3}
|
||||||
|
blitHDROverlay: {fileID: 4800000, guid: a89bee29cffa951418fc1e2da94d1959, type: 3}
|
||||||
|
cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf,
|
||||||
|
type: 3}
|
||||||
|
objectMotionVector: {fileID: 4800000, guid: 7b3ede40266cd49a395def176e1bc486,
|
||||||
|
type: 3}
|
||||||
|
dataDrivenLensFlare: {fileID: 4800000, guid: 6cda457ac28612740adb23da5d39ea92,
|
||||||
|
type: 3}
|
||||||
|
terrainDetailLitPS: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144,
|
||||||
|
type: 3}
|
||||||
|
terrainDetailGrassPS: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1,
|
||||||
|
type: 3}
|
||||||
|
terrainDetailGrassBillboardPS: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90,
|
||||||
|
type: 3}
|
||||||
|
m_AssetVersion: 2
|
||||||
|
m_OpaqueLayerMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_TransparentLayerMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_DefaultStencilState:
|
||||||
|
overrideStencilState: 0
|
||||||
|
stencilReference: 0
|
||||||
|
stencilCompareFunction: 8
|
||||||
|
passOperation: 2
|
||||||
|
failOperation: 0
|
||||||
|
zFailOperation: 0
|
||||||
|
m_ShadowTransparentReceive: 1
|
||||||
|
m_RenderingMode: 0
|
||||||
|
m_DepthPrimingMode: 0
|
||||||
|
m_CopyDepthMode: 1
|
||||||
|
m_AccurateGbufferNormals: 0
|
||||||
|
m_IntermediateTextureMode: 1
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bff17d3370b9be84ebbeadf162f76a9a
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,114 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3}
|
||||||
|
m_Name: Very High_PipelineAsset
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
k_AssetVersion: 11
|
||||||
|
k_AssetPreviousVersion: 11
|
||||||
|
m_RendererType: 1
|
||||||
|
m_RendererData: {fileID: 0}
|
||||||
|
m_RendererDataList:
|
||||||
|
- {fileID: 11400000, guid: d8528efbe5c5e4a4da43a9a81efe624f, type: 2}
|
||||||
|
m_DefaultRendererIndex: 0
|
||||||
|
m_RequireDepthTexture: 0
|
||||||
|
m_RequireOpaqueTexture: 0
|
||||||
|
m_OpaqueDownsampling: 1
|
||||||
|
m_SupportsTerrainHoles: 1
|
||||||
|
m_SupportsHDR: 0
|
||||||
|
m_HDRColorBufferPrecision: 0
|
||||||
|
m_MSAA: 1
|
||||||
|
m_RenderScale: 1
|
||||||
|
m_UpscalingFilter: 0
|
||||||
|
m_FsrOverrideSharpness: 0
|
||||||
|
m_FsrSharpness: 0.92
|
||||||
|
m_EnableLODCrossFade: 1
|
||||||
|
m_LODCrossFadeDitheringType: 1
|
||||||
|
m_ShEvalMode: 0
|
||||||
|
m_MainLightRenderingMode: 1
|
||||||
|
m_MainLightShadowsSupported: 0
|
||||||
|
m_MainLightShadowmapResolution: 4096
|
||||||
|
m_AdditionalLightsRenderingMode: 1
|
||||||
|
m_AdditionalLightsPerObjectLimit: 3
|
||||||
|
m_AdditionalLightShadowsSupported: 0
|
||||||
|
m_AdditionalLightsShadowmapResolution: 4096
|
||||||
|
m_AdditionalLightsShadowResolutionTierLow: 256
|
||||||
|
m_AdditionalLightsShadowResolutionTierMedium: 512
|
||||||
|
m_AdditionalLightsShadowResolutionTierHigh: 1024
|
||||||
|
m_ReflectionProbeBlending: 1
|
||||||
|
m_ReflectionProbeBoxProjection: 1
|
||||||
|
m_ShadowDistance: 70
|
||||||
|
m_ShadowCascadeCount: 2
|
||||||
|
m_Cascade2Split: 0.33333334
|
||||||
|
m_Cascade3Split: {x: 0.1, y: 0.3}
|
||||||
|
m_Cascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
||||||
|
m_CascadeBorder: 0.2
|
||||||
|
m_ShadowDepthBias: 1
|
||||||
|
m_ShadowNormalBias: 1
|
||||||
|
m_AnyShadowsSupported: 0
|
||||||
|
m_SoftShadowsSupported: 0
|
||||||
|
m_ConservativeEnclosingSphere: 0
|
||||||
|
m_NumIterationsEnclosingSphere: 64
|
||||||
|
m_SoftShadowQuality: 2
|
||||||
|
m_AdditionalLightsCookieResolution: 2048
|
||||||
|
m_AdditionalLightsCookieFormat: 3
|
||||||
|
m_UseSRPBatcher: 1
|
||||||
|
m_SupportsDynamicBatching: 0
|
||||||
|
m_MixedLightingSupported: 1
|
||||||
|
m_SupportsLightCookies: 1
|
||||||
|
m_SupportsLightLayers: 0
|
||||||
|
m_DebugLevel: 0
|
||||||
|
m_StoreActionsOptimization: 0
|
||||||
|
m_EnableRenderGraph: 0
|
||||||
|
m_UseAdaptivePerformance: 1
|
||||||
|
m_ColorGradingMode: 0
|
||||||
|
m_ColorGradingLutSize: 32
|
||||||
|
m_UseFastSRGBLinearConversion: 0
|
||||||
|
m_SupportDataDrivenLensFlare: 1
|
||||||
|
m_ShadowType: 1
|
||||||
|
m_LocalShadowsSupported: 0
|
||||||
|
m_LocalShadowsAtlasResolution: 256
|
||||||
|
m_MaxPixelLights: 0
|
||||||
|
m_ShadowAtlasResolution: 256
|
||||||
|
m_VolumeFrameworkUpdateMode: 0
|
||||||
|
m_Textures:
|
||||||
|
blueNoise64LTex: {fileID: 0}
|
||||||
|
bayerMatrixTex: {fileID: 0}
|
||||||
|
m_PrefilteringModeMainLightShadows: 1
|
||||||
|
m_PrefilteringModeAdditionalLight: 4
|
||||||
|
m_PrefilteringModeAdditionalLightShadows: 1
|
||||||
|
m_PrefilterXRKeywords: 0
|
||||||
|
m_PrefilteringModeForwardPlus: 1
|
||||||
|
m_PrefilteringModeDeferredRendering: 1
|
||||||
|
m_PrefilteringModeScreenSpaceOcclusion: 1
|
||||||
|
m_PrefilterDebugKeywords: 0
|
||||||
|
m_PrefilterWriteRenderingLayers: 0
|
||||||
|
m_PrefilterHDROutput: 0
|
||||||
|
m_PrefilterSSAODepthNormals: 0
|
||||||
|
m_PrefilterSSAOSourceDepthLow: 0
|
||||||
|
m_PrefilterSSAOSourceDepthMedium: 0
|
||||||
|
m_PrefilterSSAOSourceDepthHigh: 0
|
||||||
|
m_PrefilterSSAOInterleaved: 0
|
||||||
|
m_PrefilterSSAOBlueNoise: 0
|
||||||
|
m_PrefilterSSAOSampleCountLow: 0
|
||||||
|
m_PrefilterSSAOSampleCountMedium: 0
|
||||||
|
m_PrefilterSSAOSampleCountHigh: 0
|
||||||
|
m_PrefilterDBufferMRT1: 0
|
||||||
|
m_PrefilterDBufferMRT2: 0
|
||||||
|
m_PrefilterDBufferMRT3: 0
|
||||||
|
m_PrefilterSoftShadowsQualityLow: 0
|
||||||
|
m_PrefilterSoftShadowsQualityMedium: 0
|
||||||
|
m_PrefilterSoftShadowsQualityHigh: 0
|
||||||
|
m_PrefilterSoftShadows: 0
|
||||||
|
m_PrefilterScreenCoord: 0
|
||||||
|
m_PrefilterNativeRenderPass: 0
|
||||||
|
m_ShaderVariantLogLevel: 0
|
||||||
|
m_ShadowCascades: 0
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e1dead8963f155f42b789be8e83fae26
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,68 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3}
|
||||||
|
m_Name: Very High_PipelineAsset_ForwardRenderer
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
debugShaders:
|
||||||
|
debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7,
|
||||||
|
type: 3}
|
||||||
|
hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3}
|
||||||
|
m_RendererFeatures: []
|
||||||
|
m_RendererFeatureMap:
|
||||||
|
m_UseNativeRenderPass: 0
|
||||||
|
postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
|
||||||
|
xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2}
|
||||||
|
shaders:
|
||||||
|
blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3}
|
||||||
|
copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}
|
||||||
|
screenSpaceShadowPS: {fileID: 0}
|
||||||
|
samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3}
|
||||||
|
stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3}
|
||||||
|
fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3}
|
||||||
|
fallbackLoadingPS: {fileID: 4800000, guid: 7f888aff2ac86494babad1c2c5daeee2, type: 3}
|
||||||
|
materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3}
|
||||||
|
coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3}
|
||||||
|
coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b,
|
||||||
|
type: 3}
|
||||||
|
blitHDROverlay: {fileID: 4800000, guid: a89bee29cffa951418fc1e2da94d1959, type: 3}
|
||||||
|
cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf,
|
||||||
|
type: 3}
|
||||||
|
objectMotionVector: {fileID: 4800000, guid: 7b3ede40266cd49a395def176e1bc486,
|
||||||
|
type: 3}
|
||||||
|
dataDrivenLensFlare: {fileID: 4800000, guid: 6cda457ac28612740adb23da5d39ea92,
|
||||||
|
type: 3}
|
||||||
|
terrainDetailLitPS: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144,
|
||||||
|
type: 3}
|
||||||
|
terrainDetailGrassPS: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1,
|
||||||
|
type: 3}
|
||||||
|
terrainDetailGrassBillboardPS: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90,
|
||||||
|
type: 3}
|
||||||
|
m_AssetVersion: 2
|
||||||
|
m_OpaqueLayerMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_TransparentLayerMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_DefaultStencilState:
|
||||||
|
overrideStencilState: 0
|
||||||
|
stencilReference: 0
|
||||||
|
stencilCompareFunction: 8
|
||||||
|
passOperation: 2
|
||||||
|
failOperation: 0
|
||||||
|
zFailOperation: 0
|
||||||
|
m_ShadowTransparentReceive: 1
|
||||||
|
m_RenderingMode: 0
|
||||||
|
m_DepthPrimingMode: 0
|
||||||
|
m_CopyDepthMode: 1
|
||||||
|
m_AccurateGbufferNormals: 0
|
||||||
|
m_IntermediateTextureMode: 1
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d8528efbe5c5e4a4da43a9a81efe624f
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,114 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3}
|
||||||
|
m_Name: Very Low_PipelineAsset
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
k_AssetVersion: 11
|
||||||
|
k_AssetPreviousVersion: 11
|
||||||
|
m_RendererType: 1
|
||||||
|
m_RendererData: {fileID: 0}
|
||||||
|
m_RendererDataList:
|
||||||
|
- {fileID: 11400000, guid: d6d8b545700541f42aaaf3ec7f21c335, type: 2}
|
||||||
|
m_DefaultRendererIndex: 0
|
||||||
|
m_RequireDepthTexture: 0
|
||||||
|
m_RequireOpaqueTexture: 0
|
||||||
|
m_OpaqueDownsampling: 1
|
||||||
|
m_SupportsTerrainHoles: 1
|
||||||
|
m_SupportsHDR: 0
|
||||||
|
m_HDRColorBufferPrecision: 0
|
||||||
|
m_MSAA: 1
|
||||||
|
m_RenderScale: 1
|
||||||
|
m_UpscalingFilter: 0
|
||||||
|
m_FsrOverrideSharpness: 0
|
||||||
|
m_FsrSharpness: 0.92
|
||||||
|
m_EnableLODCrossFade: 1
|
||||||
|
m_LODCrossFadeDitheringType: 1
|
||||||
|
m_ShEvalMode: 0
|
||||||
|
m_MainLightRenderingMode: 0
|
||||||
|
m_MainLightShadowsSupported: 0
|
||||||
|
m_MainLightShadowmapResolution: 1024
|
||||||
|
m_AdditionalLightsRenderingMode: 2
|
||||||
|
m_AdditionalLightsPerObjectLimit: 4
|
||||||
|
m_AdditionalLightShadowsSupported: 0
|
||||||
|
m_AdditionalLightsShadowmapResolution: 1024
|
||||||
|
m_AdditionalLightsShadowResolutionTierLow: 256
|
||||||
|
m_AdditionalLightsShadowResolutionTierMedium: 512
|
||||||
|
m_AdditionalLightsShadowResolutionTierHigh: 1024
|
||||||
|
m_ReflectionProbeBlending: 1
|
||||||
|
m_ReflectionProbeBoxProjection: 1
|
||||||
|
m_ShadowDistance: 15
|
||||||
|
m_ShadowCascadeCount: 1
|
||||||
|
m_Cascade2Split: 0.33333334
|
||||||
|
m_Cascade3Split: {x: 0.1, y: 0.3}
|
||||||
|
m_Cascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
||||||
|
m_CascadeBorder: 0.2
|
||||||
|
m_ShadowDepthBias: 1
|
||||||
|
m_ShadowNormalBias: 1
|
||||||
|
m_AnyShadowsSupported: 0
|
||||||
|
m_SoftShadowsSupported: 0
|
||||||
|
m_ConservativeEnclosingSphere: 0
|
||||||
|
m_NumIterationsEnclosingSphere: 64
|
||||||
|
m_SoftShadowQuality: 2
|
||||||
|
m_AdditionalLightsCookieResolution: 2048
|
||||||
|
m_AdditionalLightsCookieFormat: 3
|
||||||
|
m_UseSRPBatcher: 1
|
||||||
|
m_SupportsDynamicBatching: 0
|
||||||
|
m_MixedLightingSupported: 1
|
||||||
|
m_SupportsLightCookies: 1
|
||||||
|
m_SupportsLightLayers: 0
|
||||||
|
m_DebugLevel: 0
|
||||||
|
m_StoreActionsOptimization: 0
|
||||||
|
m_EnableRenderGraph: 0
|
||||||
|
m_UseAdaptivePerformance: 1
|
||||||
|
m_ColorGradingMode: 0
|
||||||
|
m_ColorGradingLutSize: 32
|
||||||
|
m_UseFastSRGBLinearConversion: 0
|
||||||
|
m_SupportDataDrivenLensFlare: 1
|
||||||
|
m_ShadowType: 1
|
||||||
|
m_LocalShadowsSupported: 0
|
||||||
|
m_LocalShadowsAtlasResolution: 256
|
||||||
|
m_MaxPixelLights: 0
|
||||||
|
m_ShadowAtlasResolution: 256
|
||||||
|
m_VolumeFrameworkUpdateMode: 0
|
||||||
|
m_Textures:
|
||||||
|
blueNoise64LTex: {fileID: 0}
|
||||||
|
bayerMatrixTex: {fileID: 0}
|
||||||
|
m_PrefilteringModeMainLightShadows: 1
|
||||||
|
m_PrefilteringModeAdditionalLight: 4
|
||||||
|
m_PrefilteringModeAdditionalLightShadows: 1
|
||||||
|
m_PrefilterXRKeywords: 0
|
||||||
|
m_PrefilteringModeForwardPlus: 1
|
||||||
|
m_PrefilteringModeDeferredRendering: 1
|
||||||
|
m_PrefilteringModeScreenSpaceOcclusion: 1
|
||||||
|
m_PrefilterDebugKeywords: 0
|
||||||
|
m_PrefilterWriteRenderingLayers: 0
|
||||||
|
m_PrefilterHDROutput: 0
|
||||||
|
m_PrefilterSSAODepthNormals: 0
|
||||||
|
m_PrefilterSSAOSourceDepthLow: 0
|
||||||
|
m_PrefilterSSAOSourceDepthMedium: 0
|
||||||
|
m_PrefilterSSAOSourceDepthHigh: 0
|
||||||
|
m_PrefilterSSAOInterleaved: 0
|
||||||
|
m_PrefilterSSAOBlueNoise: 0
|
||||||
|
m_PrefilterSSAOSampleCountLow: 0
|
||||||
|
m_PrefilterSSAOSampleCountMedium: 0
|
||||||
|
m_PrefilterSSAOSampleCountHigh: 0
|
||||||
|
m_PrefilterDBufferMRT1: 0
|
||||||
|
m_PrefilterDBufferMRT2: 0
|
||||||
|
m_PrefilterDBufferMRT3: 0
|
||||||
|
m_PrefilterSoftShadowsQualityLow: 0
|
||||||
|
m_PrefilterSoftShadowsQualityMedium: 0
|
||||||
|
m_PrefilterSoftShadowsQualityHigh: 0
|
||||||
|
m_PrefilterSoftShadows: 0
|
||||||
|
m_PrefilterScreenCoord: 0
|
||||||
|
m_PrefilterNativeRenderPass: 0
|
||||||
|
m_ShaderVariantLogLevel: 0
|
||||||
|
m_ShadowCascades: 0
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e43890e8057465446aca1e99477216e7
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -0,0 +1,68 @@
|
||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3}
|
||||||
|
m_Name: Very Low_PipelineAsset_ForwardRenderer
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
debugShaders:
|
||||||
|
debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7,
|
||||||
|
type: 3}
|
||||||
|
hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3}
|
||||||
|
m_RendererFeatures: []
|
||||||
|
m_RendererFeatureMap:
|
||||||
|
m_UseNativeRenderPass: 0
|
||||||
|
postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
|
||||||
|
xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2}
|
||||||
|
shaders:
|
||||||
|
blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3}
|
||||||
|
copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}
|
||||||
|
screenSpaceShadowPS: {fileID: 0}
|
||||||
|
samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3}
|
||||||
|
stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3}
|
||||||
|
fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3}
|
||||||
|
fallbackLoadingPS: {fileID: 4800000, guid: 7f888aff2ac86494babad1c2c5daeee2, type: 3}
|
||||||
|
materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3}
|
||||||
|
coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3}
|
||||||
|
coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b,
|
||||||
|
type: 3}
|
||||||
|
blitHDROverlay: {fileID: 4800000, guid: a89bee29cffa951418fc1e2da94d1959, type: 3}
|
||||||
|
cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf,
|
||||||
|
type: 3}
|
||||||
|
objectMotionVector: {fileID: 4800000, guid: 7b3ede40266cd49a395def176e1bc486,
|
||||||
|
type: 3}
|
||||||
|
dataDrivenLensFlare: {fileID: 4800000, guid: 6cda457ac28612740adb23da5d39ea92,
|
||||||
|
type: 3}
|
||||||
|
terrainDetailLitPS: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144,
|
||||||
|
type: 3}
|
||||||
|
terrainDetailGrassPS: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1,
|
||||||
|
type: 3}
|
||||||
|
terrainDetailGrassBillboardPS: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90,
|
||||||
|
type: 3}
|
||||||
|
m_AssetVersion: 2
|
||||||
|
m_OpaqueLayerMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_TransparentLayerMask:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_DefaultStencilState:
|
||||||
|
overrideStencilState: 0
|
||||||
|
stencilReference: 0
|
||||||
|
stencilCompareFunction: 8
|
||||||
|
passOperation: 2
|
||||||
|
failOperation: 0
|
||||||
|
zFailOperation: 0
|
||||||
|
m_ShadowTransparentReceive: 1
|
||||||
|
m_RenderingMode: 0
|
||||||
|
m_DepthPrimingMode: 0
|
||||||
|
m_CopyDepthMode: 1
|
||||||
|
m_AccurateGbufferNormals: 0
|
||||||
|
m_IntermediateTextureMode: 1
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d6d8b545700541f42aaaf3ec7f21c335
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"com.unity.collab-proxy": "2.11.2",
|
"com.unity.collab-proxy": "2.11.2",
|
||||||
|
"com.unity.feature.2d": "2.0.1",
|
||||||
"com.unity.ide.rider": "3.0.39",
|
"com.unity.ide.rider": "3.0.39",
|
||||||
"com.unity.ide.visualstudio": "2.0.22",
|
"com.unity.ide.visualstudio": "2.0.22",
|
||||||
"com.unity.ide.vscode": "1.2.5",
|
"com.unity.ide.vscode": "1.2.5",
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,101 @@
|
||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"com.unity.2d.animation": {
|
||||||
|
"version": "9.2.0",
|
||||||
|
"depth": 1,
|
||||||
|
"source": "registry",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.2d.common": "8.1.0",
|
||||||
|
"com.unity.2d.sprite": "1.0.0",
|
||||||
|
"com.unity.collections": "1.1.0",
|
||||||
|
"com.unity.modules.animation": "1.0.0",
|
||||||
|
"com.unity.modules.uielements": "1.0.0"
|
||||||
|
},
|
||||||
|
"url": "https://packages.unity.cn"
|
||||||
|
},
|
||||||
|
"com.unity.2d.aseprite": {
|
||||||
|
"version": "1.1.9",
|
||||||
|
"depth": 1,
|
||||||
|
"source": "registry",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.2d.common": "6.0.6",
|
||||||
|
"com.unity.2d.sprite": "1.0.0",
|
||||||
|
"com.unity.mathematics": "1.2.6",
|
||||||
|
"com.unity.modules.animation": "1.0.0"
|
||||||
|
},
|
||||||
|
"url": "https://packages.unity.cn"
|
||||||
|
},
|
||||||
|
"com.unity.2d.common": {
|
||||||
|
"version": "8.1.0",
|
||||||
|
"depth": 2,
|
||||||
|
"source": "registry",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.burst": "1.7.3",
|
||||||
|
"com.unity.2d.sprite": "1.0.0",
|
||||||
|
"com.unity.mathematics": "1.1.0",
|
||||||
|
"com.unity.modules.animation": "1.0.0",
|
||||||
|
"com.unity.modules.uielements": "1.0.0"
|
||||||
|
},
|
||||||
|
"url": "https://packages.unity.cn"
|
||||||
|
},
|
||||||
|
"com.unity.2d.pixel-perfect": {
|
||||||
|
"version": "5.1.0",
|
||||||
|
"depth": 1,
|
||||||
|
"source": "registry",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.modules.imgui": "1.0.0"
|
||||||
|
},
|
||||||
|
"url": "https://packages.unity.cn"
|
||||||
|
},
|
||||||
|
"com.unity.2d.psdimporter": {
|
||||||
|
"version": "8.1.0",
|
||||||
|
"depth": 1,
|
||||||
|
"source": "registry",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.2d.common": "8.1.0",
|
||||||
|
"com.unity.2d.sprite": "1.0.0",
|
||||||
|
"com.unity.2d.animation": "9.2.0"
|
||||||
|
},
|
||||||
|
"url": "https://packages.unity.cn"
|
||||||
|
},
|
||||||
|
"com.unity.2d.sprite": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 1,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {}
|
||||||
|
},
|
||||||
|
"com.unity.2d.spriteshape": {
|
||||||
|
"version": "9.1.0",
|
||||||
|
"depth": 1,
|
||||||
|
"source": "registry",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.2d.common": "8.1.0",
|
||||||
|
"com.unity.mathematics": "1.1.0",
|
||||||
|
"com.unity.modules.physics2d": "1.0.0"
|
||||||
|
},
|
||||||
|
"url": "https://packages.unity.cn"
|
||||||
|
},
|
||||||
|
"com.unity.2d.tilemap": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"depth": 1,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.modules.tilemap": "1.0.0",
|
||||||
|
"com.unity.modules.uielements": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"com.unity.2d.tilemap.extras": {
|
||||||
|
"version": "3.1.3",
|
||||||
|
"depth": 1,
|
||||||
|
"source": "registry",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.ugui": "1.0.0",
|
||||||
|
"com.unity.2d.tilemap": "1.0.0",
|
||||||
|
"com.unity.modules.tilemap": "1.0.0",
|
||||||
|
"com.unity.modules.jsonserialize": "1.0.0"
|
||||||
|
},
|
||||||
|
"url": "https://packages.unity.cn"
|
||||||
|
},
|
||||||
"com.unity.burst": {
|
"com.unity.burst": {
|
||||||
"version": "1.8.21",
|
"version": "1.8.21",
|
||||||
"depth": 1,
|
"depth": 1,
|
||||||
|
|
@ -17,6 +113,16 @@
|
||||||
"dependencies": {},
|
"dependencies": {},
|
||||||
"url": "https://packages.unity.cn"
|
"url": "https://packages.unity.cn"
|
||||||
},
|
},
|
||||||
|
"com.unity.collections": {
|
||||||
|
"version": "1.2.4",
|
||||||
|
"depth": 2,
|
||||||
|
"source": "registry",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.burst": "1.6.6",
|
||||||
|
"com.unity.test-framework": "1.1.31"
|
||||||
|
},
|
||||||
|
"url": "https://packages.unity.cn"
|
||||||
|
},
|
||||||
"com.unity.ext.nunit": {
|
"com.unity.ext.nunit": {
|
||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
"depth": 1,
|
"depth": 1,
|
||||||
|
|
@ -24,6 +130,21 @@
|
||||||
"dependencies": {},
|
"dependencies": {},
|
||||||
"url": "https://packages.unity.cn"
|
"url": "https://packages.unity.cn"
|
||||||
},
|
},
|
||||||
|
"com.unity.feature.2d": {
|
||||||
|
"version": "2.0.1",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "builtin",
|
||||||
|
"dependencies": {
|
||||||
|
"com.unity.2d.animation": "9.2.0",
|
||||||
|
"com.unity.2d.pixel-perfect": "5.1.0",
|
||||||
|
"com.unity.2d.psdimporter": "8.1.0",
|
||||||
|
"com.unity.2d.sprite": "1.0.0",
|
||||||
|
"com.unity.2d.spriteshape": "9.1.0",
|
||||||
|
"com.unity.2d.tilemap": "1.0.0",
|
||||||
|
"com.unity.2d.tilemap.extras": "3.1.3",
|
||||||
|
"com.unity.2d.aseprite": "1.1.9"
|
||||||
|
}
|
||||||
|
},
|
||||||
"com.unity.ide.rider": {
|
"com.unity.ide.rider": {
|
||||||
"version": "3.0.39",
|
"version": "3.0.39",
|
||||||
"depth": 0,
|
"depth": 0,
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@
|
||||||
--- !u!11 &1
|
--- !u!11 &1
|
||||||
AudioManager:
|
AudioManager:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
serializedVersion: 2
|
|
||||||
m_Volume: 1
|
m_Volume: 1
|
||||||
Rolloff Scale: 1
|
Rolloff Scale: 1
|
||||||
Doppler Factor: 1
|
Doppler Factor: 1
|
||||||
|
|
@ -16,4 +15,3 @@ AudioManager:
|
||||||
m_AmbisonicDecoderPlugin:
|
m_AmbisonicDecoderPlugin:
|
||||||
m_DisableAudio: 0
|
m_DisableAudio: 0
|
||||||
m_VirtualizeEffects: 1
|
m_VirtualizeEffects: 1
|
||||||
m_RequestedDSPBufferSize: 0
|
|
||||||
|
|
|
||||||
|
|
@ -3,11 +3,10 @@
|
||||||
--- !u!55 &1
|
--- !u!55 &1
|
||||||
PhysicsManager:
|
PhysicsManager:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
serializedVersion: 14
|
serializedVersion: 10
|
||||||
m_Gravity: {x: 0, y: -9.81, z: 0}
|
m_Gravity: {x: 0, y: -9.81, z: 0}
|
||||||
m_DefaultMaterial: {fileID: 0}
|
m_DefaultMaterial: {fileID: 0}
|
||||||
m_BounceThreshold: 2
|
m_BounceThreshold: 2
|
||||||
m_DefaultMaxDepenetrationVelocity: 10
|
|
||||||
m_SleepThreshold: 0.005
|
m_SleepThreshold: 0.005
|
||||||
m_DefaultContactOffset: 0.01
|
m_DefaultContactOffset: 0.01
|
||||||
m_DefaultSolverIterations: 6
|
m_DefaultSolverIterations: 6
|
||||||
|
|
@ -15,16 +14,14 @@ PhysicsManager:
|
||||||
m_QueriesHitBackfaces: 0
|
m_QueriesHitBackfaces: 0
|
||||||
m_QueriesHitTriggers: 1
|
m_QueriesHitTriggers: 1
|
||||||
m_EnableAdaptiveForce: 0
|
m_EnableAdaptiveForce: 0
|
||||||
m_ClothInterCollisionDistance: 0.1
|
m_ClothInterCollisionDistance: 0
|
||||||
m_ClothInterCollisionStiffness: 0.2
|
m_ClothInterCollisionStiffness: 0
|
||||||
m_ContactsGeneration: 1
|
m_ContactsGeneration: 1
|
||||||
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffdfffffffaffff7ff9fffffff8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fffffffafffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||||
m_SimulationMode: 0
|
m_AutoSimulation: 1
|
||||||
m_AutoSyncTransforms: 0
|
m_AutoSyncTransforms: 0
|
||||||
m_ReuseCollisionCallbacks: 1
|
m_ReuseCollisionCallbacks: 1
|
||||||
m_InvokeCollisionCallbacks: 1
|
|
||||||
m_ClothInterCollisionSettingsToggle: 0
|
m_ClothInterCollisionSettingsToggle: 0
|
||||||
m_ClothGravity: {x: 0, y: -9.81, z: 0}
|
|
||||||
m_ContactPairsMode: 0
|
m_ContactPairsMode: 0
|
||||||
m_BroadphaseType: 0
|
m_BroadphaseType: 0
|
||||||
m_WorldBounds:
|
m_WorldBounds:
|
||||||
|
|
@ -34,7 +31,3 @@ PhysicsManager:
|
||||||
m_FrictionType: 0
|
m_FrictionType: 0
|
||||||
m_EnableEnhancedDeterminism: 0
|
m_EnableEnhancedDeterminism: 0
|
||||||
m_EnableUnifiedHeightmaps: 1
|
m_EnableUnifiedHeightmaps: 1
|
||||||
m_ImprovedPatchFriction: 0
|
|
||||||
m_SolverType: 0
|
|
||||||
m_DefaultMaxAngularSpeed: 50
|
|
||||||
m_FastMotionThreshold: 3.4028235e+38
|
|
||||||
|
|
|
||||||
|
|
@ -3,45 +3,19 @@
|
||||||
--- !u!159 &1
|
--- !u!159 &1
|
||||||
EditorSettings:
|
EditorSettings:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
serializedVersion: 12
|
serializedVersion: 7
|
||||||
|
m_ExternalVersionControlSupport: Visible Meta Files
|
||||||
m_SerializationMode: 2
|
m_SerializationMode: 2
|
||||||
m_LineEndingsForNewScripts: 2
|
m_LineEndingsForNewScripts: 2
|
||||||
m_DefaultBehaviorMode: 1
|
m_DefaultBehaviorMode: 1
|
||||||
m_PrefabRegularEnvironment: {fileID: 0}
|
m_SpritePackerMode: 4
|
||||||
m_PrefabUIEnvironment: {fileID: 0}
|
|
||||||
m_SpritePackerMode: 0
|
|
||||||
m_SpritePackerCacheSize: 10
|
|
||||||
m_SpritePackerPaddingPower: 1
|
m_SpritePackerPaddingPower: 1
|
||||||
m_Bc7TextureCompressor: 0
|
|
||||||
m_EtcTextureCompressorBehavior: 1
|
m_EtcTextureCompressorBehavior: 1
|
||||||
m_EtcTextureFastCompressor: 1
|
m_EtcTextureFastCompressor: 1
|
||||||
m_EtcTextureNormalCompressor: 2
|
m_EtcTextureNormalCompressor: 2
|
||||||
m_EtcTextureBestCompressor: 4
|
m_EtcTextureBestCompressor: 4
|
||||||
m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp
|
m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd
|
||||||
m_ProjectGenerationRootNamespace: GeometryTD
|
m_ProjectGenerationRootNamespace:
|
||||||
m_EnableTextureStreamingInEditMode: 1
|
m_UserGeneratedProjectSuffix:
|
||||||
m_EnableTextureStreamingInPlayMode: 1
|
m_CollabEditorSettings:
|
||||||
m_EnableEditorAsyncCPUTextureLoading: 0
|
inProgressEnabled: 1
|
||||||
m_AsyncShaderCompilation: 1
|
|
||||||
m_PrefabModeAllowAutoSave: 1
|
|
||||||
m_EnterPlayModeOptionsEnabled: 0
|
|
||||||
m_EnterPlayModeOptions: 3
|
|
||||||
m_GameObjectNamingDigits: 1
|
|
||||||
m_GameObjectNamingScheme: 0
|
|
||||||
m_AssetNamingUsesSpace: 1
|
|
||||||
m_InspectorUseIMGUIDefaultInspector: 0
|
|
||||||
m_UseLegacyProbeSampleCount: 0
|
|
||||||
m_SerializeInlineMappingsOnOneLine: 0
|
|
||||||
m_DisableCookiesInLightmapper: 1
|
|
||||||
m_AssetPipelineMode: 1
|
|
||||||
m_RefreshImportMode: 0
|
|
||||||
m_CacheServerMode: 0
|
|
||||||
m_CacheServerEndpoint:
|
|
||||||
m_CacheServerNamespacePrefix: default
|
|
||||||
m_CacheServerEnableDownload: 1
|
|
||||||
m_CacheServerEnableUpload: 1
|
|
||||||
m_CacheServerEnableAuth: 0
|
|
||||||
m_CacheServerEnableTls: 0
|
|
||||||
m_CacheServerValidationMode: 2
|
|
||||||
m_CacheServerDownloadBatchSize: 128
|
|
||||||
m_EnableEnlightenBakedGI: 0
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
--- !u!30 &1
|
--- !u!30 &1
|
||||||
GraphicsSettings:
|
GraphicsSettings:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
serializedVersion: 14
|
serializedVersion: 15
|
||||||
m_Deferred:
|
m_Deferred:
|
||||||
m_Mode: 1
|
m_Mode: 1
|
||||||
m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}
|
m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
|
@ -13,9 +13,6 @@ GraphicsSettings:
|
||||||
m_ScreenSpaceShadows:
|
m_ScreenSpaceShadows:
|
||||||
m_Mode: 1
|
m_Mode: 1
|
||||||
m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0}
|
m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_LegacyDeferred:
|
|
||||||
m_Mode: 1
|
|
||||||
m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_DepthNormals:
|
m_DepthNormals:
|
||||||
m_Mode: 1
|
m_Mode: 1
|
||||||
m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0}
|
m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
|
@ -30,10 +27,6 @@ GraphicsSettings:
|
||||||
m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0}
|
m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_VideoShadersIncludeMode: 2
|
m_VideoShadersIncludeMode: 2
|
||||||
m_AlwaysIncludedShaders:
|
m_AlwaysIncludedShaders:
|
||||||
- {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
- {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
- {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
- {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
- {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
|
- {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
- {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
|
- {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
- {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0}
|
- {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
|
@ -41,16 +34,17 @@ GraphicsSettings:
|
||||||
m_PreloadShadersBatchTimeLimit: -1
|
m_PreloadShadersBatchTimeLimit: -1
|
||||||
m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
|
m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
|
||||||
type: 0}
|
type: 0}
|
||||||
m_CustomRenderPipeline: {fileID: 11400000, guid: 7b7fd9122c28c4d15b667c7040e3b3fd,
|
m_CustomRenderPipeline: {fileID: 11400000, guid: bc33e66b6fb14ee4ca285f231a27cc8f,
|
||||||
type: 2}
|
type: 2}
|
||||||
m_TransparencySortMode: 0
|
m_TransparencySortMode: 3
|
||||||
m_TransparencySortAxis: {x: 0, y: 0, z: 1}
|
m_TransparencySortAxis: {x: 0, y: 1, z: 1}
|
||||||
m_DefaultRenderingPath: 1
|
m_DefaultRenderingPath: 1
|
||||||
m_DefaultMobileRenderingPath: 1
|
m_DefaultMobileRenderingPath: 1
|
||||||
m_TierSettings: []
|
m_TierSettings: []
|
||||||
m_LightmapStripping: 0
|
m_LightmapStripping: 0
|
||||||
m_FogStripping: 0
|
m_FogStripping: 0
|
||||||
m_InstancingStripping: 0
|
m_InstancingStripping: 0
|
||||||
|
m_BrgStripping: 0
|
||||||
m_LightmapKeepPlain: 1
|
m_LightmapKeepPlain: 1
|
||||||
m_LightmapKeepDirCombined: 1
|
m_LightmapKeepDirCombined: 1
|
||||||
m_LightmapKeepDynamicPlain: 1
|
m_LightmapKeepDynamicPlain: 1
|
||||||
|
|
@ -68,3 +62,6 @@ GraphicsSettings:
|
||||||
m_SRPDefaultSettings:
|
m_SRPDefaultSettings:
|
||||||
UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: 18dc0cd2c080841dea60987a38ce93fa,
|
UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: 18dc0cd2c080841dea60987a38ce93fa,
|
||||||
type: 2}
|
type: 2}
|
||||||
|
m_LightProbeOutsideHullStrategy: 0
|
||||||
|
m_CameraRelativeLightCulling: 0
|
||||||
|
m_CameraRelativeShadowCulling: 0
|
||||||
|
|
|
||||||
|
|
@ -485,3 +485,4 @@ InputManager:
|
||||||
type: 2
|
type: 2
|
||||||
axis: 5
|
axis: 5
|
||||||
joyNum: 0
|
joyNum: 0
|
||||||
|
m_UsePhysicalKeys: 0
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ Physics2DSettings:
|
||||||
m_QueriesHitTriggers: 1
|
m_QueriesHitTriggers: 1
|
||||||
m_QueriesStartInColliders: 1
|
m_QueriesStartInColliders: 1
|
||||||
m_CallbacksOnDisable: 1
|
m_CallbacksOnDisable: 1
|
||||||
m_ReuseCollisionCallbacks: 0
|
m_ReuseCollisionCallbacks: 1
|
||||||
m_AutoSyncTransforms: 0
|
m_AutoSyncTransforms: 0
|
||||||
m_AlwaysShowColliders: 0
|
m_AlwaysShowColliders: 0
|
||||||
m_ShowColliderSleep: 1
|
m_ShowColliderSleep: 1
|
||||||
|
|
@ -53,4 +53,4 @@ Physics2DSettings:
|
||||||
m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}
|
m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}
|
||||||
m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}
|
m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}
|
||||||
m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}
|
m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}
|
||||||
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9fffffffafffffffcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||||
|
|
|
||||||
|
|
@ -3,5 +3,11 @@
|
||||||
--- !u!1386491679 &1
|
--- !u!1386491679 &1
|
||||||
PresetManager:
|
PresetManager:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
serializedVersion: 2
|
m_DefaultList:
|
||||||
m_DefaultPresets: {}
|
- type:
|
||||||
|
m_NativeTypeID: 20
|
||||||
|
m_ManagedTypePPtr: {fileID: 0}
|
||||||
|
m_ManagedTypeFallback:
|
||||||
|
defaultPresets:
|
||||||
|
- m_Preset: {fileID: 2655988077585873504, guid: bfcfc320427f8224bbb7a96f3d3aebad,
|
||||||
|
type: 2}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
PlayerSettings:
|
PlayerSettings:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
serializedVersion: 26
|
serializedVersion: 26
|
||||||
productGUID: 13a5aa7cb9db5484aba1f08396784e96
|
productGUID: cc888d368dfb83342aae6429c030cbdf
|
||||||
AndroidProfiler: 0
|
AndroidProfiler: 0
|
||||||
AndroidFilterTouchesWhenObscured: 0
|
AndroidFilterTouchesWhenObscured: 0
|
||||||
AndroidEnableSustainedPerformanceMode: 0
|
AndroidEnableSustainedPerformanceMode: 0
|
||||||
|
|
@ -67,7 +67,7 @@ PlayerSettings:
|
||||||
preserveFramebufferAlpha: 0
|
preserveFramebufferAlpha: 0
|
||||||
disableDepthAndStencilBuffers: 0
|
disableDepthAndStencilBuffers: 0
|
||||||
androidStartInFullscreen: 1
|
androidStartInFullscreen: 1
|
||||||
androidRenderOutsideSafeArea: 1
|
androidRenderOutsideSafeArea: 0
|
||||||
androidUseSwappy: 0
|
androidUseSwappy: 0
|
||||||
androidBlitType: 0
|
androidBlitType: 0
|
||||||
androidResizableWindow: 0
|
androidResizableWindow: 0
|
||||||
|
|
@ -80,7 +80,7 @@ PlayerSettings:
|
||||||
androidPredictiveBackSupport: 1
|
androidPredictiveBackSupport: 1
|
||||||
defaultIsNativeResolution: 1
|
defaultIsNativeResolution: 1
|
||||||
macRetinaSupport: 1
|
macRetinaSupport: 1
|
||||||
runInBackground: 0
|
runInBackground: 1
|
||||||
captureSingleScreen: 0
|
captureSingleScreen: 0
|
||||||
muteOtherAudioSources: 0
|
muteOtherAudioSources: 0
|
||||||
Prepare IOS For Recording: 0
|
Prepare IOS For Recording: 0
|
||||||
|
|
@ -97,7 +97,7 @@ PlayerSettings:
|
||||||
resizableWindow: 0
|
resizableWindow: 0
|
||||||
useMacAppStoreValidation: 0
|
useMacAppStoreValidation: 0
|
||||||
macAppStoreCategory: public.app-category.games
|
macAppStoreCategory: public.app-category.games
|
||||||
gpuSkinning: 1
|
gpuSkinning: 0
|
||||||
xboxPIXTextureCapture: 0
|
xboxPIXTextureCapture: 0
|
||||||
xboxEnableAvatar: 0
|
xboxEnableAvatar: 0
|
||||||
xboxEnableKinect: 0
|
xboxEnableKinect: 0
|
||||||
|
|
@ -119,7 +119,7 @@ PlayerSettings:
|
||||||
xboxOneDisableEsram: 0
|
xboxOneDisableEsram: 0
|
||||||
xboxOneEnableTypeOptimization: 0
|
xboxOneEnableTypeOptimization: 0
|
||||||
xboxOnePresentImmediateThreshold: 0
|
xboxOnePresentImmediateThreshold: 0
|
||||||
switchQueueCommandMemory: 1048576
|
switchQueueCommandMemory: 0
|
||||||
switchQueueControlMemory: 16384
|
switchQueueControlMemory: 16384
|
||||||
switchQueueComputeMemory: 262144
|
switchQueueComputeMemory: 262144
|
||||||
switchNVNShaderPoolsGranularity: 33554432
|
switchNVNShaderPoolsGranularity: 33554432
|
||||||
|
|
@ -135,13 +135,13 @@ PlayerSettings:
|
||||||
stadiaTargetFramerate: 0
|
stadiaTargetFramerate: 0
|
||||||
vulkanNumSwapchainBuffers: 3
|
vulkanNumSwapchainBuffers: 3
|
||||||
vulkanEnableSetSRGBWrite: 0
|
vulkanEnableSetSRGBWrite: 0
|
||||||
vulkanEnablePreTransform: 1
|
vulkanEnablePreTransform: 0
|
||||||
vulkanEnableLateAcquireNextImage: 0
|
vulkanEnableLateAcquireNextImage: 0
|
||||||
vulkanEnableCommandBufferRecycling: 1
|
vulkanEnableCommandBufferRecycling: 1
|
||||||
loadStoreDebugModeEnabled: 0
|
loadStoreDebugModeEnabled: 0
|
||||||
visionOSBundleVersion: 1.0
|
visionOSBundleVersion: 1.0
|
||||||
tvOSBundleVersion: 1.0
|
tvOSBundleVersion: 1.0
|
||||||
bundleVersion: 0.1.0
|
bundleVersion: 0.1
|
||||||
preloadedAssets: []
|
preloadedAssets: []
|
||||||
metroInputSource: 0
|
metroInputSource: 0
|
||||||
wsaTransparentSwapchain: 0
|
wsaTransparentSwapchain: 0
|
||||||
|
|
@ -163,9 +163,7 @@ PlayerSettings:
|
||||||
androidSupportedAspectRatio: 1
|
androidSupportedAspectRatio: 1
|
||||||
androidMaxAspectRatio: 2.1
|
androidMaxAspectRatio: 2.1
|
||||||
applicationIdentifier:
|
applicationIdentifier:
|
||||||
Android: com.UnityTechnologies.com.unity.template.urpblank
|
Standalone: com.Company.ProductName
|
||||||
Standalone: com.Unity-Technologies.com.unity.template.urp-blank
|
|
||||||
iPhone: com.Unity-Technologies.com.unity.template.urp-blank
|
|
||||||
buildNumber:
|
buildNumber:
|
||||||
Standalone: 0
|
Standalone: 0
|
||||||
VisionOS: 0
|
VisionOS: 0
|
||||||
|
|
@ -185,7 +183,7 @@ PlayerSettings:
|
||||||
CreateWallpaper: 0
|
CreateWallpaper: 0
|
||||||
APKExpansionFiles: 0
|
APKExpansionFiles: 0
|
||||||
keepLoadedShadersAlive: 0
|
keepLoadedShadersAlive: 0
|
||||||
StripUnusedMeshComponents: 0
|
StripUnusedMeshComponents: 1
|
||||||
strictShaderVariantMatching: 0
|
strictShaderVariantMatching: 0
|
||||||
VertexChannelCompressionMask: 4054
|
VertexChannelCompressionMask: 4054
|
||||||
iPhoneSdkVersion: 988
|
iPhoneSdkVersion: 988
|
||||||
|
|
@ -254,8 +252,8 @@ PlayerSettings:
|
||||||
iOSAutomaticallyDetectAndAddCapabilities: 1
|
iOSAutomaticallyDetectAndAddCapabilities: 1
|
||||||
appleEnableProMotion: 0
|
appleEnableProMotion: 0
|
||||||
shaderPrecisionModel: 0
|
shaderPrecisionModel: 0
|
||||||
clonedFromGUID: 3c72c65a16f0acb438eed22b8b16c24a
|
clonedFromGUID: b9742cdd9187f8d449919213d208335a
|
||||||
templatePackageId: com.unity.template.urp-blank@14.0.0
|
templatePackageId:
|
||||||
templateDefaultScene: Assets/Scenes/SampleScene.unity
|
templateDefaultScene: Assets/Scenes/SampleScene.unity
|
||||||
useCustomMainManifest: 0
|
useCustomMainManifest: 0
|
||||||
useCustomLauncherManifest: 0
|
useCustomLauncherManifest: 0
|
||||||
|
|
@ -265,7 +263,7 @@ PlayerSettings:
|
||||||
useCustomGradlePropertiesTemplate: 0
|
useCustomGradlePropertiesTemplate: 0
|
||||||
useCustomGradleSettingsTemplate: 0
|
useCustomGradleSettingsTemplate: 0
|
||||||
useCustomProguardFile: 0
|
useCustomProguardFile: 0
|
||||||
AndroidTargetArchitectures: 1
|
AndroidTargetArchitectures: 5
|
||||||
AndroidTargetDevices: 0
|
AndroidTargetDevices: 0
|
||||||
AndroidSplashScreenScale: 0
|
AndroidSplashScreenScale: 0
|
||||||
androidSplashScreen: {fileID: 0}
|
androidSplashScreen: {fileID: 0}
|
||||||
|
|
@ -273,7 +271,7 @@ PlayerSettings:
|
||||||
AndroidKeyaliasName:
|
AndroidKeyaliasName:
|
||||||
AndroidEnableArmv9SecurityFeatures: 0
|
AndroidEnableArmv9SecurityFeatures: 0
|
||||||
AndroidBuildApkPerCpuArchitecture: 0
|
AndroidBuildApkPerCpuArchitecture: 0
|
||||||
AndroidTVCompatibility: 0
|
AndroidTVCompatibility: 1
|
||||||
AndroidIsGame: 1
|
AndroidIsGame: 1
|
||||||
AndroidEnableTango: 0
|
AndroidEnableTango: 0
|
||||||
androidEnableBanner: 1
|
androidEnableBanner: 1
|
||||||
|
|
@ -480,53 +478,56 @@ PlayerSettings:
|
||||||
m_Height: 36
|
m_Height: 36
|
||||||
m_Kind: 0
|
m_Kind: 0
|
||||||
m_SubKind:
|
m_SubKind:
|
||||||
- m_BuildTarget: tvOS
|
|
||||||
m_Icons:
|
|
||||||
- m_Textures: []
|
|
||||||
m_Width: 1280
|
|
||||||
m_Height: 768
|
|
||||||
m_Kind: 0
|
|
||||||
m_SubKind:
|
|
||||||
- m_Textures: []
|
|
||||||
m_Width: 800
|
|
||||||
m_Height: 480
|
|
||||||
m_Kind: 0
|
|
||||||
m_SubKind:
|
|
||||||
- m_Textures: []
|
|
||||||
m_Width: 400
|
|
||||||
m_Height: 240
|
|
||||||
m_Kind: 0
|
|
||||||
m_SubKind:
|
|
||||||
- m_Textures: []
|
|
||||||
m_Width: 4640
|
|
||||||
m_Height: 1440
|
|
||||||
m_Kind: 1
|
|
||||||
m_SubKind:
|
|
||||||
- m_Textures: []
|
|
||||||
m_Width: 2320
|
|
||||||
m_Height: 720
|
|
||||||
m_Kind: 1
|
|
||||||
m_SubKind:
|
|
||||||
- m_Textures: []
|
|
||||||
m_Width: 3840
|
|
||||||
m_Height: 1440
|
|
||||||
m_Kind: 1
|
|
||||||
m_SubKind:
|
|
||||||
- m_Textures: []
|
|
||||||
m_Width: 1920
|
|
||||||
m_Height: 720
|
|
||||||
m_Kind: 1
|
|
||||||
m_SubKind:
|
|
||||||
m_BuildTargetBatching: []
|
m_BuildTargetBatching: []
|
||||||
m_BuildTargetShaderSettings: []
|
m_BuildTargetShaderSettings: []
|
||||||
m_BuildTargetGraphicsJobs: []
|
m_BuildTargetGraphicsJobs:
|
||||||
m_BuildTargetGraphicsJobMode: []
|
- m_BuildTarget: WindowsStandaloneSupport
|
||||||
|
m_GraphicsJobs: 0
|
||||||
|
- m_BuildTarget: MacStandaloneSupport
|
||||||
|
m_GraphicsJobs: 0
|
||||||
|
- m_BuildTarget: LinuxStandaloneSupport
|
||||||
|
m_GraphicsJobs: 0
|
||||||
|
- m_BuildTarget: AndroidPlayer
|
||||||
|
m_GraphicsJobs: 0
|
||||||
|
- m_BuildTarget: iOSSupport
|
||||||
|
m_GraphicsJobs: 0
|
||||||
|
- m_BuildTarget: PS4Player
|
||||||
|
m_GraphicsJobs: 0
|
||||||
|
- m_BuildTarget: PS5Player
|
||||||
|
m_GraphicsJobs: 0
|
||||||
|
- m_BuildTarget: XboxOnePlayer
|
||||||
|
m_GraphicsJobs: 0
|
||||||
|
- m_BuildTarget: GameCoreXboxOneSupport
|
||||||
|
m_GraphicsJobs: 0
|
||||||
|
- m_BuildTarget: GameCoreScarlettSupport
|
||||||
|
m_GraphicsJobs: 0
|
||||||
|
- m_BuildTarget: Switch
|
||||||
|
m_GraphicsJobs: 0
|
||||||
|
- m_BuildTarget: WebGLSupport
|
||||||
|
m_GraphicsJobs: 0
|
||||||
|
- m_BuildTarget: MetroSupport
|
||||||
|
m_GraphicsJobs: 0
|
||||||
|
- m_BuildTarget: AppleTVSupport
|
||||||
|
m_GraphicsJobs: 0
|
||||||
|
- m_BuildTarget: BJMSupport
|
||||||
|
m_GraphicsJobs: 0
|
||||||
|
- m_BuildTarget: LuminSupport
|
||||||
|
m_GraphicsJobs: 0
|
||||||
|
- m_BuildTarget: CloudRendering
|
||||||
|
m_GraphicsJobs: 0
|
||||||
|
- m_BuildTarget: EmbeddedLinux
|
||||||
|
m_GraphicsJobs: 0
|
||||||
|
m_BuildTargetGraphicsJobMode:
|
||||||
|
- m_BuildTarget: PS4Player
|
||||||
|
m_GraphicsJobMode: 0
|
||||||
|
- m_BuildTarget: XboxOnePlayer
|
||||||
|
m_GraphicsJobMode: 0
|
||||||
m_BuildTargetGraphicsAPIs:
|
m_BuildTargetGraphicsAPIs:
|
||||||
- m_BuildTarget: iOSSupport
|
- m_BuildTarget: iOSSupport
|
||||||
m_APIs: 10000000
|
m_APIs: 10000000
|
||||||
m_Automatic: 1
|
m_Automatic: 1
|
||||||
- m_BuildTarget: AndroidPlayer
|
- m_BuildTarget: AndroidPlayer
|
||||||
m_APIs: 150000000b000000
|
m_APIs: 0b00000008000000
|
||||||
m_Automatic: 0
|
m_Automatic: 0
|
||||||
m_BuildTargetVRSettings: []
|
m_BuildTargetVRSettings: []
|
||||||
m_DefaultShaderChunkSizeInMB: 16
|
m_DefaultShaderChunkSizeInMB: 16
|
||||||
|
|
@ -539,20 +540,12 @@ PlayerSettings:
|
||||||
Android: 1
|
Android: 1
|
||||||
iPhone: 1
|
iPhone: 1
|
||||||
tvOS: 1
|
tvOS: 1
|
||||||
m_BuildTargetGroupLightmapEncodingQuality:
|
m_BuildTargetGroupLightmapEncodingQuality: []
|
||||||
- m_BuildTarget: Android
|
m_BuildTargetGroupHDRCubemapEncodingQuality: []
|
||||||
m_EncodingQuality: 1
|
|
||||||
m_BuildTargetGroupHDRCubemapEncodingQuality:
|
|
||||||
- m_BuildTarget: Android
|
|
||||||
m_EncodingQuality: 1
|
|
||||||
m_BuildTargetGroupLightmapSettings: []
|
m_BuildTargetGroupLightmapSettings: []
|
||||||
m_BuildTargetGroupLoadStoreDebugModeSettings: []
|
m_BuildTargetGroupLoadStoreDebugModeSettings: []
|
||||||
m_BuildTargetNormalMapEncoding:
|
m_BuildTargetNormalMapEncoding: []
|
||||||
- m_BuildTarget: Android
|
m_BuildTargetDefaultTextureCompressionFormat: []
|
||||||
m_Encoding: 1
|
|
||||||
m_BuildTargetDefaultTextureCompressionFormat:
|
|
||||||
- m_BuildTarget: Android
|
|
||||||
m_Format: 3
|
|
||||||
playModeTestRunnerEnabled: 0
|
playModeTestRunnerEnabled: 0
|
||||||
runPlayModeTestAsEditModeTest: 0
|
runPlayModeTestAsEditModeTest: 0
|
||||||
actionOnDotNetUnhandledException: 1
|
actionOnDotNetUnhandledException: 1
|
||||||
|
|
@ -686,7 +679,7 @@ PlayerSettings:
|
||||||
switchDataLossConfirmation: 0
|
switchDataLossConfirmation: 0
|
||||||
switchUserAccountLockEnabled: 0
|
switchUserAccountLockEnabled: 0
|
||||||
switchSystemResourceMemory: 16777216
|
switchSystemResourceMemory: 16777216
|
||||||
switchSupportedNpadStyles: 22
|
switchSupportedNpadStyles: 3
|
||||||
switchNativeFsCacheSize: 32
|
switchNativeFsCacheSize: 32
|
||||||
switchIsHoldTypeHorizontal: 0
|
switchIsHoldTypeHorizontal: 0
|
||||||
switchSupportedNpadCount: 8
|
switchSupportedNpadCount: 8
|
||||||
|
|
@ -703,7 +696,7 @@ PlayerSettings:
|
||||||
switchNetworkInterfaceManagerInitializeEnabled: 1
|
switchNetworkInterfaceManagerInitializeEnabled: 1
|
||||||
switchDisableHTCSPlayerConnection: 0
|
switchDisableHTCSPlayerConnection: 0
|
||||||
switchUseNewStyleFilepaths: 0
|
switchUseNewStyleFilepaths: 0
|
||||||
switchUseLegacyFmodPriorities: 0
|
switchUseLegacyFmodPriorities: 1
|
||||||
switchUseMicroSleepForYield: 1
|
switchUseMicroSleepForYield: 1
|
||||||
switchEnableRamDiskSupport: 0
|
switchEnableRamDiskSupport: 0
|
||||||
switchMicroSleepForYieldTime: 25
|
switchMicroSleepForYieldTime: 25
|
||||||
|
|
@ -739,7 +732,7 @@ PlayerSettings:
|
||||||
ps4RemotePlayKeyAssignment: -1
|
ps4RemotePlayKeyAssignment: -1
|
||||||
ps4RemotePlayKeyMappingDir:
|
ps4RemotePlayKeyMappingDir:
|
||||||
ps4PlayTogetherPlayerCount: 0
|
ps4PlayTogetherPlayerCount: 0
|
||||||
ps4EnterButtonAssignment: 2
|
ps4EnterButtonAssignment: 1
|
||||||
ps4ApplicationParam1: 0
|
ps4ApplicationParam1: 0
|
||||||
ps4ApplicationParam2: 0
|
ps4ApplicationParam2: 0
|
||||||
ps4ApplicationParam3: 0
|
ps4ApplicationParam3: 0
|
||||||
|
|
@ -762,7 +755,7 @@ PlayerSettings:
|
||||||
ps4UseAudio3dBackend: 0
|
ps4UseAudio3dBackend: 0
|
||||||
ps4UseLowGarlicFragmentationMode: 1
|
ps4UseLowGarlicFragmentationMode: 1
|
||||||
ps4SocialScreenEnabled: 0
|
ps4SocialScreenEnabled: 0
|
||||||
ps4ScriptOptimizationLevel: 2
|
ps4ScriptOptimizationLevel: 0
|
||||||
ps4Audio3dVirtualSpeakerCount: 14
|
ps4Audio3dVirtualSpeakerCount: 14
|
||||||
ps4attribCpuUsage: 0
|
ps4attribCpuUsage: 0
|
||||||
ps4PatchPkgPath:
|
ps4PatchPkgPath:
|
||||||
|
|
@ -788,7 +781,7 @@ PlayerSettings:
|
||||||
splashScreenBackgroundSourcePortrait: {fileID: 0}
|
splashScreenBackgroundSourcePortrait: {fileID: 0}
|
||||||
blurSplashScreenBackground: 1
|
blurSplashScreenBackground: 1
|
||||||
spritePackerPolicy:
|
spritePackerPolicy:
|
||||||
webGLMemorySize: 32
|
webGLMemorySize: 256
|
||||||
webGLExceptionSupport: 1
|
webGLExceptionSupport: 1
|
||||||
webGLNameFilesAsHashes: 0
|
webGLNameFilesAsHashes: 0
|
||||||
webGLShowDiagnostics: 0
|
webGLShowDiagnostics: 0
|
||||||
|
|
@ -799,7 +792,7 @@ PlayerSettings:
|
||||||
webGLTemplate: APPLICATION:Default
|
webGLTemplate: APPLICATION:Default
|
||||||
webGLAnalyzeBuildSize: 0
|
webGLAnalyzeBuildSize: 0
|
||||||
webGLUseEmbeddedResources: 0
|
webGLUseEmbeddedResources: 0
|
||||||
webGLCompressionFormat: 0
|
webGLCompressionFormat: 1
|
||||||
webGLWasmArithmeticExceptions: 0
|
webGLWasmArithmeticExceptions: 0
|
||||||
webGLLinkerTarget: 1
|
webGLLinkerTarget: 1
|
||||||
webGLThreadsSupport: 0
|
webGLThreadsSupport: 0
|
||||||
|
|
@ -812,11 +805,11 @@ PlayerSettings:
|
||||||
webGLMemoryGeometricGrowthCap: 96
|
webGLMemoryGeometricGrowthCap: 96
|
||||||
webGLPowerPreference: 2
|
webGLPowerPreference: 2
|
||||||
scriptingDefineSymbols:
|
scriptingDefineSymbols:
|
||||||
Android: ENABLE_DEBUG_AND_ABOVE_LOG
|
Android: ENABLE_LOG
|
||||||
Standalone: ENABLE_DEBUG_AND_ABOVE_LOG
|
Standalone: AMPLIFY_SHADER_EDITOR;ENABLE_LOG
|
||||||
WebGL: ENABLE_DEBUG_AND_ABOVE_LOG
|
WebGL: AMPLIFY_SHADER_EDITOR;ENABLE_LOG
|
||||||
Windows Store Apps: ENABLE_DEBUG_AND_ABOVE_LOG
|
Windows Store Apps: ENABLE_LOG
|
||||||
iPhone: ENABLE_DEBUG_AND_ABOVE_LOG
|
iPhone: ENABLE_LOG
|
||||||
additionalCompilerArguments: {}
|
additionalCompilerArguments: {}
|
||||||
platformArchitecture: {}
|
platformArchitecture: {}
|
||||||
scriptingBackend: {}
|
scriptingBackend: {}
|
||||||
|
|
@ -848,14 +841,14 @@ PlayerSettings:
|
||||||
apiCompatibilityLevelPerPlatform: {}
|
apiCompatibilityLevelPerPlatform: {}
|
||||||
m_RenderingPath: 1
|
m_RenderingPath: 1
|
||||||
m_MobileRenderingPath: 1
|
m_MobileRenderingPath: 1
|
||||||
metroPackageName: StarForce1
|
metroPackageName: GeometryTD
|
||||||
metroPackageVersion:
|
metroPackageVersion:
|
||||||
metroCertificatePath:
|
metroCertificatePath:
|
||||||
metroCertificatePassword:
|
metroCertificatePassword:
|
||||||
metroCertificateSubject:
|
metroCertificateSubject:
|
||||||
metroCertificateIssuer:
|
metroCertificateIssuer:
|
||||||
metroCertificateNotAfter: 0000000000000000
|
metroCertificateNotAfter: 0000000000000000
|
||||||
metroApplicationDescription: StarForce1
|
metroApplicationDescription: GeometryTD
|
||||||
wsaImages: {}
|
wsaImages: {}
|
||||||
metroTileShortName:
|
metroTileShortName:
|
||||||
metroTileShowName: 0
|
metroTileShowName: 0
|
||||||
|
|
@ -905,7 +898,8 @@ PlayerSettings:
|
||||||
XboxOneOverrideIdentityName:
|
XboxOneOverrideIdentityName:
|
||||||
XboxOneOverrideIdentityPublisher:
|
XboxOneOverrideIdentityPublisher:
|
||||||
vrEditorSettings: {}
|
vrEditorSettings: {}
|
||||||
cloudServicesEnabled: {}
|
cloudServicesEnabled:
|
||||||
|
UNet: 1
|
||||||
luminIcon:
|
luminIcon:
|
||||||
m_Name:
|
m_Name:
|
||||||
m_ModelFolderPath:
|
m_ModelFolderPath:
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,60 @@
|
||||||
QualitySettings:
|
QualitySettings:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
serializedVersion: 5
|
serializedVersion: 5
|
||||||
m_CurrentQuality: 2
|
m_CurrentQuality: 3
|
||||||
m_QualitySettings:
|
m_QualitySettings:
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
name: Performant
|
name: Very Low
|
||||||
|
pixelLightCount: 0
|
||||||
|
shadows: 0
|
||||||
|
shadowResolution: 0
|
||||||
|
shadowProjection: 1
|
||||||
|
shadowCascades: 1
|
||||||
|
shadowDistance: 15
|
||||||
|
shadowNearPlaneOffset: 3
|
||||||
|
shadowCascade2Split: 0.33333334
|
||||||
|
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
||||||
|
shadowmaskMode: 0
|
||||||
|
skinWeights: 1
|
||||||
|
globalTextureMipmapLimit: 1
|
||||||
|
textureMipmapLimitSettings: []
|
||||||
|
anisotropicTextures: 0
|
||||||
|
antiAliasing: 0
|
||||||
|
softParticles: 0
|
||||||
|
softVegetation: 0
|
||||||
|
realtimeReflectionProbes: 0
|
||||||
|
billboardsFaceCameraPosition: 0
|
||||||
|
useLegacyDetailDistribution: 1
|
||||||
|
vSyncCount: 0
|
||||||
|
realtimeGICPUUsage: 25
|
||||||
|
lodBias: 0.3
|
||||||
|
maximumLODLevel: 0
|
||||||
|
enableLODCrossFade: 1
|
||||||
|
streamingMipmapsActive: 0
|
||||||
|
streamingMipmapsAddAllCameras: 1
|
||||||
|
streamingMipmapsMemoryBudget: 512
|
||||||
|
streamingMipmapsRenderersPerFrame: 512
|
||||||
|
streamingMipmapsMaxLevelReduction: 2
|
||||||
|
streamingMipmapsMaxFileIORequests: 1024
|
||||||
|
particleRaycastBudget: 4
|
||||||
|
asyncUploadTimeSlice: 2
|
||||||
|
asyncUploadBufferSize: 16
|
||||||
|
asyncUploadPersistentBuffer: 1
|
||||||
|
resolutionScalingFixedDPIFactor: 1
|
||||||
|
customRenderPipeline: {fileID: 11400000, guid: e43890e8057465446aca1e99477216e7,
|
||||||
|
type: 2}
|
||||||
|
terrainQualityOverrides: 0
|
||||||
|
terrainPixelError: 1
|
||||||
|
terrainDetailDensityScale: 1
|
||||||
|
terrainBasemapDistance: 1000
|
||||||
|
terrainDetailDistance: 80
|
||||||
|
terrainTreeDistance: 5000
|
||||||
|
terrainBillboardStart: 50
|
||||||
|
terrainFadeLength: 5
|
||||||
|
terrainMaxTrees: 50
|
||||||
|
excludedTargetPlatforms: []
|
||||||
|
- serializedVersion: 3
|
||||||
|
name: Low
|
||||||
pixelLightCount: 0
|
pixelLightCount: 0
|
||||||
shadows: 0
|
shadows: 0
|
||||||
shadowResolution: 0
|
shadowResolution: 0
|
||||||
|
|
@ -39,12 +89,12 @@ QualitySettings:
|
||||||
streamingMipmapsRenderersPerFrame: 512
|
streamingMipmapsRenderersPerFrame: 512
|
||||||
streamingMipmapsMaxLevelReduction: 2
|
streamingMipmapsMaxLevelReduction: 2
|
||||||
streamingMipmapsMaxFileIORequests: 1024
|
streamingMipmapsMaxFileIORequests: 1024
|
||||||
particleRaycastBudget: 4
|
particleRaycastBudget: 16
|
||||||
asyncUploadTimeSlice: 2
|
asyncUploadTimeSlice: 2
|
||||||
asyncUploadBufferSize: 16
|
asyncUploadBufferSize: 16
|
||||||
asyncUploadPersistentBuffer: 1
|
asyncUploadPersistentBuffer: 1
|
||||||
resolutionScalingFixedDPIFactor: 1
|
resolutionScalingFixedDPIFactor: 1
|
||||||
customRenderPipeline: {fileID: 11400000, guid: d0e2fc18fe036412f8223b3b3d9ad574,
|
customRenderPipeline: {fileID: 11400000, guid: dbe4558fce084304f8acf363e66e5f8c,
|
||||||
type: 2}
|
type: 2}
|
||||||
terrainQualityOverrides: 0
|
terrainQualityOverrides: 0
|
||||||
terrainPixelError: 1
|
terrainPixelError: 1
|
||||||
|
|
@ -57,9 +107,9 @@ QualitySettings:
|
||||||
terrainMaxTrees: 50
|
terrainMaxTrees: 50
|
||||||
excludedTargetPlatforms: []
|
excludedTargetPlatforms: []
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
name: Balanced
|
name: Medium
|
||||||
pixelLightCount: 1
|
pixelLightCount: 1
|
||||||
shadows: 1
|
shadows: 0
|
||||||
shadowResolution: 0
|
shadowResolution: 0
|
||||||
shadowProjection: 1
|
shadowProjection: 1
|
||||||
shadowCascades: 1
|
shadowCascades: 1
|
||||||
|
|
@ -68,10 +118,10 @@ QualitySettings:
|
||||||
shadowCascade2Split: 0.33333334
|
shadowCascade2Split: 0.33333334
|
||||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
||||||
shadowmaskMode: 0
|
shadowmaskMode: 0
|
||||||
skinWeights: 4
|
skinWeights: 2
|
||||||
globalTextureMipmapLimit: 0
|
globalTextureMipmapLimit: 0
|
||||||
textureMipmapLimitSettings: []
|
textureMipmapLimitSettings: []
|
||||||
anisotropicTextures: 1
|
anisotropicTextures: 0
|
||||||
antiAliasing: 0
|
antiAliasing: 0
|
||||||
softParticles: 0
|
softParticles: 0
|
||||||
softVegetation: 0
|
softVegetation: 0
|
||||||
|
|
@ -80,7 +130,7 @@ QualitySettings:
|
||||||
useLegacyDetailDistribution: 1
|
useLegacyDetailDistribution: 1
|
||||||
vSyncCount: 1
|
vSyncCount: 1
|
||||||
realtimeGICPUUsage: 25
|
realtimeGICPUUsage: 25
|
||||||
lodBias: 1
|
lodBias: 0.7
|
||||||
maximumLODLevel: 0
|
maximumLODLevel: 0
|
||||||
enableLODCrossFade: 1
|
enableLODCrossFade: 1
|
||||||
streamingMipmapsActive: 0
|
streamingMipmapsActive: 0
|
||||||
|
|
@ -94,7 +144,7 @@ QualitySettings:
|
||||||
asyncUploadBufferSize: 16
|
asyncUploadBufferSize: 16
|
||||||
asyncUploadPersistentBuffer: 1
|
asyncUploadPersistentBuffer: 1
|
||||||
resolutionScalingFixedDPIFactor: 1
|
resolutionScalingFixedDPIFactor: 1
|
||||||
customRenderPipeline: {fileID: 11400000, guid: e1260c1148f6143b28bae5ace5e9c5d1,
|
customRenderPipeline: {fileID: 11400000, guid: a6da7fbcb52df9c4db85780c4cf55175,
|
||||||
type: 2}
|
type: 2}
|
||||||
terrainQualityOverrides: 0
|
terrainQualityOverrides: 0
|
||||||
terrainPixelError: 1
|
terrainPixelError: 1
|
||||||
|
|
@ -107,9 +157,9 @@ QualitySettings:
|
||||||
terrainMaxTrees: 50
|
terrainMaxTrees: 50
|
||||||
excludedTargetPlatforms: []
|
excludedTargetPlatforms: []
|
||||||
- serializedVersion: 3
|
- serializedVersion: 3
|
||||||
name: High Fidelity
|
name: High
|
||||||
pixelLightCount: 2
|
pixelLightCount: 2
|
||||||
shadows: 2
|
shadows: 0
|
||||||
shadowResolution: 1
|
shadowResolution: 1
|
||||||
shadowProjection: 1
|
shadowProjection: 1
|
||||||
shadowCascades: 2
|
shadowCascades: 2
|
||||||
|
|
@ -118,18 +168,118 @@ QualitySettings:
|
||||||
shadowCascade2Split: 0.33333334
|
shadowCascade2Split: 0.33333334
|
||||||
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
||||||
shadowmaskMode: 1
|
shadowmaskMode: 1
|
||||||
skinWeights: 255
|
skinWeights: 2
|
||||||
globalTextureMipmapLimit: 0
|
globalTextureMipmapLimit: 0
|
||||||
textureMipmapLimitSettings: []
|
textureMipmapLimitSettings: []
|
||||||
anisotropicTextures: 2
|
anisotropicTextures: 0
|
||||||
antiAliasing: 4
|
antiAliasing: 0
|
||||||
softParticles: 0
|
softParticles: 0
|
||||||
softVegetation: 1
|
softVegetation: 1
|
||||||
realtimeReflectionProbes: 1
|
realtimeReflectionProbes: 0
|
||||||
billboardsFaceCameraPosition: 1
|
billboardsFaceCameraPosition: 0
|
||||||
useLegacyDetailDistribution: 1
|
useLegacyDetailDistribution: 1
|
||||||
vSyncCount: 1
|
vSyncCount: 1
|
||||||
realtimeGICPUUsage: 25
|
realtimeGICPUUsage: 50
|
||||||
|
lodBias: 1
|
||||||
|
maximumLODLevel: 0
|
||||||
|
enableLODCrossFade: 1
|
||||||
|
streamingMipmapsActive: 0
|
||||||
|
streamingMipmapsAddAllCameras: 1
|
||||||
|
streamingMipmapsMemoryBudget: 512
|
||||||
|
streamingMipmapsRenderersPerFrame: 512
|
||||||
|
streamingMipmapsMaxLevelReduction: 2
|
||||||
|
streamingMipmapsMaxFileIORequests: 1024
|
||||||
|
particleRaycastBudget: 256
|
||||||
|
asyncUploadTimeSlice: 2
|
||||||
|
asyncUploadBufferSize: 16
|
||||||
|
asyncUploadPersistentBuffer: 1
|
||||||
|
resolutionScalingFixedDPIFactor: 1
|
||||||
|
customRenderPipeline: {fileID: 11400000, guid: bc33e66b6fb14ee4ca285f231a27cc8f,
|
||||||
|
type: 2}
|
||||||
|
terrainQualityOverrides: 0
|
||||||
|
terrainPixelError: 1
|
||||||
|
terrainDetailDensityScale: 1
|
||||||
|
terrainBasemapDistance: 1000
|
||||||
|
terrainDetailDistance: 80
|
||||||
|
terrainTreeDistance: 5000
|
||||||
|
terrainBillboardStart: 50
|
||||||
|
terrainFadeLength: 5
|
||||||
|
terrainMaxTrees: 50
|
||||||
|
excludedTargetPlatforms: []
|
||||||
|
- serializedVersion: 3
|
||||||
|
name: Very High
|
||||||
|
pixelLightCount: 3
|
||||||
|
shadows: 0
|
||||||
|
shadowResolution: 2
|
||||||
|
shadowProjection: 1
|
||||||
|
shadowCascades: 2
|
||||||
|
shadowDistance: 70
|
||||||
|
shadowNearPlaneOffset: 3
|
||||||
|
shadowCascade2Split: 0.33333334
|
||||||
|
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
||||||
|
shadowmaskMode: 1
|
||||||
|
skinWeights: 4
|
||||||
|
globalTextureMipmapLimit: 0
|
||||||
|
textureMipmapLimitSettings: []
|
||||||
|
anisotropicTextures: 0
|
||||||
|
antiAliasing: 0
|
||||||
|
softParticles: 0
|
||||||
|
softVegetation: 1
|
||||||
|
realtimeReflectionProbes: 0
|
||||||
|
billboardsFaceCameraPosition: 0
|
||||||
|
useLegacyDetailDistribution: 1
|
||||||
|
vSyncCount: 1
|
||||||
|
realtimeGICPUUsage: 50
|
||||||
|
lodBias: 1.5
|
||||||
|
maximumLODLevel: 0
|
||||||
|
enableLODCrossFade: 1
|
||||||
|
streamingMipmapsActive: 0
|
||||||
|
streamingMipmapsAddAllCameras: 1
|
||||||
|
streamingMipmapsMemoryBudget: 512
|
||||||
|
streamingMipmapsRenderersPerFrame: 512
|
||||||
|
streamingMipmapsMaxLevelReduction: 2
|
||||||
|
streamingMipmapsMaxFileIORequests: 1024
|
||||||
|
particleRaycastBudget: 1024
|
||||||
|
asyncUploadTimeSlice: 2
|
||||||
|
asyncUploadBufferSize: 16
|
||||||
|
asyncUploadPersistentBuffer: 1
|
||||||
|
resolutionScalingFixedDPIFactor: 1
|
||||||
|
customRenderPipeline: {fileID: 11400000, guid: e1dead8963f155f42b789be8e83fae26,
|
||||||
|
type: 2}
|
||||||
|
terrainQualityOverrides: 0
|
||||||
|
terrainPixelError: 1
|
||||||
|
terrainDetailDensityScale: 1
|
||||||
|
terrainBasemapDistance: 1000
|
||||||
|
terrainDetailDistance: 80
|
||||||
|
terrainTreeDistance: 5000
|
||||||
|
terrainBillboardStart: 50
|
||||||
|
terrainFadeLength: 5
|
||||||
|
terrainMaxTrees: 50
|
||||||
|
excludedTargetPlatforms: []
|
||||||
|
- serializedVersion: 3
|
||||||
|
name: Ultra
|
||||||
|
pixelLightCount: 4
|
||||||
|
shadows: 0
|
||||||
|
shadowResolution: 0
|
||||||
|
shadowProjection: 1
|
||||||
|
shadowCascades: 4
|
||||||
|
shadowDistance: 150
|
||||||
|
shadowNearPlaneOffset: 3
|
||||||
|
shadowCascade2Split: 0.33333334
|
||||||
|
shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
|
||||||
|
shadowmaskMode: 1
|
||||||
|
skinWeights: 4
|
||||||
|
globalTextureMipmapLimit: 0
|
||||||
|
textureMipmapLimitSettings: []
|
||||||
|
anisotropicTextures: 0
|
||||||
|
antiAliasing: 0
|
||||||
|
softParticles: 0
|
||||||
|
softVegetation: 1
|
||||||
|
realtimeReflectionProbes: 0
|
||||||
|
billboardsFaceCameraPosition: 0
|
||||||
|
useLegacyDetailDistribution: 1
|
||||||
|
vSyncCount: 1
|
||||||
|
realtimeGICPUUsage: 100
|
||||||
lodBias: 2
|
lodBias: 2
|
||||||
maximumLODLevel: 0
|
maximumLODLevel: 0
|
||||||
enableLODCrossFade: 1
|
enableLODCrossFade: 1
|
||||||
|
|
@ -139,12 +289,12 @@ QualitySettings:
|
||||||
streamingMipmapsRenderersPerFrame: 512
|
streamingMipmapsRenderersPerFrame: 512
|
||||||
streamingMipmapsMaxLevelReduction: 2
|
streamingMipmapsMaxLevelReduction: 2
|
||||||
streamingMipmapsMaxFileIORequests: 1024
|
streamingMipmapsMaxFileIORequests: 1024
|
||||||
particleRaycastBudget: 2048
|
particleRaycastBudget: 4096
|
||||||
asyncUploadTimeSlice: 2
|
asyncUploadTimeSlice: 2
|
||||||
asyncUploadBufferSize: 16
|
asyncUploadBufferSize: 16
|
||||||
asyncUploadPersistentBuffer: 1
|
asyncUploadPersistentBuffer: 1
|
||||||
resolutionScalingFixedDPIFactor: 1
|
resolutionScalingFixedDPIFactor: 1
|
||||||
customRenderPipeline: {fileID: 11400000, guid: 7b7fd9122c28c4d15b667c7040e3b3fd,
|
customRenderPipeline: {fileID: 11400000, guid: cc916aa482e261144a49f6a5eb5d9ce4,
|
||||||
type: 2}
|
type: 2}
|
||||||
terrainQualityOverrides: 0
|
terrainQualityOverrides: 0
|
||||||
terrainPixelError: 1
|
terrainPixelError: 1
|
||||||
|
|
@ -158,19 +308,18 @@ QualitySettings:
|
||||||
excludedTargetPlatforms: []
|
excludedTargetPlatforms: []
|
||||||
m_TextureMipmapLimitGroupNames: []
|
m_TextureMipmapLimitGroupNames: []
|
||||||
m_PerPlatformDefaultQuality:
|
m_PerPlatformDefaultQuality:
|
||||||
Android: 1
|
Android: 2
|
||||||
CloudRendering: 2
|
Nintendo 3DS: 5
|
||||||
GameCoreScarlett: 2
|
Nintendo Switch: 5
|
||||||
GameCoreXboxOne: 2
|
PS4: 5
|
||||||
Lumin: 2
|
PSM: 5
|
||||||
Nintendo Switch: 2
|
PSP2: 2
|
||||||
PS4: 2
|
|
||||||
PS5: 2
|
|
||||||
Server: 0
|
Server: 0
|
||||||
Stadia: 2
|
Standalone: 5
|
||||||
Standalone: 2
|
Tizen: 2
|
||||||
WebGL: 1
|
WebGL: 3
|
||||||
Windows Store Apps: 2
|
WiiU: 5
|
||||||
XboxOne: 2
|
Windows Store Apps: 5
|
||||||
iPhone: 1
|
XboxOne: 5
|
||||||
tvOS: 1
|
iPhone: 2
|
||||||
|
tvOS: 2
|
||||||
|
|
|
||||||
|
|
@ -11,11 +11,6 @@ TagManager:
|
||||||
-
|
-
|
||||||
- Water
|
- Water
|
||||||
- UI
|
- UI
|
||||||
- Targetable Object
|
|
||||||
- Player
|
|
||||||
- Enemy
|
|
||||||
- PlayerBullet
|
|
||||||
- EnemyBullet
|
|
||||||
-
|
-
|
||||||
-
|
-
|
||||||
-
|
-
|
||||||
|
|
@ -30,6 +25,11 @@ TagManager:
|
||||||
-
|
-
|
||||||
-
|
-
|
||||||
-
|
-
|
||||||
|
- Layer 1
|
||||||
|
- Layer 2
|
||||||
|
- Layer 3
|
||||||
|
-
|
||||||
|
-
|
||||||
-
|
-
|
||||||
-
|
-
|
||||||
-
|
-
|
||||||
|
|
@ -41,3 +41,12 @@ TagManager:
|
||||||
- name: Default
|
- name: Default
|
||||||
uniqueID: 0
|
uniqueID: 0
|
||||||
locked: 0
|
locked: 0
|
||||||
|
- name: Layer 1
|
||||||
|
uniqueID: 2425651459
|
||||||
|
locked: 0
|
||||||
|
- name: Layer 2
|
||||||
|
uniqueID: 4250941897
|
||||||
|
locked: 0
|
||||||
|
- name: Layer 3
|
||||||
|
uniqueID: 4189426099
|
||||||
|
locked: 0
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,6 @@
|
||||||
TimeManager:
|
TimeManager:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
Fixed Timestep: 0.02
|
Fixed Timestep: 0.02
|
||||||
Maximum Allowed Timestep: 0.33333334
|
Maximum Allowed Timestep: 0.1
|
||||||
m_TimeScale: 1
|
m_TimeScale: 1
|
||||||
Maximum Particle Timestep: 0.03
|
Maximum Particle Timestep: 0.03
|
||||||
|
|
|
||||||
|
|
@ -9,9 +9,6 @@ UnityConnectSettings:
|
||||||
m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events
|
m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events
|
||||||
m_EventUrl: https://cdp.cloud.unity3d.com/v1/events
|
m_EventUrl: https://cdp.cloud.unity3d.com/v1/events
|
||||||
m_ConfigUrl: https://config.uca.cloud.unity3d.com
|
m_ConfigUrl: https://config.uca.cloud.unity3d.com
|
||||||
m_DashboardUrl: https://dashboard.unity3d.com
|
|
||||||
m_CNEventUrl: https://cdp.cloud.unity.cn/v1/events
|
|
||||||
m_CNConfigUrl: https://cdp.cloud.unity.cn/config
|
|
||||||
m_TestInitMode: 0
|
m_TestInitMode: 0
|
||||||
CrashReportingSettings:
|
CrashReportingSettings:
|
||||||
m_EventUrl: https://perf-events.cloud.unity3d.com
|
m_EventUrl: https://perf-events.cloud.unity3d.com
|
||||||
|
|
@ -25,7 +22,6 @@ UnityConnectSettings:
|
||||||
m_Enabled: 0
|
m_Enabled: 0
|
||||||
m_TestMode: 0
|
m_TestMode: 0
|
||||||
m_InitializeOnStartup: 1
|
m_InitializeOnStartup: 1
|
||||||
m_PackageRequiringCoreStatsPresent: 0
|
|
||||||
UnityAdsSettings:
|
UnityAdsSettings:
|
||||||
m_Enabled: 0
|
m_Enabled: 0
|
||||||
m_InitializeOnStartup: 1
|
m_InitializeOnStartup: 1
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ VFXManager:
|
||||||
m_IndirectShader: {fileID: 0}
|
m_IndirectShader: {fileID: 0}
|
||||||
m_CopyBufferShader: {fileID: 0}
|
m_CopyBufferShader: {fileID: 0}
|
||||||
m_SortShader: {fileID: 0}
|
m_SortShader: {fileID: 0}
|
||||||
m_StripUpdateShader: {fileID: 0}
|
|
||||||
m_RenderPipeSettingsPath:
|
m_RenderPipeSettingsPath:
|
||||||
m_FixedTimeStep: 0.016666668
|
m_FixedTimeStep: 0.016666668
|
||||||
m_MaxDeltaTime: 0.05
|
m_MaxDeltaTime: 0.05
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue