【Unity】斜方投射シミュレーション

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で物理シミュレーションする方法をサンプルプログラム付きで入門者向けにまとめました。

コメント