Some tweaks to pooling editor

This commit is contained in:
VladimirPirozhenko 2022-09-12 22:23:18 +03:00
parent d3747cd60e
commit d9931e379b
28 changed files with 781 additions and 336 deletions

8
Assets/Cubemaps.meta Normal file
View File

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

View File

@ -1,108 +0,0 @@
fileFormatVersion: 2
guid: 44334f10651a6b949aa54d1ab90b321d
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 2
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 0
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 2
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 2
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 2
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,6 +1,6 @@
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!1 &5750222509257206156 --- !u!1 &585344636160116149
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
@ -8,43 +8,41 @@ GameObject:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 5750222509257206154} - component: {fileID: 3083513290491299677}
- component: {fileID: 5750222509257206155} - component: {fileID: 6339711165433259600}
m_Layer: 0 m_Layer: 0
m_Name: ChunkPool m_Name: LaserBeamObstaclePool 1
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!4 &5750222509257206154 --- !u!4 &3083513290491299677
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5750222509257206156} m_GameObject: {fileID: 585344636160116149}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -500.42767, y: -332.09, z: 1.6611246} m_LocalPosition: {x: 0, y: 0, z: 0}
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: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &5750222509257206155 --- !u!114 &6339711165433259600
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5750222509257206156} m_GameObject: {fileID: 585344636160116149}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 506813849e0819640b461c8c8c8331b9, type: 3} m_Script: {fileID: 11500000, guid: 1290664e863a3d34596917f255587b4c, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
capacity: 30 capacity: 20
isActiveByDefault: 1 prefab: {fileID: 6716018880928220119, guid: aa7da947970bb714fa7924d204fe2bdd, type: 3}
prefab: {fileID: 7423857566743054097, guid: 9b90fe6584244f945a5cf4bfffd577c7, type: 3}
spawner: {fileID: 0}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 571635df616d74341b2a578193524d72 guid: a0972b1f8d1a81746ad547a30b198f54
PrefabImporter: PrefabImporter:
externalObjects: {} externalObjects: {}
userData: userData:

View File

@ -0,0 +1,48 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &5507748125980828843
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8976795358065207428}
- component: {fileID: 2098471787973801869}
m_Layer: 0
m_Name: LaserBeamObstaclePool 2
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8976795358065207428
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5507748125980828843}
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_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &2098471787973801869
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5507748125980828843}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1290664e863a3d34596917f255587b4c, type: 3}
m_Name:
m_EditorClassIdentifier:
capacity: 20
prefab: {fileID: 6716018880928220119, guid: aa7da947970bb714fa7924d204fe2bdd, type: 3}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 8c88aa0a0d5b07e46910234cd4bef4bc
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,48 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &4803265322953328668
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3542107874089306634}
- component: {fileID: 3465773835329670599}
m_Layer: 0
m_Name: LaserBeamObstaclePool 3
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3542107874089306634
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4803265322953328668}
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_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &3465773835329670599
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4803265322953328668}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1290664e863a3d34596917f255587b4c, type: 3}
m_Name:
m_EditorClassIdentifier:
capacity: 20
prefab: {fileID: 6716018880928220119, guid: aa7da947970bb714fa7924d204fe2bdd, type: 3}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: a7077da5b69125c45adc6449698483fc
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,48 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &3346759873106221450
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8468678166670126995}
- component: {fileID: 5698352118940698158}
m_Layer: 0
m_Name: LaserBeamObstaclePool 4
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8468678166670126995
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3346759873106221450}
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_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &5698352118940698158
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3346759873106221450}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1290664e863a3d34596917f255587b4c, type: 3}
m_Name:
m_EditorClassIdentifier:
capacity: 20
prefab: {fileID: 6716018880928220119, guid: aa7da947970bb714fa7924d204fe2bdd, type: 3}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 5afc8b717c5462c48a307b8ba7cbd765
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,48 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &4639692601297554770
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7847063947029774805}
- component: {fileID: 5708947234510644779}
m_Layer: 0
m_Name: LaserBeamObstaclePool 5
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7847063947029774805
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4639692601297554770}
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_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &5708947234510644779
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4639692601297554770}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1290664e863a3d34596917f255587b4c, type: 3}
m_Name:
m_EditorClassIdentifier:
capacity: 20
prefab: {fileID: 6716018880928220119, guid: aa7da947970bb714fa7924d204fe2bdd, type: 3}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: a0ffa956811e5c649ab03516d62a7413
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,48 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &8330748080743058699
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1846536169624790917}
- component: {fileID: 8283761833655993215}
m_Layer: 0
m_Name: LaserBeamObstaclePool 6
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1846536169624790917
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8330748080743058699}
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_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &8283761833655993215
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8330748080743058699}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1290664e863a3d34596917f255587b4c, type: 3}
m_Name:
m_EditorClassIdentifier:
capacity: 20
prefab: {fileID: 6716018880928220119, guid: aa7da947970bb714fa7924d204fe2bdd, type: 3}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e4c19f25b0940ac4ab3f65cefa81b863
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,48 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &481475307597556439
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4175434790897723924}
- component: {fileID: 1495655233091554591}
m_Layer: 0
m_Name: LaserBeamObstaclePool 7
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4175434790897723924
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 481475307597556439}
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_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1495655233091554591
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 481475307597556439}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1290664e863a3d34596917f255587b4c, type: 3}
m_Name:
m_EditorClassIdentifier:
capacity: 20
prefab: {fileID: 6716018880928220119, guid: aa7da947970bb714fa7924d204fe2bdd, type: 3}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 87eb04d9e4423d64b983d41b8015f4fc
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -14,7 +14,7 @@ OcclusionCullingSettings:
RenderSettings: RenderSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 9 serializedVersion: 9
m_Fog: 1 m_Fog: 0
m_FogColor: {r: 0.09803922, g: 0.9372549, b: 1, a: 1} m_FogColor: {r: 0.09803922, g: 0.9372549, b: 1, a: 1}
m_FogMode: 2 m_FogMode: 2
m_FogDensity: 0.003 m_FogDensity: 0.003
@ -26,7 +26,7 @@ RenderSettings:
m_AmbientIntensity: 1 m_AmbientIntensity: 1
m_AmbientMode: 0 m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.15930934, g: 0.16762157, b: 0.18867922, a: 1} m_SubtractiveShadowColor: {r: 0.15930934, g: 0.16762157, b: 0.18867922, a: 1}
m_SkyboxMaterial: {fileID: 2100000, guid: 6e182f8ba45b96f42a647eb6185acf5f, type: 2} m_SkyboxMaterial: {fileID: 2100000, guid: 4ae0c091059376f428ab6a949356507b, type: 2}
m_HaloStrength: 0.5 m_HaloStrength: 0.5
m_FlareStrength: 1 m_FlareStrength: 1
m_FlareFadeSpeed: 3 m_FlareFadeSpeed: 3
@ -36,7 +36,7 @@ RenderSettings:
m_DefaultReflectionResolution: 64 m_DefaultReflectionResolution: 64
m_ReflectionBounces: 1 m_ReflectionBounces: 1
m_ReflectionIntensity: 1 m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0} m_CustomReflection: {fileID: 8900000, guid: 73353a1df0cbbda4eb65a7f51fff31e6, type: 3}
m_Sun: {fileID: 654164605} m_Sun: {fileID: 654164605}
m_IndirectSpecularColor: {r: 0.4465829, g: 0.49641728, b: 0.57482105, a: 1} m_IndirectSpecularColor: {r: 0.4465829, g: 0.49641728, b: 0.57482105, a: 1}
m_UseRadianceAmbientProbe: 0 m_UseRadianceAmbientProbe: 0
@ -70,7 +70,7 @@ LightmapSettings:
m_FinalGather: 0 m_FinalGather: 0
m_FinalGatherFiltering: 1 m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256 m_FinalGatherRayCount: 256
m_ReflectionCompression: 2 m_ReflectionCompression: 1
m_MixedBakeMode: 2 m_MixedBakeMode: 2
m_BakeBackend: 1 m_BakeBackend: 1
m_PVRSampling: 1 m_PVRSampling: 1
@ -634,6 +634,63 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -20, y: -20} m_SizeDelta: {x: -20, y: -20}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!1001 &206286301
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 5613211205116686397, guid: 34904f79b191b1a4bb6db52985c8c960, type: 3}
propertyPath: m_Name
value: Corridor_I
objectReference: {fileID: 0}
- target: {fileID: 5613211205117028343, guid: 34904f79b191b1a4bb6db52985c8c960, type: 3}
propertyPath: m_RootOrder
value: 11
objectReference: {fileID: 0}
- target: {fileID: 5613211205117028343, guid: 34904f79b191b1a4bb6db52985c8c960, type: 3}
propertyPath: m_LocalPosition.x
value: -2
objectReference: {fileID: 0}
- target: {fileID: 5613211205117028343, guid: 34904f79b191b1a4bb6db52985c8c960, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5613211205117028343, guid: 34904f79b191b1a4bb6db52985c8c960, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5613211205117028343, guid: 34904f79b191b1a4bb6db52985c8c960, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5613211205117028343, guid: 34904f79b191b1a4bb6db52985c8c960, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5613211205117028343, guid: 34904f79b191b1a4bb6db52985c8c960, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5613211205117028343, guid: 34904f79b191b1a4bb6db52985c8c960, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5613211205117028343, guid: 34904f79b191b1a4bb6db52985c8c960, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5613211205117028343, guid: 34904f79b191b1a4bb6db52985c8c960, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5613211205117028343, guid: 34904f79b191b1a4bb6db52985c8c960, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 34904f79b191b1a4bb6db52985c8c960, type: 3}
--- !u!1 &214096428 --- !u!1 &214096428
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -953,6 +1010,37 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 377940177} m_GameObject: {fileID: 377940177}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &517424157
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 517424158}
m_Layer: 0
m_Name: Chunk
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &517424158
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 517424157}
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_RootOrder: 20
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &552140504 --- !u!1 &552140504
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1005,6 +1093,37 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
fpsText: {fileID: 772101543} fpsText: {fileID: 772101543}
pollingTime: 1 pollingTime: 1
--- !u!1 &590113656
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 590113657}
m_Layer: 0
m_Name: StraightChunkPool
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &590113657
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 590113656}
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_RootOrder: 19
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &634835457 --- !u!1 &634835457
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1161,6 +1280,37 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 5c5f5b343424dcf418dec07a24e1e6bd, type: 3} m_Script: {fileID: 11500000, guid: 5c5f5b343424dcf418dec07a24e1e6bd, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
--- !u!1 &743619605
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 743619606}
m_Layer: 0
m_Name: StraightChunkPool
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &743619606
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 743619605}
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_RootOrder: 18
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &772101541 --- !u!1 &772101541
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1296,6 +1446,37 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 772101541} m_GameObject: {fileID: 772101541}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &795270190
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 795270191}
m_Layer: 0
m_Name: StraightChunkPool
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &795270191
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 795270190}
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_RootOrder: 17
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &812835467 --- !u!1 &812835467
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1522,6 +1703,37 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 839969254} m_GameObject: {fileID: 839969254}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &842825375
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 842825376}
m_Layer: 0
m_Name: StraightChunkPool
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &842825376
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 842825375}
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_RootOrder: 14
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &868437928 --- !u!1 &868437928
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1983,6 +2195,9 @@ MonoBehaviour:
shader: {fileID: 4800000, guid: f195745088c68f5499f7d18150f0068e, type: 3} shader: {fileID: 4800000, guid: f195745088c68f5499f7d18150f0068e, type: 3}
_nearColor: {r: 0.6509434, g: 0.56804025, b: 0.56804025, a: 0} _nearColor: {r: 0.6509434, g: 0.56804025, b: 0.56804025, a: 0}
_farColor: {r: 0.6509804, g: 0.5686275, b: 0.5686275, a: 0} _farColor: {r: 0.6509804, g: 0.5686275, b: 0.5686275, a: 0}
_nearValue: 200
_farValue: 400
_density: 0
--- !u!1 &1055376730 --- !u!1 &1055376730
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -2019,10 +2234,10 @@ RectTransform:
m_Father: {fileID: 1856934115903457217} m_Father: {fileID: 1856934115903457217}
m_RootOrder: 1 m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0.5, y: 1}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: 0.0010986328, y: 0} m_AnchoredPosition: {x: 0.00680542, y: -200}
m_SizeDelta: {x: -600.2201, y: 0} m_SizeDelta: {x: 436.6172, y: 400}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1055376732 --- !u!114 &1055376732
MonoBehaviour: MonoBehaviour:
@ -2141,6 +2356,37 @@ MonoBehaviour:
- {fileID: 4230759379826572186} - {fileID: 4230759379826572186}
- {fileID: 3994382559241916552} - {fileID: 3994382559241916552}
- {fileID: 7328150211815643165} - {fileID: 7328150211815643165}
--- !u!1 &1168898608
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1168898609}
m_Layer: 0
m_Name: StraightChunkPool
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1168898609
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1168898608}
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_RootOrder: 13
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1176782783 --- !u!1 &1176782783
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -2176,6 +2422,37 @@ Transform:
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 5 m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1214900649
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1214900650}
m_Layer: 0
m_Name: StraightChunkPool
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1214900650
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1214900649}
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_RootOrder: 12
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1237272500 --- !u!1 &1237272500
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -2895,6 +3172,37 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1824469385} m_GameObject: {fileID: 1824469385}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &1835795560
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1835795561}
m_Layer: 0
m_Name: StraightChunkPool
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1835795561
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1835795560}
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_RootOrder: 16
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1858832244 --- !u!1 &1858832244
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -3168,6 +3476,37 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1899410411} m_GameObject: {fileID: 1899410411}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &1902740354
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1902740355}
m_Layer: 0
m_Name: StraightChunkPool
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1902740355
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1902740354}
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_RootOrder: 15
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &2033098990 --- !u!1 &2033098990
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -3521,10 +3860,10 @@ RectTransform:
m_Father: {fileID: 1856934115903457217} m_Father: {fileID: 1856934115903457217}
m_RootOrder: 2 m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0.5, y: 1}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 0.5, y: 1}
m_AnchoredPosition: {x: -0.00012207031, y: 2.5} m_AnchoredPosition: {x: -0.00012207031, y: -197.5}
m_SizeDelta: {x: -18.56, y: -104.99999} m_SizeDelta: {x: 819.44, y: 295}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &3169046467461798359 --- !u!1 &3169046467461798359
GameObject: GameObject:
@ -3975,7 +4314,6 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
capacity: 10 capacity: 10
prefab: {fileID: 7423857566743054097, guid: 9b90fe6584244f945a5cf4bfffd577c7, type: 3} prefab: {fileID: 7423857566743054097, guid: 9b90fe6584244f945a5cf4bfffd577c7, type: 3}
spawner: {fileID: 1872880027}
--- !u!1001 &6634832997626976595 --- !u!1001 &6634832997626976595
PrefabInstance: PrefabInstance:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

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

