質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

3DCG

コンピュータの演算により、3次元空間の仮想物体を、2次元平面上で表現する手法である。

Q&A

解決済

1回答

1627閲覧

Unity3DゲームでInstantiateで生成したオブジェクトの向きが180度回転している

ffmkx925

総合スコア16

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

3DCG

コンピュータの演算により、3次元空間の仮想物体を、2次元平面上で表現する手法である。

0グッド

0クリップ

投稿2019/03/15 04:38

<分からないこと、解決したいこと>
Unityを使ってFPS視点の射的ゲームを製作中です。
アセットストアからインポートした銃と弾丸の3Dモデルを使用しています。
空のオブジェクトをPlayerとしその子オブジェクトにカメラ、さらにその子に銃と設定し、銃の子にMazzuleという空オブジェクトを作り銃口付近に配置して、そこから弾丸が生成されるようにしてあります。
しかしいざ発射させると弾丸の向きがZ軸方向に逆に生成されてしまいます。
見た目で言うと弾丸の先端が銃のほうを向いている状態です。
生成された弾丸を見るとZ軸が銃のほうを向いています。
これの改善方法を知りたいです。

生成部分のスクリプト
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BulletController : MonoBehaviour {

public GameObject bulletPrefab; public float bulletSpeed; public int bulletCount = 30; private float shotInterval; void Update () { if (Input.GetMouseButtonDown(0)) { shotInterval += 1; if (shotInterval % 2 == 0 && bulletCount > 0) { bulletCount -= 1; GameObject bullet = Instantiate(bulletPrefab, transform.position , Quaternion.Euler(transform.parent.eulerAngles.x, transform.parent.eulerAngles.y, 0)); Rigidbody bulletRd = bullet.GetComponent<Rigidbody>(); bulletRd.AddForce(transform.forward * bulletSpeed); Destroy(bullet, 3.0f); } } else if (Input.GetMouseButtonDown(1)) { bulletCount = 30; } }

}

弾丸はモデルをHierarokyに落として銃の向きと合うように設定し、Prefabにしてあります。デフォルトでは弾丸は先端がY軸ほうこうに向いていました。

<試したこと>
Muzzleの向きをZ軸方向に逆にして、スクリプトのbulletSpeedをマイナスにしてみました。
結果:変化なし

弾丸PrefabuのTransformを変更
結果:変化なし

<環境>
windows7 pro 32bit
Unity5.6.6

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

生成するとき、弾丸をy軸で180度回転させるといいと思います

GameObject bullet = Instantiate(bulletPrefab, transform.position , transform.parent.rotation * Quaternion.Euler(0,180f,0));

投稿2019/03/15 04:54

izmktr

総合スコア2856

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ffmkx925

2019/03/15 05:08

ありがとうございます。 解決しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問