プレーヤーが所持しているオブジェクトを、持ったり置いたりしてみましょう。
※今回の制作は、【Unity C#】取ったオブジェクトを前で持ち続ける を完成させてから制作してください。
前回記事:①ボールを持つ 取ったオブジェクトを前で持ち続ける
プレーヤーの前方でボールを保持した状態で、スペースキーを押せば離します。
もう一度ボールに触れたら、また持つことができます。
次回記事:③ボールを飛ばす 【Unity C#】保持したボールをプレーヤーと同じ向きで発射
持ったり離したりするスクリプト
前回の続き、【Unity C#】取ったオブジェクトを前で持ち続ける が終わった状態から進めます。
Targetの「トリガーにする」にチェックを入れましょう。
次に、Sphereにリジッドボディを追加します。
TouchObject.csを開き、コードを追加します。
※今回コードを追加したところに、コメントを入れています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class TouchObject : MonoBehaviour { public GameObject gameObject; public GameObject target; public bool isRelese; //追加 //**********追加ここから********** void Start() { isRelese = true; } void Update() { if (Input.GetKeyDown(KeyCode.Space)) { if(!isRelese) { transform.parent = null; isRelese = true; } } } //**********追加ここまで********** void OnCollisionEnter(Collision col) { if (col.gameObject.name == "Cube") { isRelese = false; //追加 this.transform.position = new Vector3(target.transform.position.x, 0.5f, target.transform.position.z); transform.SetParent(gameObject.transform); } } } |
ゲームプレイしてみましょう。
ボールに触れると前方で持ち続けて、スペースキーを押したらボールを離します。
前回記事:①ボールを持つ 取ったオブジェクトを前で持ち続ける
次回記事:③ボールを飛ばす 保持したボールをプレーヤーと同じ向きで発射
関連記事:
取ったオブジェクトを前で持ち続ける
保持したボールをプレーヤーと同じ向きで発射
静止中のオブジェクトをクリックで飛ばす
出現してから1秒後に落下する
Invokeを使ってn秒後に関数を実行する
落下スピードをランダムにする
落としたボールを1秒後に補充