41 lines
1.1 KiB
C#
41 lines
1.1 KiB
C#
|
using UnityEngine;
|
|||
|
|
|||
|
namespace Mirror.Examples.MultipleAdditiveScenes
|
|||
|
{
|
|||
|
public class PhysicsSimulator : MonoBehaviour
|
|||
|
{
|
|||
|
PhysicsScene physicsScene;
|
|||
|
PhysicsScene2D physicsScene2D;
|
|||
|
|
|||
|
bool simulatePhysicsScene;
|
|||
|
bool simulatePhysicsScene2D;
|
|||
|
|
|||
|
void Awake()
|
|||
|
{
|
|||
|
if (NetworkServer.active)
|
|||
|
{
|
|||
|
physicsScene = gameObject.scene.GetPhysicsScene();
|
|||
|
simulatePhysicsScene = physicsScene.IsValid() && physicsScene != Physics.defaultPhysicsScene;
|
|||
|
|
|||
|
physicsScene2D = gameObject.scene.GetPhysicsScene2D();
|
|||
|
simulatePhysicsScene2D = physicsScene2D.IsValid() && physicsScene2D != Physics2D.defaultPhysicsScene;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
enabled = false;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
void FixedUpdate()
|
|||
|
{
|
|||
|
if (!NetworkServer.active) return;
|
|||
|
|
|||
|
if (simulatePhysicsScene)
|
|||
|
physicsScene.Simulate(Time.fixedDeltaTime);
|
|||
|
|
|||
|
if (simulatePhysicsScene2D)
|
|||
|
physicsScene2D.Simulate(Time.fixedDeltaTime);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|