From 727aaa84c762cb3a6f8552aefa483449c58ccd77 Mon Sep 17 00:00:00 2001 From: xhxy <2290327506@qq.com> Date: Fri, 18 Apr 2025 21:05:56 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=93=E5=AD=98=E6=B1=A0=EF=BC=8C=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1=E6=B1=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Resources/Test.meta | 8 ++ Assets/Resources/Test/Cube.prefab | 120 +++++++++++++++++ Assets/Resources/Test/Cube.prefab.meta | 7 + Assets/Resources/Test/Sphere.prefab | 120 +++++++++++++++++ Assets/Resources/Test/Sphere.prefab.meta | 7 + Assets/Scenes/SampleScene.unity | 109 ++------------- .../Scripts/ProjectBase/Base/BaseManager.cs | 4 +- Assets/Scripts/ProjectBase/Pool.meta | 8 ++ Assets/Scripts/ProjectBase/Pool/PoolMgr.cs | 124 ++++++++++++++++++ .../Scripts/ProjectBase/Pool/PoolMgr.cs.meta | 11 ++ Assets/Scripts/ProjectBase/Test.meta | 8 ++ Assets/Scripts/ProjectBase/Test/DelayPush.cs | 18 +++ .../ProjectBase/Test/DelayPush.cs.meta | 11 ++ Assets/Scripts/ProjectBase/Test/Test.cs | 27 ++++ Assets/Scripts/ProjectBase/Test/Test.cs.meta | 11 ++ 15 files changed, 490 insertions(+), 103 deletions(-) create mode 100644 Assets/Resources/Test.meta create mode 100644 Assets/Resources/Test/Cube.prefab create mode 100644 Assets/Resources/Test/Cube.prefab.meta create mode 100644 Assets/Resources/Test/Sphere.prefab create mode 100644 Assets/Resources/Test/Sphere.prefab.meta create mode 100644 Assets/Scripts/ProjectBase/Pool.meta create mode 100644 Assets/Scripts/ProjectBase/Pool/PoolMgr.cs create mode 100644 Assets/Scripts/ProjectBase/Pool/PoolMgr.cs.meta create mode 100644 Assets/Scripts/ProjectBase/Test.meta create mode 100644 Assets/Scripts/ProjectBase/Test/DelayPush.cs create mode 100644 Assets/Scripts/ProjectBase/Test/DelayPush.cs.meta create mode 100644 Assets/Scripts/ProjectBase/Test/Test.cs create mode 100644 Assets/Scripts/ProjectBase/Test/Test.cs.meta diff --git a/Assets/Resources/Test.meta b/Assets/Resources/Test.meta new file mode 100644 index 0000000..c2cdfce --- /dev/null +++ b/Assets/Resources/Test.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2a4554db6704691468c181ba50cde616 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Test/Cube.prefab b/Assets/Resources/Test/Cube.prefab new file mode 100644 index 0000000..3609d29 --- /dev/null +++ b/Assets/Resources/Test/Cube.prefab @@ -0,0 +1,120 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3745365020364595915 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6846671888371562852} + - component: {fileID: 5386145536854870642} + - component: {fileID: 6173703461521437790} + - component: {fileID: 2156563236362577603} + - component: {fileID: 1755663280784711616} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6846671888371562852 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3745365020364595915} + 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!33 &5386145536854870642 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3745365020364595915} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &6173703461521437790 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3745365020364595915} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, 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: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &2156563236362577603 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3745365020364595915} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &1755663280784711616 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3745365020364595915} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 278639fb612259b4890f4f8615f9305f, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Resources/Test/Cube.prefab.meta b/Assets/Resources/Test/Cube.prefab.meta new file mode 100644 index 0000000..5ab7945 --- /dev/null +++ b/Assets/Resources/Test/Cube.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 92f61be7ebaaad846b9f6bccb9116b8e +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Test/Sphere.prefab b/Assets/Resources/Test/Sphere.prefab new file mode 100644 index 0000000..5583edd --- /dev/null +++ b/Assets/Resources/Test/Sphere.prefab @@ -0,0 +1,120 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2896970826666268837 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3209633258804948248} + - component: {fileID: 160228697884726836} + - component: {fileID: 2849833683752217766} + - component: {fileID: 3455878364573107052} + - component: {fileID: 4902373372134478928} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3209633258804948248 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2896970826666268837} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 3, 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!33 &160228697884726836 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2896970826666268837} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &2849833683752217766 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2896970826666268837} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, 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: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!135 &3455878364573107052 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2896970826666268837} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &4902373372134478928 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2896970826666268837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 278639fb612259b4890f4f8615f9305f, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Resources/Test/Sphere.prefab.meta b/Assets/Resources/Test/Sphere.prefab.meta new file mode 100644 index 0000000..d81eb18 --- /dev/null +++ b/Assets/Resources/Test/Sphere.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b6f2389b18f8a6b4188f54d1a22d8d50 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 7ece43e..5f3d9c2 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -227,6 +227,7 @@ GameObject: - component: {fileID: 963194228} - component: {fileID: 963194227} - component: {fileID: 963194226} + - component: {fileID: 963194229} m_Layer: 0 m_Name: Main Camera m_TagString: MainCamera @@ -308,115 +309,21 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1115415508 -GameObject: +--- !u!114 &963194229 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1115415512} - - component: {fileID: 1115415511} - - component: {fileID: 1115415510} - - component: {fileID: 1115415509} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!65 &1115415509 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1115415508} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 + m_GameObject: {fileID: 963194225} m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &1115415510 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1115415508} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10303, 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: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1115415511 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1115415508} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1115415512 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1115415508} - 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} + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 93b431bb64dc18f4791c8adfd597c6ae, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 m_Roots: - {fileID: 963194228} - {fileID: 705507995} - - {fileID: 1115415512} diff --git a/Assets/Scripts/ProjectBase/Base/BaseManager.cs b/Assets/Scripts/ProjectBase/Base/BaseManager.cs index c0747a4..23a7831 100644 --- a/Assets/Scripts/ProjectBase/Base/BaseManager.cs +++ b/Assets/Scripts/ProjectBase/Base/BaseManager.cs @@ -18,10 +18,10 @@ public class BaseManager where T:new()// } } - +/* public class Gam : BaseManager { } - +*/ diff --git a/Assets/Scripts/ProjectBase/Pool.meta b/Assets/Scripts/ProjectBase/Pool.meta new file mode 100644 index 0000000..71e245d --- /dev/null +++ b/Assets/Scripts/ProjectBase/Pool.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e0e6782b08226b9448fbdb586432a873 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ProjectBase/Pool/PoolMgr.cs b/Assets/Scripts/ProjectBase/Pool/PoolMgr.cs new file mode 100644 index 0000000..de83e62 --- /dev/null +++ b/Assets/Scripts/ProjectBase/Pool/PoolMgr.cs @@ -0,0 +1,124 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +/// +/// 池子里的一列容器 +/// +public class poolData +{ + //容器对象挂载的父节点 + public GameObject fatherObj; + //对象的容器 + public List poolList; + + //构造函数 + public poolData(GameObject obj,GameObject poolObj) + { + //给我们的容器创建一个父对象,并且把他作为我们pool对象的子物体 + fatherObj = new GameObject(obj.name); + fatherObj.transform.parent = poolObj.transform; + + poolList = new List() { obj }; + PushObj(obj); + } + + /// + /// 往容器里面压东西 + /// + /// + public void PushObj(GameObject obj) + { + //失活隐藏 + obj.SetActive(false); + //存起来 + poolList.Add(obj); + //设置父对象 + obj.transform.parent = fatherObj.transform; + } + + /// + /// 从容器里面取东西 + /// + /// + public GameObject GetObj() + { + GameObject obj = null; + //取出第一个 + obj = poolList[0]; + poolList.RemoveAt(0); + //激活显示 + obj.SetActive(true); + //断开父对象 + obj.transform.parent = null; + return obj; + } +} + +//缓存池模块,对象池 +//Dictionary List 字典 链表 +//GameObject和Resources两个公共类的API +public class PoolMgr :BaseManager +{ + //缓存池容器 + public Dictionary poolDic = new Dictionary(); + + private GameObject poolObj; + + /// + /// 往外拿东西 + /// + /// + /// + public GameObject GetObj(string name) + { + GameObject obj = null; + //有容器,且容器有物品,可以拿 + if(poolDic.ContainsKey(name) && poolDic[name].poolList.Count > 0) + { + obj = poolDic[name].GetObj(); + } + + else + { + obj = GameObject.Instantiate(Resources.Load(name)); + //把对面名字改得和池子的名字一样 + obj.name = name; + } + + return obj; + } + + /// + /// 还回去 + /// + public void PushObj(string name, GameObject obj) + { + if (poolObj == null) + { + poolObj = new GameObject("Pool"); + } + + //里面有容器 + if (poolDic.ContainsKey(name)) + { + poolDic[name].PushObj(obj); + } + //里面没有容器 + else + { + //加一个list直接加个物品进去 + poolDic.Add(name, new poolData(obj,poolObj)); + } + } + + /// + /// 清空缓存池,主要用在场景切换时 + /// + public void Clear() + { + poolDic.Clear(); + poolObj = null; + } +} + diff --git a/Assets/Scripts/ProjectBase/Pool/PoolMgr.cs.meta b/Assets/Scripts/ProjectBase/Pool/PoolMgr.cs.meta new file mode 100644 index 0000000..b16a11e --- /dev/null +++ b/Assets/Scripts/ProjectBase/Pool/PoolMgr.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6e709553f13143c469ce8ca3a9a7688b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ProjectBase/Test.meta b/Assets/Scripts/ProjectBase/Test.meta new file mode 100644 index 0000000..51e8447 --- /dev/null +++ b/Assets/Scripts/ProjectBase/Test.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 82e6c96177154844b9834e2f0169493d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ProjectBase/Test/DelayPush.cs b/Assets/Scripts/ProjectBase/Test/DelayPush.cs new file mode 100644 index 0000000..e754701 --- /dev/null +++ b/Assets/Scripts/ProjectBase/Test/DelayPush.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class DelayPush : MonoBehaviour +{ + // 对象激活时 + void OnEnable() + { + Invoke("Push", 1); + } + + + void Push() + { + PoolMgr.GetInstance().PushObj(this.gameObject.name, this.gameObject); + } +} diff --git a/Assets/Scripts/ProjectBase/Test/DelayPush.cs.meta b/Assets/Scripts/ProjectBase/Test/DelayPush.cs.meta new file mode 100644 index 0000000..a7e4ed3 --- /dev/null +++ b/Assets/Scripts/ProjectBase/Test/DelayPush.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 278639fb612259b4890f4f8615f9305f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ProjectBase/Test/Test.cs b/Assets/Scripts/ProjectBase/Test/Test.cs new file mode 100644 index 0000000..509bc0f --- /dev/null +++ b/Assets/Scripts/ProjectBase/Test/Test.cs @@ -0,0 +1,27 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Test : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + if(Input.GetMouseButtonDown(0)) + { + PoolMgr.GetInstance().GetObj("Test/Cube"); + } + + if (Input.GetMouseButtonDown(1)) + { + PoolMgr.GetInstance().GetObj("Test/Sphere"); + } + + } +} diff --git a/Assets/Scripts/ProjectBase/Test/Test.cs.meta b/Assets/Scripts/ProjectBase/Test/Test.cs.meta new file mode 100644 index 0000000..3f2b85c --- /dev/null +++ b/Assets/Scripts/ProjectBase/Test/Test.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 93b431bb64dc18f4791c8adfd597c6ae +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: