0
オブジェクトをピックアップしてスローすると、プレイヤーが向いている方向にスローさせることができます。このオブジェクトがスローされ、速度がThreshold
より大きい場合、それはうまく動作する惑星RotateAround
に始まります。オブジェクトをスローして周回軌道のように球の周りを回転させる方法
今、私は何をしようとしているは、次のとおりです。
私はそのスピードにそれを投げたときの速度閾値以上である物体に力を加えた場合は、オブジェクトが正しい方向に軌道に入るませんがこれはプレーヤーの順方向になります。
Example Video demonstrating the problem when I throw the frisbee (object)。
これは私のコードです:
Vector3 planetDir = planet.transform.position - transform.position;
Vector3 axis = Vector3.Cross(Vector3.Normalize(planetDir), transform.forward);
if (rb.velocity.magnitude * 10 > speedThreshold)
{
rb.isKinematic = true;
isOrbiting = true;
}
if (isOrbiting == true)
{
transform.RotateAround(planet.transform.position, axis, rotationSpeed); //start orbiting
desiredAltitude = (transform.position - planet.transform.position).normalized * radius +
planet.transform.position; //set the altitude
transform.position = desiredAltitude; //move this gameobject to desired altitude
}