private void Awake() { if (ReferenceEquals(s_Current, null)) { s_Current = this; } else if (!ReferenceEquals(s_Current, this)) { Destroy(this); } m_onWorldCallback = new OnWorldUpdateCallback(OnWorldUpdate); m_onWorldBodyTransfromUpdateCallback = new OnWorldBodyTransfromUpdateCallback(OnBodyTransformUpdate); m_World.SetAsyncUpdate(m_AsyncUpdate); m_World.SetFrameRate(1f / Time.fixedDeltaTime); m_World.SetThreadsCount(m_NumberOfThreads); m_World.SetSolverIterations(m_SolverIterationsCount); m_World.SetBroadPhase(m_BroadPhaseType); m_World.SetGravity(m_Gravity.x, m_Gravity.y, m_Gravity.z); m_World.SetSubSteps(m_SubSteps); m_World.SetParallelSolverOnLargeIsland(m_UseParallerSolver); m_World.SetDefaultMaterial(m_DefaultRestitution, m_DefaultStaticFriction, m_DefaultKineticFriction, true); m_World.SetCallbacks(m_onWorldCallback, m_onWorldBodyTransfromUpdateCallback); //Load all physics plug ins and choose the best one m_World.SelectPlugin(IntPtr.Zero); if (m_UseParallerSolver && (m_PluginsOptions > 0)) { string path = Application.dataPath; m_World.LoadPlugins(path); int index = 1; for (IntPtr plugin = m_World.FirstPlugin(); plugin != IntPtr.Zero; plugin = m_World.NextPlugin(plugin)) { if (index == m_PluginsOptions) { Debug.Log("Using newton physics solver: " + m_World.GetPluginName(plugin)); m_World.SelectPlugin(plugin); } index++; } } else { m_World.UnloadPlugins(); } InitScene(); }
void Start() { m_onWorldCallback = new OnWorldUpdateCallback(OnWorldUpdate); m_onWorldBodyTransfromUpdateCallback = new OnWorldBodyTransfromUpdateCallback(OnBodyTransformUpdate); m_world.SetAsyncUpdate(m_asyncUpdate); m_world.SetFrameRate(m_updateRate); m_world.SetThreadsCount(m_numberOfThreads); m_world.SetSolverMode(m_solverIterationsCount); m_world.SetBroadPhase(m_broadPhaseType); m_world.SetGravity(m_gravity.x, m_gravity.y, m_gravity.z); m_world.SetSubSteps(m_subSteps); m_world.SetDefaultMaterial(m_defaultRestitution, m_defaultStaticFriction, m_defaultKineticFriction, true); m_world.SetCallbacks(m_onWorldCallback, m_onWorldBodyTransfromUpdateCallback); InitScene(); }
void Start() { m_onWorldCallback = new OnWorldUpdateCallback(OnWorldUpdate); m_onWorldBodyTransfromUpdateCallback = new OnWorldBodyTransfromUpdateCallback(OnBodyTransformUpdate); m_world.SetAsyncUpdate(m_asyncUpdate); m_world.SetFrameRate(m_updateRate); m_world.SetThreadsCount(m_numberOfThreads); m_world.SetSolverIterations(m_solverIterationsCount); m_world.SetMaxIterations(m_maxIterations); m_world.SetBroadPhase(m_broadPhaseType); m_world.SetGravity(m_gravity.x, m_gravity.y, m_gravity.z); m_world.SetSubSteps(m_subSteps); m_world.SetParallelSolverOnLargeIsland(m_useParallerSolver); m_world.SetDefaultMaterial(m_defaultRestitution, m_defaultStaticFriction, m_defaultKineticFriction, true); m_world.SetCallbacks(m_onWorldCallback, m_onWorldBodyTransfromUpdateCallback); //Load all physics plug ins and choose the best one m_world.SelectPlugin(IntPtr.Zero); if (m_useParallerSolver && (m_pluginsOptions > 0)) { string path = Application.dataPath; m_world.LoadPlugins(path); int index = 1; for (IntPtr plugin = m_world.FirstPlugin(); plugin != IntPtr.Zero; plugin = m_world.NextPlugin(plugin)) { if (index == m_pluginsOptions) { Debug.Log("Using newton physics solver: " + m_world.GetPluginName(plugin)); m_world.SelectPlugin(plugin); } index++; } } else { m_world.UnloadPlugins(); } InitScene(); }