[過去ログ] 【3Dゲームエンジン】Unity質問スレッド16 [転載禁止]©2ch.net (1001レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
586(4): 2015/03/28(土)21:07 ID:bC4IvWTN(5/6) AAS
>>585
public var bullet : GameObject;
public var spawner : Transform;
public var speed : float = 1000;
public var rifle : Transform;
public var interval : float = 0.3;
private var time : float = 0;
省17
587(1): 2015/03/28(土)21:14 ID:bC4IvWTN(6/6) AAS
>>585
ソースは>>586のように書いています
銃オブジェクトを用意し、prefabを弾丸のスポナーとして銃口前に配置しています。
プレイヤーキャラクターにその銃を持たせて動かせるようにしているのですが
弾はprefabに格納しているシリンダーオブジェクトがx=90度、y=360度として発射されています。
問題は動かした時にこのprefabから発射される弾が常にその角度を保ち続けている事でして
このシリンダーオブジェクトを常に銃が向く方向に向かって横向きに飛ばす方法がわからず質問しました。
省1
588: 2015/03/28(土)21:14 ID:LXdnL7Gy(3/3) AAS
>>586
俺エスパーになれなかったようだ
ライフルのrotation使ってもだめかな?
589: 2015/03/28(土)21:21 ID:mzerL/yE(7/7) AAS
>>586
まず、銃弾になるシリンダーのプレハブが(0,0,0)度のときにシリンダー向いている角度が
銃口(銃)の(0,0,0)度と同じじゃなければ射出時に補正がいる
スポナーが銃の先端に接続されているなら
var obj : GameObject = GameObject.Instantiate(bullet, spawner.position, spawner.rotation );
これでいけるようになる気がする
というか正直もう少し簡単なものから作るのを進めるよ
省1
594: 2015/03/28(土)23:51 ID:7kUNhd/j(1/2) AAS
>>586
まぁはっきり言って弾のオブジェクトの作り方がダメなのだが
どうしてもそのコードでやるなら
var obj : GameObject = GameObject.Instantiate(bullet, transform.position, transform.rotation*Quaternion.Euler(90, 0, 0));
だろう。
一々Quaternion.Eulerで生成するのは計算の無駄なので最初に1回計算してoffsetRotationとしてとっておけばいい。
はっきり言って完全に無駄な計算なので弾丸のオブジェクト自体を頭方向がZになるように作り直した方がいい。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.036s