Ejemplo n.º 1
0
        public static void ApplyPhysics(PhysicsSettings physicsSettings, Transform[] objects, SpawnSettings.AutoSimulationType autoSimulationType)
        {
            PhysicsSimulationGroup physicsSimulation = ScriptableObject.CreateInstance <PhysicsSimulationGroup>();

            physicsSimulation.ApplySettings(physicsSettings);

            if (autoSimulationType == SpawnSettings.AutoSimulationType.Continuous)
            {
                physicsSimulation.StartSimulation(objects);

                PhysicsSimulator.SetSimulationTime(physicsSettings.simulationTime);
                PhysicsSimulator.SetSimulationSteps(physicsSettings.simulationSteps);

                PhysicsSimulator.Activate();

                // consume the event or otherwise we'd get an error in PhysicsSimulator because of the UI display of the phyiscs timer
                // TODO: set flag and invoke in different pass
                Event.current.Use();
            }
        }
Ejemplo n.º 2
0
        private void ApplyPhysics()
        {
            PhysicsSimulation physicsSimulation = ScriptableObject.CreateInstance <PhysicsSimulation>();

            PhysicsSettings physicsSettings = new PhysicsSettings();

            physicsSettings.simulationStepCountMax   = gizmo.brushSettings.autoSimulationStepCountMax;
            physicsSettings.simulationStepIterations = gizmo.brushSettings.autoSimulationStepIterations;

            physicsSimulation.ApplySettings(physicsSettings);

            // TODO: use only the new added ones?
            Transform[] containerChildren = PrefabUtils.GetContainerChildren(gizmo.container);

            if (gizmo.brushSettings.autoSimulationType == BrushSettings.AutoSimulationType.Once)
            {
                physicsSimulation.RunSimulationOnce(containerChildren);
            }
            else if (gizmo.brushSettings.autoSimulationType == BrushSettings.AutoSimulationType.Continuous)
            {
                physicsSimulation.StartSimulation(containerChildren);
            }
        }
Ejemplo n.º 3
0
 public void ApplySettings(PhysicsSettings physicsSettings)
 {
     this.physicsSettings = physicsSettings;
 }
Ejemplo n.º 4
0
        public static void ApplyPhysics(PhysicsSettings physicsSettings, List <GameObject> objects, SpawnSettings.AutoSimulationType autoSimulationType)
        {
            Transform[] containerChildren = objects.ConvertAll(x => x.transform).ToArray();

            ApplyPhysics(physicsSettings, containerChildren, autoSimulationType);
        }
Ejemplo n.º 5
0
        public static void ApplyPhysics(PhysicsSettings physicsSettings, GameObject container, SpawnSettings.AutoSimulationType autoSimulationType)
        {
            Transform[] containerChildren = PrefabUtils.GetContainerChildren(container);

            ApplyPhysics(physicsSettings, containerChildren, autoSimulationType);
        }