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

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

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

1 :名前は開発中のものです。:2014/06/26(木) 23:02:03.72 ID:t35CWy1R.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質問スレッド9
http://peace.2ch.net/test/read.cgi/gamedev/1399506271/

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

■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←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。

271 :名前は開発中のものです。:2014/07/06(日) 12:07:34.19 ID:/ZhdI6Tk.net
Updateメソッドは毎F呼ばれる
falseにずっとなってても1度しか鳴らしたくないのであれば
フラグでも立てればいいのでは?

var flag : int = 0;

function Update () {
if(goalScript.cleared==false && flag == 0){
audio.Play();
audio.clip = voice;
flag = 1; //再プレイ抑止
}

272 :名前は開発中のものです。:2014/07/06(日) 12:07:36.22 ID:A7UAPEqP.net
audio.Play()のつかいかた自体と言うよりも、
毎回、音がなってるからそれ制御してやって。

273 :名前は開発中のものです。:2014/07/06(日) 12:24:22.63 ID:www09xjy.net
>>270
アセットを購入しましょう

274 :名前は開発中のものです。:2014/07/06(日) 12:24:31.86 ID:+M1clTAW.net
>>271
Updateの考え方が分かりました。
PG初心者なもので、ありがとうございます。
毎F呼ばれるので、スタート時や何かアクションを
起こしたときに再生されるのですね。。。

また、ご連絡いただきましたスクリプトですと、
「cleared==false」になったと同時に「flag = 1」に
なってしまいます。
「audio.Play()」再生後に「flag = 1」にするには、
どのように対応すれば宜しいでしょうか。
すみませんが、宜しくお願いします。

275 :名前は開発中のものです。:2014/07/06(日) 12:46:49.69 ID:g+013jS2.net
どういう用途でサウンドを再生したいの?
「スタート!」とかBGMとか効果音とかでやり方変わるよ

初心者ならフローチャートみたいのを書いた方が楽にできるだろうし、
論理的な考え方も身につくんじゃないかな?

276 :名前は開発中のものです。:2014/07/06(日) 12:52:35.12 ID:/ZhdI6Tk.net
>>274
audio.Play();
audio.clip = voice;

ここ2ステップの正当性については検証していませんが
処理順的にvoiceが鳴ったあとにフラグONされるはずですが・・・
デバッガでステップインしたらちゃんとそこを通っていますか?
voiceにはちゃんと中身が入っていますか?

277 :名前は開発中のものです。:2014/07/06(日) 12:57:30.13 ID:+M1clTAW.net
>>275
256です。
度々すみません
"キャラを3Dフィールドで動かして、「goalObj」というアーチオブジェクトを
通過したら、「voice」を再生。
また再度通過しても、同様に「voice」を再生する。"
という使用でサウンドを鳴らしたいと考えています。
宜しくお願いします。

278 :名前は開発中のものです。:2014/07/06(日) 13:10:34.33 ID:+M1clTAW.net
>>276
256です。
いただきましたスクリプトで下記のように記述しています。
現状このような状態です。
・再生すると「flag」が常に1の状態です。
・「flag = 1」の部分をコメントアウトすると音声が流れます。
・「cleared==false」になったときに「flag = 0」になり
 「voice」の再生が終わったら「flag = 1」になるイメージでしょうか。
 (書き方がちょっと分かりませんが…)
宜しくお願いします。

var goalObj:GameObject;
var goalScript:GoalScript;
var voice: AudioClip;
var flag : int = 0;

function Start () {
goalScript=goalObj.GetComponent("GoalScript");
}

function Update () {
if(goalScript.cleared==false && flag == 0){
audio.Play();
audio.clip = voice;
flag = 1;
}
}

279 :名前は開発中のものです。:2014/07/06(日) 13:27:50.82 ID:N5QQMiFF.net
goalScript.clearedって通過した瞬間だけ1になるようにできないの?
あるいは goalScriptのclearedをクリアチェックして更新してる箇所で
if(audio.isPlaying == false) {
audio.clip = voice;
audio.Play();
}
ぢゃないの?

も一つおまけにゴール通過した時とゴール地点に居座った時の区別とか付く?

280 :名前は開発中のものです。:2014/07/06(日) 13:33:54.41 ID:yBLHkZ9t.net
まず、Updateの仕様を理解するところからはじめようぜ。

そのスクリプトをつけたゲームオブジェクトがシーンに存在している間は、1秒間に60回とか永遠にUpdateは実行される。

なにかのボタンを押した時だけ再生したいとかなら、そのボタンを押したという情報をUpdate内で判断してplayを実行しなきゃならん。
それが、flagだ。

だから、ボタンを押した時にこのflagを1にしてやる処理を書かないと動かん。

総レス数 1066
346 KB
新着レスの表示

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