Ejemplo n.º 1
0
    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();
    }
Ejemplo n.º 2
0
        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);
                    }
                }
            }
        }