押し開けるタイプの扉を作成してみましょう。
ヒンジジョイントを使えば、ドアを開閉させるしくみを簡単に作成できます。
関連記事:
触れると開くドア
Hingi Jointを使った振り子の動き
スプリングを使って棒を振るような動き
押して開ける扉の作成
平面とCubeを作成して色をつけます。
Cubeの名前をDoorにして、位置、サイズを変更します。
ゲームビューでは、このような見た目になっています。
Doorにヒンジジョイントを追加します。
コンポーネントを追加 > 物理 > ヒンジジョイント
HingeJointの設定を行います。
Anchorは、振りの中心となる軸の位置。オブジェクトの左端、-0.5にしました。
軸は、振りの中心となる軸の方向。今回はYを軸として回転させるため、1を入れました。
茶色で表示されている部分が、軸の中心になります。
Springは、ターゲット位置に移動するための力。
Damperの数値は、大きければ大きいほど、オブジェクトの速度が落ちます。
Target Positionは、スプリングのターゲット角度。ドアの閉まった状態として、0°に設定しました。
以上の設定で、ドアを押し開けることができるようになります。
プレーヤーの作成
ドアを開けるために、簡単なプレーヤーを用意しましょう。
Cubeを作成し、座標を変更。
Cubeにリジッドボディを追加します。
CubeMove.csを作成し、Cubeに追加します。
CubeMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { void Update() { float dx = Input.GetAxis("Horizontal") * Time.deltaTime * 3; float dz = Input.GetAxis("Vertical") * Time.deltaTime * 3; transform.position = new Vector3 (transform.position.x + dx, transform.position.y, transform.position.z + dz); } } |
プレーヤーを動かして、ドアを押してみましょう。
扉が開き、通過すれば、スプリングが効いて閉まります。