// Copyright (c) .NET Foundation and Contributors (https://dotnetfoundation.org/ & https://stride3d.net) and Silicon Studio Corp. (https://www.siliconstudio.co.jp)
/// This script will handle keyboard inputs and set the scene gravity according to those inputs
/// </summary>
publicclassGravityScript:SyncScript
{
privateSimulationsimulation;
publicoverridevoidStart()
{
simulation=this.GetSimulation();
simulation.Gravity=newVector3(0,0,0);
if(Input.Gravity!=null)// enables the orientation sensor.
Input.Gravity.IsEnabled=true;
}
publicoverridevoidUpdate()
{
// no keys down and default gravity
vargravity=newVector3(0,0,0);
// Get the gravity vector from the sensor
if(Input.Gravity?.IsEnabled??false)
{
varoriginalVector=Input.Gravity.Vector;
gravity=newVector3(originalVector.Z,originalVector.X,-originalVector.Y);// this rotation includes: (1) rotation of the scene (up = Z axis), (2) rotation of the display (Landscape)