2016-10-05 6 views
-1

は:位置X = -250 Y = 0、Z = -250 回転0 0とスケール1 1 1プレイヤーが地形のエッジから外れないようにするにはどうすればよいですか?私の地形が変形この場合

地形解像度が幅500、長さ500と高さ600

地形のエッジにオブジェクトを移動するときに、私がThirdPersonControllerまたはいくつかの高さの宇宙船を持っていると、それらをそこで停止し、地形領域外に進ませたくありません。

どのように私はそれをC#スクリプトで計算し、オブジェクトが地形の境界線から離れるのを防ぐことができますか?

Terrain

+1

これは方法の多くを行うことができる - あなたは自然の障壁を作成したくない場合は、なぜない試み、真の目に見えない壁のアプローチ、? – Serlite

答えて

1
  1. 空のゲームオブジェクトを作成し、それにBoxColliderを添付。
  2. 設定BoxCollider:センター:0、0、0の境界:エディタ上で適切に500、600、500 IsTrigger: On
  3. 位置に。あなたの制限区域になります。
  4. 側でスクリプトがあなたのコードはコライダーがあなたのBoxColliderを離れるたびに実行されます。この方法

OnTriggerExit(Collider c) { /* Your code */ }

を挿入し、それにスクリプトを添付します。それがあなたのプレイヤーであれば、それが制限領域の内側になるように位置をリセットするか、物理的な力で内側に戻すことができます。

https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnTriggerExit.html

+0

私はそれをしました。しかし、私が持っている3つのスクリプトの間でどのように相互作用することができますか?私はクローンオブジェクトを作成するスクリプトを持っています。ボックスコライダーのウェイポイントとスクリプト用のスクリプト。新しい質問をするべきですか? –

+1

'3つのスクリプト間の相互作用は'私は少し混乱します。一般的に、スクリプトのやりとりは 'GetComponent ();'を使って行いますが、あなたが聞きたいことがわかりません。とにかく、 'BoxCollider'スクリプト内の' OnTriggerExit(Collider c) 'メソッドはUnityによって自動的に呼び出されるので、何もする必要はないと思います。 –

関連する問題