は正しいですが、また、あなたができなくなります事実を含む、あなたの動きベクトルが少しでも球の外に出た場合、球の国境にある「スライド」へ:
0 (安っぽいグラフィックのスキルのために申し訳ありません...)
あなたは角度がプレイヤーの位置とXとの間に形成され得る球内面の「スライド」にできるようにしたい場合は、あなたが行うことができますベクトル、その後で、この角度を適用します。
public Transform player;
public float sphereRadius;
void LateUpdate()
{
Vector3 pos = player.position;
float angle = Mathf.Atan2(pos.y, pos.x);
float distance = Mathf.Clamp(pos.magnitude, 0.0f, sphereRadius);
pos.x = Mathf.Cos(angle) * distance;
pos.y = Mathf.Sin(angle) * distance;
player.position = pos;
}
だけ(私は私の例ではLateUpdate()
に入れ理由です)、これはカウンタープレーヤーの動きスクリプトに影響を与えない使用して確認してください。
問題が解決しましたか?その場合は、正しい回答として投稿済みの回答を選択することを検討してください。 – Kardux