2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

【3Dゲームエンジン】Unity質問スレッド16

1 :名前は開発中のものです。:2015/03/01(日) 15:51:31.66 ID:PVQNjxTm.net
3Dゲームエンジン「Unity」の質問に優しく答えるスレです。
Windows/Mac用。JavaScript/C#/Booといった汎用言語を使用できるのが特徴です。
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他

次スレは>>970を踏んだ方が建てること。ダメなら>>980>>990が建てて下さい。

■前スレ
【3Dゲームエンジン】Unity質問スレッド15
http://peace.2ch.net/test/read.cgi/gamedev/1421561255/

■本スレ
【3Dゲームエンジン】Unity総合スレッド24
http://peace.2ch.net/test/read.cgi/gamedev/1415828892/

■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
http://www24.atwiki.jp/unity2ch/

●リンク
・Unity(日本公式サイト)
 http://unity3d.com/japan/
・ユーザーガイド&リファレンス
 http://japan.unity3d.com/developer/document/
・チュートリアル
 http://japan.unity3d.com/developer/document/tutorial/
・スクリプトリファレンス
 http://docs-jp.unity3d.com/Documentation/ScriptReference/
・FAQ
 http://answers.unity3d.com/index.html
・MSDN
 http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
注意事項:アセットおじさんは優しく愛でましょう

591 :名前は開発中のものです。:2015/03/28(土) 19:48:49.44 ID:bC4IvWTN.net
>>588
わかりやすい解説ありがとうございます。

方向がおかしいという解釈で間違いありません。
prefabを銃オブジェクトの銃口位置に配置しており、それを発射している形なのですが
銃口を動かすとシリンダーが横向きになってとんで行ってしまいます。
つまり最初にプレハブに入れたまんまの角度でその方向に飛んで行ってしまいます。

var obj : GameObject = GameObject.Instantiate(bullet, transform.position, Quaternion.identity);
教えてもらったサイトを見て、rotationについて調べてコードを書いてみたのですが力足らずでここからどう書いていいのかわからなくなりました
rotationの部分を書く際は、銃オブジェクトの角度を参考にすればいいのでしょうか?

592 :名前は開発中のものです。:2015/03/28(土) 20:34:16.06 ID:LXdnL7Gy.net
>>591
一番簡単なの教えてあげる
空のゲームオブジェクトにシリンダーを入れてその中で角度いじってプレハブ化それを飛ばす

593 :名前は開発中のものです。:2015/03/28(土) 20:36:32.01 ID:mzerL/yE.net
>>591
そのサイトはUnity公式のリファレンスだからみんなそれ見て調べてます。
http://docs.unity3d.com/ja/current/ScriptReference/Quaternion.Euler.html
Quaternion.Euler( angX,angY,angZ);
オイラー角を指定しクォータニオンを生成します。

> rotationの部分を書く際は、銃オブジェクトの角度を参考にすればいいのでしょうか?
Unityの質問じゃなくてゲームの実装のお話だから答えようがない

594 :名前は開発中のものです。:2015/03/28(土) 20:41:45.34 ID:mzerL/yE.net
あと、C#なりjavascriptな使用してる言語の理解度が低くて
どうすればいいのか分からないなら
まずはしかるべき場所や手段で言語の勉強を先にして欲しい

595 :名前は開発中のものです。:2015/03/28(土) 20:45:40.69 ID:bC4IvWTN.net
>>592
それを最初にやって、特定の方向に飛んでいく飛んでいく時は正しい角度になったんですけど
銃口をずらしても生成されるオブジェクトは最初にプレハブの中に入れた角度のまま飛んでいくので
おかしい挙動になってしまいました。

>>593
度々質問に回答して頂きありがとうございます。
var obj : GameObject = GameObject.Instantiate(bullet, transform.position, Quaternion.Euler(90, 360, 0));

このように書いてみたのですが、一番最初に逆戻りしてしまいました。
この角度ってワールドとの相対的な角度になっているのでしょうか?

596 :名前は開発中のものです。:2015/03/28(土) 20:49:56.02 ID:LXdnL7Gy.net
>>.582
var obj : GameObject = GameObject.Instantiate(bullet, transform.position, transform.rotation);
こうすればいいと思うよ

597 :名前は開発中のものです。:2015/03/28(土) 20:56:06.52 ID:bC4IvWTN.net
>>596
そのコードをさっき試してはみたのですが
prefab内に格納したオブジェクトの角度がリセットされているのか
横向きではなく一番最初にオブジェクトを作ったときのように真上を向いた角度になってしまいました

598 :名前は開発中のものです。:2015/03/28(土) 20:58:14.12 ID:mzerL/yE.net
>>595
そっちがどういう実装していてそのスクリプトが何から実行されているのかも分からないから
答えようがない

君の考えとソースを透視できるエスパーを探すか、それが無理なら自分で考えてくれ

599 :名前は開発中のものです。:2015/03/28(土) 21:07:38.77 ID:bC4IvWTN.net
>>598
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);
}

600 :名前は開発中のものです。:2015/03/28(土) 21:14:29.38 ID:bC4IvWTN.net
>>598
ソースは>>599のように書いています

銃オブジェクトを用意し、prefabを弾丸のスポナーとして銃口前に配置しています。
プレイヤーキャラクターにその銃を持たせて動かせるようにしているのですが
弾はprefabに格納しているシリンダーオブジェクトがx=90度、y=360度として発射されています。
問題は動かした時にこのprefabから発射される弾が常にその角度を保ち続けている事でして
このシリンダーオブジェクトを常に銃が向く方向に向かって横向きに飛ばす方法がわからず質問しました。

やはり銃オブジェクトに対して相対的な角度なんかを書くべきなのでしょうか?

総レス数 1038
332 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★