Unityでボールの斜方投射シミュレーションを行う方法についてソースコード付きでまとめました。
[latexpage]
斜方投射シミュレーション
今回は斜方投射シミュレーションを作成します。
実行結果
完成版プロジェクト:ObliqueProjection.zip
ソースコード
サンプルプログラムのソースコードです。
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class BallShooter : MonoBehaviour { // textオブジェクト参照用 GameObject textObject; // Textコンポーネント参照用 Text scoreText; void Start () { // 初速, 角度 float INIT_SPEED = 20f; float INIT_DEGREE = 60f; // Rigidbodyコンポーネントへの参照を取得 Rigidbody rb = gameObject.GetComponent(); // 初速を与える Vector3 vel = Vector3.zero; vel.y = INIT_SPEED; vel.x = INIT_SPEED*Mathf.Cos(INIT_DEGREE*Mathf.PI/180f); vel.y = INIT_SPEED*Mathf.Sin(INIT_DEGREE*Mathf.PI/180f); rb.velocity = vel; // Textオブジェクトの参照 textObject = GameObject.Find("Text"); // Textオブジェクトのコンポーネントを参照 scoreText = textObject.GetComponent (); } void FixedUpdate(){ scoreText.text = "X:" + gameObject.transform.position.x.ToString(); } void Update () { } }
Unityのシミュレーションだと落下地点までの距離は35くらいでした。
下記のサイトで初速度20、射出角度60[deg]で放物運動の計算式を実際に解くと、落下地点までの距離は「35.32400580359」となり大体あっていました。
https://keisan.casio.jp/exec/system/1204505751
関連ページ

【Unity入門】ゲームプログラミング
Unityでゲームを作る方法をサンプルプログラム付きで入門者向けにまとめました。

C#入門速報
C#言語の基本文法・使い方をサンプルプログラムのソースコード付きで解説します。

【Unity入門】物理シミュレーション編
Unityで物理シミュレーションする方法をサンプルプログラム付きで入門者向けにまとめました。
コメント