[過去ログ]
【3Dゲームエンジン】Unity質問スレッド16 [転載禁止]©2ch.net (1001レス)
【3Dゲームエンジン】Unity質問スレッド16 [転載禁止]©2ch.net http://peace.5ch.net/test/read.cgi/gamedev/1425192691/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
586: 名前は開発中のものです。 [sage] 2015/03/28(土) 21:07:38.77 ID:bC4IvWTN >>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; function Update () { time += Time.deltaTime; if(Input.GetButton("Fire1")){ time += Time.deltaTime; if(time >= interval){ Shot(); Score.score -= 1; time = 0; } } } //Shot関数 function Shot (){ var obj : GameObject = GameObject.Instantiate(bullet, transform.position, Quaternion.Euler(90, 360, 0)); obj.transform.position = spawner.position; obj.GetComponent.<Rigidbody>().AddForce(-rifle.forward * speed); } http://peace.5ch.net/test/read.cgi/gamedev/1425192691/586
587: 名前は開発中のものです。 [sage] 2015/03/28(土) 21:14:29.38 ID:bC4IvWTN >>585 ソースは>>586のように書いています 銃オブジェクトを用意し、prefabを弾丸のスポナーとして銃口前に配置しています。 プレイヤーキャラクターにその銃を持たせて動かせるようにしているのですが 弾はprefabに格納しているシリンダーオブジェクトがx=90度、y=360度として発射されています。 問題は動かした時にこのprefabから発射される弾が常にその角度を保ち続けている事でして このシリンダーオブジェクトを常に銃が向く方向に向かって横向きに飛ばす方法がわからず質問しました。 やはり銃オブジェクトに対して相対的な角度なんかを書くべきなのでしょうか? http://peace.5ch.net/test/read.cgi/gamedev/1425192691/587
588: 名前は開発中のものです。 [sage] 2015/03/28(土) 21:14:49.74 ID:LXdnL7Gy >>586 俺エスパーになれなかったようだ ライフルのrotation使ってもだめかな? http://peace.5ch.net/test/read.cgi/gamedev/1425192691/588
589: 名前は開発中のものです。 [sage] 2015/03/28(土) 21:21:22.32 ID:mzerL/yE >>586 まず、銃弾になるシリンダーのプレハブが(0,0,0)度のときにシリンダー向いている角度が 銃口(銃)の(0,0,0)度と同じじゃなければ射出時に補正がいる スポナーが銃の先端に接続されているなら var obj : GameObject = GameObject.Instantiate(bullet, spawner.position, spawner.rotation ); これでいけるようになる気がする というか正直もう少し簡単なものから作るのを進めるよ 自分で用意したものをどう使うかすら理解していないように思える http://peace.5ch.net/test/read.cgi/gamedev/1425192691/589
594: 名前は開発中のものです。 [sage] 2015/03/28(土) 23:51:20.06 ID:7kUNhd/j >>586 まぁはっきり言って弾のオブジェクトの作り方がダメなのだが どうしてもそのコードでやるなら var obj : GameObject = GameObject.Instantiate(bullet, transform.position, transform.rotation*Quaternion.Euler(90, 0, 0)); だろう。 一々Quaternion.Eulerで生成するのは計算の無駄なので最初に1回計算してoffsetRotationとしてとっておけばいい。 はっきり言って完全に無駄な計算なので弾丸のオブジェクト自体を頭方向がZになるように作り直した方がいい。 http://peace.5ch.net/test/read.cgi/gamedev/1425192691/594
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.030s