https://codegenius.org/open/courses/17/sections/29
上記サイト様を参考にして、シューティングゲームを作りたいです。
敵弾のグラフィックを制作する段階で、チュートリアルのように「3Dobject」→「Sphere」から作るのではなく、弾の画像をインポートしそれを敵弾のグラフィックとして使いたいと考えました。
取り込んだ画像のTexture TypeをSprite(2D and UI)に変更し、RigidBodyとSphereColliderをアタッチして、「3Dobject」→「Sphere」から作ったものと同じように弾のPrefabを作りました。
そして、このPrefabを以下のスクリプト(敵機オブジェクトにアタッチ済)のenemyMissilePrefabに設定してゲームを実行してみました。
C#
1 2public class EnemyFireMissile : MonoBehaviour 3{ 4 public GameObject enemyMissilePrefab; 5 public float missileSpeed; 6 private int timeCount = 0; 7 8 void Update() 9 { 10 timeCount += 1; 11 12 if (timeCount % 60 == 0) 13 { 14 GameObject enemyMissile = Instantiate(enemyMissilePrefab, transform.position, Quaternion.identity); 15 16 Rigidbody enemyMissileRb = enemyMissile.GetComponent<Rigidbody>(); 17 18 enemyMissileRb.AddForce(transform.forward * missileSpeed); 19 20 Destroy(enemyMissile, 3.0f); 21 } 22 } 23}
すると、発射された敵弾は、ペラペラの紙がくるくると回るように飛んできてしまいました。
以下gif画像です。
そうではなく、一般的な2Dシューティングのように、弾が常に真上(カメラ)の方を向きながら飛んでくるようにしたいです。
もしくは、どうして回転してしまうのかの理由が知りたいです。
・試したこと
弾を発生させているオブジェクトのColliderを消してみる
弾にアタッチされているRigidBodyのConstraintからFreeze Rotationにチェックを入れてみる
弾にビルボード機能を持たせてみる
よろしければ解決方法を教えていただきたいです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/10 17:55