View File

@ -2,6 +2,8 @@
using System.CodeDom.Compiler; using System.CodeDom.Compiler;
using System.Reflection; using System.Reflection;
using System.IO; using System.IO;
using System;
using System.Collections.Generic;
public class PoolCodeGenerator public class PoolCodeGenerator
{ {
@ -10,8 +12,8 @@ public class PoolCodeGenerator
private string poolNameSpaceName; private string poolNameSpaceName;
private CodeTypeDeclaration targetClass; private CodeTypeDeclaration targetClass;
private string outputFilePath; private string outputFilePath;
public Type generatedClassType { get; private set; }
public PoolCodeGenerator(string outputFilePath, string targetClassName, string poolNameSpaceName, string pooledObjectClassName) public PoolCodeGenerator(string outputFilePath, string targetClassName, string poolNameSpaceName, string pooledObjectClassName,Type pooledObjectClassType)
{ {
this.targetClassName = targetClassName; this.targetClassName = targetClassName;
@ -25,9 +27,32 @@ public class PoolCodeGenerator
targetClass.Name = this.targetClassName; targetClass.Name = this.targetClassName;
targetClass.TypeAttributes = targetClass.TypeAttributes =
TypeAttributes.Public| TypeAttributes.Sealed; TypeAttributes.Public| TypeAttributes.Sealed;
Type t = Type.GetType(pooledObjectClassName);
//Assembly assem = poolingObjectType.Assembly;
//string poolName = $"{target.name}Pool";
//Type poolType = assem.GetType($"{targetClassName}");
var typeHierarchy = pooledObjectClassType.GetClassHierarchy();
var linkedTypeHierarchy = new LinkedList<Type>(typeHierarchy);
Type baseClass = null;
Type baseClassChild = null;
foreach (var type in typeHierarchy)
{
if (type.ToString() == "UnityEngine.MonoBehaviour")
{
var baseNode = linkedTypeHierarchy.Find(type);
baseClass = baseNode.Previous.Value;
var baseNodeChild = linkedTypeHierarchy.Find(baseClass);
baseClassChild = baseNodeChild.Previous.Value;
}
}
//poolNamespace.Types.Add(targetClass);
targetClass.Name = baseClassChild.ToString() + "Pool";
this.outputFilePath = outputFilePath + targetClass.Name + ".cs";
poolNamespace.Types.Add(targetClass); poolNamespace.Types.Add(targetClass);
targetUnit.Namespaces.Add(poolNamespace); targetUnit.Namespaces.Add(poolNamespace);
targetClass.BaseTypes.Add(new CodeTypeReference("BasePool",new CodeTypeReference(pooledObjectClassName)));//Add("BasePool"); targetClass.BaseTypes.Add(new CodeTypeReference("BasePool",new CodeTypeReference(baseClassChild.ToString())));//Add("BasePool");
generatedClassType = baseClassChild;
} }

View File

@ -1,93 +0,0 @@
using System;
using System.Collections;
using System.IO;
using System.Reflection;
using UnityEditor;
using UnityEngine;
public class PoolCreator
{
private string targetClassName;
private string poolNamespaceName;
//private bool pendingToGeneration = false;
private int poolCapacity = 10;
private GameObject poolingObject;
//private void OnEnable()
//{
// AssemblyReloadEvents.afterAssemblyReload += GeneratePoolPrefab;
//}
//private void OnDisable()
//{
// AssemblyReloadEvents.afterAssemblyReload -= GeneratePoolPrefab;
//}
public PoolCreator(GameObject poolingObject,int poolCapacity, string poolNamespaceName)
{
this.poolingObject = poolingObject;
this.poolCapacity = poolCapacity;
this.poolNamespaceName = poolNamespaceName;
GeneratePoolScript();
}
public void GeneratePoolScript()
{
string poolObjectName = poolingObject.GetType().Name;
string targetClassName = poolObjectName + "Pool";
this.targetClassName = targetClassName;
PoolCodeGenerator generator = new PoolCodeGenerator($"{Application.dataPath}/Scripts/Road/Pools/{targetClassName}.cs", targetClassName, poolNamespaceName, poolObjectName); //$"{targetClassName}.cs"
var relativePath = $"Assets/Scripts/Road/Pools/{targetClassName}.cs";
generator.GenerateCSharpCode();
AssetDatabase.ImportAsset(relativePath);
AssetDatabase.Refresh();
EditorUtility.RequestScriptReload();
AssetDatabase.SaveAssets();
// pendingToGeneration = true;
}
public void GeneratePoolPrefab()
{
GameObject poolObject = new GameObject(targetClassName);
Type poolingObjectType = poolingObject.GetType();
Assembly assem = poolingObjectType.Assembly;
string poolName = $"{poolingObject.name}Pool";
Type poolType = assem.GetType($"{poolNamespaceName}.{targetClassName}");
//Type genericClass = typeof(BasePool<>);
//Type constructedClass = genericClass.MakeGenericType(poolingObjectType);
poolObject.AddComponent(poolType);
poolObject.name = poolName;
Type typeOfField = poolType;
FieldInfo fieldInfo = null;
while (fieldInfo == null && typeOfField != null)
{
fieldInfo = typeOfField.GetField("prefab", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
typeOfField = typeOfField.BaseType;
}
if (fieldInfo == null) throw new ArgumentOutOfRangeException("Prefab", string.Format("Field {0} was not found in Type {1}", "prefab", typeOfField.FullName));
var poolingObjectComponent = poolObject.GetComponent(poolType);
fieldInfo.SetValue(poolingObjectComponent, poolingObject);
Type capacityType = poolType;
//if (capacityType.GetProperty("Capacity", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance) == null)
// throw new ArgumentOutOfRangeException("Capacity", string.Format("Property {0} was not found in Type {1}", "Capacity", obj.GetType().FullName));
//capacityType.InvokeMember("Capacity", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.SetProperty | BindingFlags.Instance, null, obj, new object[] { 10 });
PropertyInfo propertyInfo = capacityType.BaseType.GetProperty("Capacity", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
propertyInfo.SetValue(poolingObjectComponent, poolCapacity, BindingFlags.NonPublic | BindingFlags.Instance, null, null, null);
if (!Directory.Exists("Assets/Prefabs/Pools"))
AssetDatabase.CreateFolder("Assets/Prefabs", "Pools");
string localPath = "Assets/Prefabs/Pools/" + poolName + ".prefab";
localPath = AssetDatabase.GenerateUniqueAssetPath(localPath);
bool prefabSuccess;
PrefabUtility.SaveAsPrefabAssetAndConnect(poolObject, localPath, InteractionMode.UserAction, out prefabSuccess);
if (prefabSuccess == true)
Debug.Log("Prefab was saved successfully");
else
Debug.Log("Prefab failed to save" + prefabSuccess);
Debug.Log("Done");
}
}

View File

@ -20,6 +20,9 @@ public class PoolCreatorInspector : Editor
private const string defaultScriptPath = "Scripts/Pools"; private const string defaultScriptPath = "Scripts/Pools";
private string generatedScriptPath = "Scripts/Pools"; private string generatedScriptPath = "Scripts/Pools";
private const string assetsString = "Assets/"; private const string assetsString = "Assets/";
private string generatedClassTypeString;
private Type generatedClassType;
PoolCodeGenerator generator;
private void OnEnable() private void OnEnable()
{ {
AssemblyReloadEvents.afterAssemblyReload += GeneratePoolPrefab; AssemblyReloadEvents.afterAssemblyReload += GeneratePoolPrefab;
@ -83,8 +86,9 @@ public class PoolCreatorInspector : Editor
} }
generatedScriptPath = TrimFilePathBeforeSeparator(generatedScriptPath, assetsString); generatedScriptPath = TrimFilePathBeforeSeparator(generatedScriptPath, assetsString);
if (!Directory.Exists($"{Application.dataPath}/{generatedScriptPath}")) if (!Directory.Exists($"{Application.dataPath}/{generatedScriptPath}"))
Directory.CreateDirectory($"{Application.dataPath}/{generatedScriptPath}"); Directory.CreateDirectory($"{Application.dataPath}/{generatedScriptPath}");//{targetClassName}.cs
PoolCodeGenerator generator = new PoolCodeGenerator($"{Application.dataPath}/{generatedScriptPath}/{targetClassName}.cs", targetClassName, poolNamespaceName, poolObjectName); generator = new PoolCodeGenerator($"{Application.dataPath}/{generatedScriptPath}/", targetClassName, poolNamespaceName, poolObjectName,target.GetType());
//var relativePath = $"{Application.dataPath}/{generatedScriptPath}/{targetClassName}.cs"; //var relativePath = $"{Application.dataPath}/{generatedScriptPath}/{targetClassName}.cs";
generator.GenerateCSharpCode(); generator.GenerateCSharpCode();
// AssetDatabase.ImportAsset(relativePath); // AssetDatabase.ImportAsset(relativePath);
@ -92,6 +96,7 @@ public class PoolCreatorInspector : Editor
EditorUtility.RequestScriptReload(); EditorUtility.RequestScriptReload();
AssetDatabase.SaveAssets(); AssetDatabase.SaveAssets();
pendingToGeneration = true; pendingToGeneration = true;
generatedClassTypeString = generator.generatedClassType.ToString();
GUIUtility.ExitGUI(); GUIUtility.ExitGUI();
} }
EditorGUILayout.EndToggleGroup(); EditorGUILayout.EndToggleGroup();
@ -103,24 +108,31 @@ public class PoolCreatorInspector : Editor
if (pendingToGeneration == false) if (pendingToGeneration == false)
return; return;
pendingToGeneration = false; pendingToGeneration = false;
targetClassName = generatedClassTypeString;
GameObject poolingObject = new GameObject(targetClassName); GameObject poolingObject = new GameObject(targetClassName);
Type poolingObjectType = target.GetType(); Type poolingObjectType = target.GetType().BaseType;//generatedClassType;//
Assembly assem = poolingObjectType.Assembly; Assembly assem = poolingObjectType.Assembly;
string poolName = $"{target.name}Pool";
Type poolType = assem.GetType($"{poolNamespaceName}.{targetClassName}"); targetClassName = poolingObjectType.ToString();
string poolName = $"{targetClassName}Pool";
Type poolType = assem.GetType($"{poolNamespaceName}.{poolName}");
poolingObject.AddComponent(poolType); poolingObject.AddComponent(poolType);
poolingObject.name = poolName; poolingObject.name = poolName;
Type typeOfField = poolType; Type typeOfField = poolType;
FieldInfo fieldInfo = null; FieldInfo fieldInfo = null;
while (fieldInfo == null && typeOfField != null) while (fieldInfo == null && typeOfField != null)
{ {
fieldInfo = typeOfField.GetField("prefab", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); fieldInfo = typeOfField.GetField("prefab", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
typeOfField = typeOfField.BaseType; typeOfField = typeOfField.BaseType;
} }
if (fieldInfo == null) throw new ArgumentOutOfRangeException("Prefab", string.Format("Field {0} was not found in Type {1}", "prefab", typeOfField.FullName));
if (fieldInfo == null)
throw new ArgumentOutOfRangeException("Prefab", string.Format("Field {0} was not found in Type {1}", "prefab", typeOfField.FullName));
var poolingObjectComponent = poolingObject.GetComponent(poolType); var poolingObjectComponent = poolingObject.GetComponent(poolType);
fieldInfo.SetValue(poolingObjectComponent, target); fieldInfo.SetValue(poolingObjectComponent, target);

View File

@ -1,64 +0,0 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using UnityEditor;
using UnityEngine;
public class PoolCreatorWindow : EditorWindow
{
private int poolCapacity = 10;
private GameObject poolingObject;
private PoolCreator creator;
private void OnEnable()
{
AssemblyReloadEvents.afterAssemblyReload += CreatePoolPrefab;
}
private void OnDisable()
{
AssemblyReloadEvents.afterAssemblyReload -= CreatePoolPrefab;
}
[MenuItem("Pooling/PoolCreatorWindow")]
public static void ShowWindow()
{
EditorWindow.GetWindow(typeof(PoolCreatorWindow));
}
void OnGUI()
{
// The actual window code goes here
EditorGUILayout.IntField("Pool Capacity: ", poolCapacity);
//GameObject pObj = EditorGUI.ObjectField(new Rect(3, 3, position.width - 6, 20),
// "Blablabla",
// obj,
// typeof(GameObject));
//poolingObject = EditorGUILayout.ObjectField(poolingObject, typeof(PoolingObject<>), true) as PoolingObject<>;
//Type type;
// foreach (var component in poolingObject.GetComponents(typeof(PoolingObject<>)))
// {
// type = component.GetType();
//Type poolingObjectType = poolingObject.GetType();
// Assembly assem = poolingObjectType.Assembly;
//string poolName = $"{poolingObject.name}Pool";
// Type poolType = assem.GetType("Turret");
//var poolingObjectComponent = poolingObject.GetComponent(poolingObjectType);
if (GUILayout.Button("Create Pool From This Object"))
{
// creator = new PoolCreator(component, poolCapacity, "Pools");
}
// }
}
private void CreatePoolPrefab()
{
if (creator == null)
return;
creator.GeneratePoolPrefab();
}
}

View File

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

View File

@ -0,0 +1,17 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public static class ReflectionExtentions
{
public static IEnumerable<Type> GetClassHierarchy(this Type type)
{
while (type != null)
{
yield return type;
type = type.BaseType;
}
}
}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 5cdbd5dce7522f649bda974218e1e500 guid: 0024fbc4c0a21754188b1b6e01d38b08
MonoImporter: MonoImporter:
externalObjects: {} externalObjects: {}
serializedVersion: 2 serializedVersion: 2

View File

@ -1,4 +1,4 @@
using UnityEngine; using UnityEngine;
public class ChunkPool : BasePool<Chunk> public class ChunkPool : BasePool<Chunk>
{ {
@ -8,7 +8,7 @@ public class ChunkPool : BasePool<Chunk>
{ {
Chunk chunk = base.CreateAction(); Chunk chunk = base.CreateAction();
chunk.Init(spawner); chunk.Init(spawner);
chunk.transform.position = new Vector3(0,0,0); chunk.transform.position = new Vector3(0, 0, 0);
return chunk; return chunk;
} }

View File

@ -1,6 +1,6 @@
using System.Collections; using System.Collections;
using UnityEngine; using UnityEngine;
using Pools;
public class ChunkSpawner : MonoBehaviour // TODO: ISpawner public class ChunkSpawner : MonoBehaviour // TODO: ISpawner
{ {
[SerializeField] private float spawnDelay; [SerializeField] private float spawnDelay;

View File

@ -8,7 +8,7 @@ Material:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_Name: Skybox 1 m_Name: Skybox 1
m_Shader: {fileID: 104, guid: 0000000000000000f000000000000000, type: 0} m_Shader: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0}
m_ValidKeywords: [] m_ValidKeywords: []
m_InvalidKeywords: [] m_InvalidKeywords: []
m_LightmapFlags: 4 m_LightmapFlags: 4
@ -76,6 +76,10 @@ Material:
m_Texture: {fileID: 2800000, guid: 09752448d50082e41bcacbacbe0209fc, type: 3} m_Texture: {fileID: 2800000, guid: 09752448d50082e41bcacbacbe0209fc, type: 3}
m_Scale: {x: 1, y: 1} m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0} m_Offset: {x: 0, y: 0}
- _Tex:
m_Texture: {fileID: 8900000, guid: 73353a1df0cbbda4eb65a7f51fff31e6, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _UpTex: - _UpTex:
m_Texture: {fileID: 2800000, guid: 94b80d922d15ad141b3c9376cdf885e6, type: 3} m_Texture: {fileID: 2800000, guid: 94b80d922d15ad141b3c9376cdf885e6, type: 3}
m_Scale: {x: 1, y: 1} m_Scale: {x: 1, y: 1}
@ -86,7 +90,7 @@ Material:
- _Cutoff: 0.5 - _Cutoff: 0.5
- _DetailNormalMapScale: 1 - _DetailNormalMapScale: 1
- _DstBlend: 0 - _DstBlend: 0
- _Exposure: 1 - _Exposure: 1.59
- _GlossMapScale: 1 - _GlossMapScale: 1
- _Glossiness: 0.5 - _Glossiness: 0.5
- _GlossyReflections: 1 - _GlossyReflections: 1
@ -94,7 +98,7 @@ Material:
- _Mode: 0 - _Mode: 0
- _OcclusionStrength: 1 - _OcclusionStrength: 1
- _Parallax: 0.02 - _Parallax: 0.02
- _Rotation: 0 - _Rotation: 179
- _SmoothnessTextureChannel: 0 - _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1 - _SpecularHighlights: 1
- _SrcBlend: 1 - _SrcBlend: 1