発射+物理制御
メモ
Jump
Particle
TimeLine
【Unity】マルチシーンエディティングを初めて触ってみる https://www.hanachiru-blog.com/entry/2020/05/18/120000
今回の資料を作成するために参考にしたサイト:
PrefabからGameObjectを生成して物理シミュレーションで動かすサンプルプロジェクト
大砲のようなものを作成する。
レポートフォルダ → PrefabInstanceTest.unitypackage 参照※
※このパッケージで、砲台をWorld中心から移動するとバグる。
※URPではないのでマテリアルを設定しなおさないとRollaBallに組み込めない。
PrefabInstanceTest.unitypackageの作成手順:
Unity2020 を起動して create new Project から適当な名前でプロジェクトを作成する。
例) PrefabInstanceTest
プロジェクトに Resources フォルダを作成する。このフォルダに格納したPrefabはコードでインスタンス化してシーンに配置できる。
SampleScene に以下を追加
Plane
Scale x 20 y 1 z 20
Sphere
調整なし ResourcesフォルダにDnDしてPrefabにする。その後、削除するか無効化する。
Cube
Sphere と同様
Cylinder
Position x 0 y 2 z 0
Scale x 1 y 2 z 1
Aim.cs スクリプト を作成して Cylinder にアタッチする。
※2021.7.21バグ修正対応版
弾の発射タイミングと連射の管理
Input.Getkeyを FixedUpdate で使用するとキー入力の取りこぼしが起こる問題に対処する。
※これは旧Inputシステムについてのコード
FixedUpdate は物理シミュレーションの実行タイミングで処理されるため、ゲームシーンのレンダリング(描画)タイミングとは異なるタイミングで実行される。
キー入力処理がゲームシーンに即座に反映れないと操作感が悪くなる。
一方で、弾を飛ばすためにRigidbodyを設定したgameObjectに物理シミュレーションで AddForce して力を加えて発射するコードは FixedUpdateで実行することになる。
Update と FixedUpdate 間でキー入力処理の連携が必要。
コードは上記のAim.csに組み込み済み。
参照: