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);
|
|
}
|
|
}
|
|
}
|