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#入門速報

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