現在、オブジェクトを制御するために WASD キーを使用しています。今、私はジョイスティックを使って同じことをしたいと思っています。これを行うためにコードを適応させる方法を誰かに教えてもらえますか? 私がやりたいのは、if (Input.getKey) スペースを、ジョイスティックを使用してボートを左右に動かす if (Input) スペースに置き換えることだけです。
void drive()
{
//decrease speed
if (Input.GetKeyDown(KeyCode.S))
{
//in Drive
if (acceleration > 0 &&
bucketMode == false)
{
acceleration-= 250;
}
//in Reverse
else if (acceleration < 0 &&
bucketMode == true)
{
acceleration += 250;
}
}
//Increases Speed
if (Input.GetKeyDown(KeyCode.W))
{
//in Drive
if (acceleration < maxSpeed &&
bucketMode == false)
{
acceleration+= 250;
}
//in Reverse
else if (acceleration > minSpeed &&
bucketMode == true)
{
acceleration -= 250;
}
}
//stops the boat and toggles Bucket mode
if (Input.GetKeyDown(KeyCode.Space))
{
acceleration = 0;
if (bucketMode == false)
{
//goes into revers
bucketMode = true;
craft.bucket(1); //sends bucket as true
}
else
{
//goes into drive
bucketMode = false;
craft.bucket(0); //sends bucket as false
}
}
//moves forward if speed is +
if (acceleration < 0)
{
//moves backwards at half the speed than in drive, in a smooth motion, speed depending on user input(acceleration)
this.transform.Translate(Vector3.left * Time.smoothDeltaTime * ((-acceleration / 500) +1));
//updates craft speed being displayed
craft.ChangeSpeed((acceleration/500) * 1.94);
}
//moves backward if speed is -
else if (acceleration > 0)
{
//moves forward in a smoothb motion, speed depending on user input(acceleration)
this.transform.Translate(Vector3.right * Time.smoothDeltaTime * ((acceleration / 250) + 1));
//updates craft speed being displayed
craft.ChangeSpeed((acceleration/250) * 1.94);
}
//stands still if speed is 0
else
{
}
//turns right
if (Input.GetKey(KeyCode.D))
{
//turns the boat to the left smoothly, as speed increases, so does turn angle
this.transform.Rotate(Vector3.forward * Time.smoothDeltaTime * 25 /* ((2 * acceleration / 250) +1)*/);
//updates boat information(heading and speed)
craft.ChangeHeading(1 * Time.smoothDeltaTime * 25 /* ((2 * acceleration / 250) +1)*/);
craft.ChangeSpeed((acceleration/250) * 1.94);
//if boat is not moving forwards, moves forward slowly, so boat doesn't turn in place
if (acceleration == 0)
{
this.transform.Translate(Vector3.right * Time.smoothDeltaTime / 2);
}
}
//turns left
if (Input.GetKey(KeyCode.A))
{
//turns the boat to the right smoothly, as speed increases, so does turn angle
this.transform.Rotate(Vector3.back * Time.smoothDeltaTime * 25 /* ((2 * acceleration / 250) +1)*/);
//updates boat information(heading and speed)
craft.ChangeHeading(-1 * Time.smoothDeltaTime * 25 /* ((2 * acceleration / 250) +1)*/);
craft.ChangeSpeed((acceleration/250) * 1.94);
//if boat is not moving forwards, moves forward slowly, so boat doesn't turn in place
if (acceleration == 0)
{
this.transform.Translate(Vector3.right * Time.smoothDeltaTime / 2);
}
}
}