public void SetupRuntimePrefabSystem() { if (!VegetationSystemPro) { return; } DisposeRuntimePrefabSystem(); CreateRuntimePrefabParent(); VisibleVegetationCellSelector = new VisibleVegetationCellSelector(); for (int i = 0; i <= VegetationSystemPro.VegetationPackageProList.Count - 1; i++) { VegetationPackagePro vegetationPackagePro = VegetationSystemPro.VegetationPackageProList[i]; VegetationPackageRuntimePrefabInfo vegetationPackageRuntimePrefabInfo = new VegetationPackageRuntimePrefabInfo(); for (int j = 0; j <= vegetationPackagePro.VegetationInfoList.Count - 1; j++) { VegetationItemInfoPro vegetationItemInfoPro = vegetationPackagePro.VegetationInfoList[j]; VegetationItemRuntimePrefabInfo vegetationItemRuntimePrefabInfo = new VegetationItemRuntimePrefabInfo(); for (int k = 0; k <= vegetationItemInfoPro.RuntimePrefabRuleList.Count - 1; k++) { RuntimePrefabRule runtimePrefabRule = vegetationItemInfoPro.RuntimePrefabRuleList[k]; RuntimePrefabManager runtimePrefabManager = new RuntimePrefabManager(VisibleVegetationCellSelector, VegetationSystemPro, vegetationItemInfoPro, runtimePrefabRule, _runtimePrefabParent, ShowRuntimePrefabs); vegetationItemRuntimePrefabInfo.RuntimePrefabManagerList.Add(runtimePrefabManager); } vegetationPackageRuntimePrefabInfo.RuntimePrefabManagerList.Add(vegetationItemRuntimePrefabInfo); } PackageRuntimePrefabInfoList.Add(vegetationPackageRuntimePrefabInfo); } VisibleVegetationCellSelector.Init(VegetationSystemPro); }
public void SetupColliderSystem() { if (!VegetationSystemPro) { return; } DisposeColliderSystem(); JobHandleList = new NativeList <JobHandle>(64, Allocator.Persistent); CreateColliderParent(); VisibleVegetationCellSelector = new VisibleVegetationCellSelector(); for (int i = 0; i <= VegetationSystemPro.VegetationPackageProList.Count - 1; i++) { VegetationPackagePro vegetationPackagePro = VegetationSystemPro.VegetationPackageProList[i]; VegetationPackageColliderInfo vegetationPackageColliderInfo = new VegetationPackageColliderInfo(); for (int j = 0; j <= vegetationPackagePro.VegetationInfoList.Count - 1; j++) { VegetationItemInfoPro vegetationItemInfoPro = vegetationPackagePro.VegetationInfoList[j]; if (vegetationItemInfoPro.ColliderType != ColliderType.Disabled) { ColliderManager tmpColliderManager = new ColliderManager(VisibleVegetationCellSelector, VegetationSystemPro, vegetationItemInfoPro, _colliderParent, ShowColliders); tmpColliderManager.OnCreateColliderDelegate += OnCreateCollider; tmpColliderManager.OnBeforeDestroyColliderDelegate += OnBeforeDestroyCollider; vegetationPackageColliderInfo.ColliderManagerList.Add(tmpColliderManager); } else { vegetationPackageColliderInfo.ColliderManagerList.Add(null); } } PackageColliderInfoList.Add(vegetationPackageColliderInfo); } VisibleVegetationCellSelector.Init(VegetationSystemPro); }