private void Spawn(int modelId) { ModelSpawnData msData = modelSpawnData[modelId]; if (msData.spawnedObject != null) { if (msData.shouldRespawn) { Despawn(modelId); } else { return; } } GameObject modelObject = GetModel(modelId); if (modelObject == null) { return; } msData.spawnedObject = modelObject; msData.spawnedObject.transform.localPosition += msData.localPositionOffset; msData.spawnedObject.transform.Rotate(msData.localRotationOffset, Space.Self); msData.shouldRespawn = false; onSpawnEvent?.Invoke(); }
private void OnGUI() { GUILayout.Label("Main Settings", EditorStyles.boldLabel); ConfigProject = (ConfigProjectData)EditorGUILayout.ObjectField("Configuration", ConfigProject, typeof(ConfigProjectData), true); if (ConfigProject != null) { ConfigProject.LimitFpsSecurity = EditorGUILayout.IntSlider("Limit FPS", ConfigProject.LimitFpsSecurity, 0, 60); ConfigProject.MaxSpawn = EditorGUILayout.IntSlider("Max spawn", ConfigProject.MaxSpawn, 0, 50000); ConfigProject.MaxSpawnPerFrame = EditorGUILayout.IntSlider("Max spawn per frame", ConfigProject.MaxSpawnPerFrame, 0, 1000); ConfigProject.MaxHeightSpawn = EditorGUILayout.IntSlider("Max Height per spawn", ConfigProject.MaxHeightSpawn, 0, 50); } // Separator GUILayout.Space(10f); GUILayout.Label("", GUI.skin.horizontalSlider); GUILayout.Label("Spawn Settings", EditorStyles.boldLabel); SpawnData = (ModelSpawnData)EditorGUILayout.ObjectField("Model", SpawnData, typeof(ModelSpawnData), true); GUILayout.Space(10f); if (GUILayout.Button("Reset loaded model data")) { if (SpawnData != null) { SpawnData.TotalToSpawn = 0; SpawnData.HeightMaxSpawn = 0; SpawnData.TotalToSpawnPerFrame = 1; } } // Separator GUILayout.Space(10f); GUILayout.Label("", GUI.skin.horizontalSlider); GUILayout.Label("Scene Settings", EditorStyles.boldLabel); if (GUILayout.Button("Clean Scene")) { var gameObjects = FindObjectsOfType <GameObject>(); foreach (var go in gameObjects) { if (go.name.Contains("Clone")) { DestroyImmediate(go); } } } }