物理パズルゲームに興味があり作ることにしました。
まずはボールを投げる処理を作ります。
タップした場所からボールが発射するようにしました。
玉には以下のスクリプトとRigidbodyをアタッチします。
using UnityEngine; public class ballController : MonoBehaviour { public void Shoot(Vector3 dir) { GetComponent<Rigidbody>().AddForce(dir); } }
AddForceで玉を飛ばすための処理が書かれています。
玉はPrefab化しておきます。
次に画面がタッチされたら玉を生成する処理を書いていきます。
using UnityEngine; public class ballGenerator : MonoBehaviour { public GameObject BallPrefab; // Update is called once per frame void Update() { if (Input.GetMouseButtonDown(0)) { GameObject ball = Instantiate(BallPrefab) as GameObject; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); Vector3 worldDir = ray.direction; ball.GetComponent<ballController>().Shoot( worldDir.normalized * 2000); } } }
適当な空オブジェクトを作成してスクリプトをアタッチします。
先ほど作成した玉のPrefabをインスペクタ上でセットします。
これで玉が投げられるようになりました。
参考
Unityの教科書 Unity 2020完全対応版 (2D&3Dスマートフォンゲーム入門講座) (日本語) 単行本(ソフトカバー) – 2020/8/29