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

121 :名前は開発中のものです。:2014/07/01(火) 13:33:09.43 ID:SbtrGu4q.net
>>116
// ==================
// コリジョン
// 機能:プレイヤーヒット時に会話UIメソッドをコールする
// ==================
void OnCollisionStay2D ( Collision2D col ){

 // 衝突相手がプレイヤー
 if(col.gameObject.tag == "Player")
 {
  if(GameObject.FindWithTag ("UI") == null &&
  PlayerFlag == 1) //PlayerFlagは操作プレイヤー側のフラグ。プレイヤーがボタンを押した場合にON
  {
    // 会話UI表示メソッド
    Kaiwa();
  }

 if(GameObject.FindWithTag ("UI") != null &&
  PlayerFlag == 0) //UI表示時にプレイヤーが再度ボタンを押した場合にクリア
  {
    // 会話UI消去メソッド
    KaiwaDel();
  }
 }
}

122 :名前は開発中のものです。:2014/07/01(火) 13:51:18.75 ID:SbtrGu4q.net
続きです

// =================================================
// 会話UI表示メソッド
// =================================================
void Kaiwa (){

  // 会話ウィンドウ表示
  Instantiate(Resources.Load("6.prefabs/UI_1"), windowPos, Quaternion.identity);
}

// =================================================
// 会話UI消去メソッド(開始)
// =================================================
void KaiwaDel (){

  // UIを非アクティブ
  GameObject.FindWithTag("UI").SetActive(false);

  // 消去メソッド本体コール
  StartCoroutine("DelMessage");
  }

IEnumerator DelMessage (){

  yield return null;
  Destroy(GameObject.FindWithTag("UI"));
}

というコードをコリジョンされる側に書いています(される側毎に別メッセージを表示するため)
何かおかしな箇所などありますでしょうか

123 :名前は開発中のものです。:2014/07/01(火) 18:34:44.20 ID:6DDxUZVh.net
つか・・・もうそろそみんなGitHub使おうよ

124 :名前は開発中のものです。:2014/07/01(火) 19:36:17.39 ID:85UR2RLR.net
>>120
"yield"は、このスクリプトが
当てはめられている、ゲームオブジェクトに流れているモーション
”if”部分の”motion_00”
を2秒待って、次のモーションを流したいと考えています

まだ勉強初めたばかりで、上手く伝えられず申し訳ないです。
また"yield"を使わないでも、制御できるなら、
その手法も教えていただけるとありがたいです。

125 :名前は開発中のものです。:2014/07/01(火) 19:37:02.27 ID:nHreHfmg.net
>>122
そのコードだけ見てる分には原因がつかめないね。
エラーが起きたときのスタックトレース(コンソールでエラーをクリックして表示される詳細)も付けてくれると少しは見えてくるかもしれない。

126 :名前は開発中のものです。:2014/07/01(火) 19:37:45.45 ID:nHreHfmg.net
>>124
void Updateの中でyieldしちゃだめじゃないのかな

127 :名前は開発中のものです。:2014/07/01(火) 19:53:51.32 ID:SbtrGu4q.net
>>125
レスありがとうございます。こちらになります。
http://i.imgur.com/TPLQJEH.png

もしかしてコードの問題ではなく、NGUIで構成したUIオブジェクトの作り方に
問題があるんでしょうか
正直、一つのサイトだけでは意味不明だったので色んなサイトを参考にして
つぎはぎのような感じで作ったので・・・

UI_1:子を含めた全ての管理(詳細は理解できていません)
Camera:UIのみを映すカメラ(画面に対する位置はこれで決める?)
Sprite:UIの背景画像オブジェクト(画面に対するUI本体の大きさとかはここで決める?)
Label:UIに表示する文字であるフォントオブジェクト(フォントの種類や大きさはここで決める)

という認識で作りました。

128 :名前は開発中のものです。:2014/07/01(火) 19:59:02.35 ID:ld0xYEoC.net
>>126
多分これ
例えばhanteiって関数を作って、update内を移植
でupdate内でhanteiを実行する

129 :名前は開発中のものです。:2014/07/01(火) 22:52:30.64 ID:OEeCJUKWv
>>128
アドバイスありがとうございます。
ちなみに、2秒後に("motion_00")を再生させるには、
具体的にはどのように関数を入れればよいでしょうか。。。
宜しくお願いします。

var obj:GameObject;
var script:window_control;
function Start () {
if(!obj){
obj=GameObject.FindGameObjectWithTag("untagget");
}
script=obj.GetComponent("window_control");
}
function Update () {
if(script.open_switch==true){
animation.Play("motion_01");
}
else{
yield WaitForSeconds(2.0);
animation.Play("motion_00");
}
}

130 :名前は開発中のものです。:2014/07/01(火) 22:38:10.43 ID:85UR2RLR.net
>>128
アドバイスありがとうございます。
ちなみに、2秒後に("motion_00")を再生させるには、
具体的にはどのように関数を入れればよいでしょうか。。。
宜しくお願いします。

var obj:GameObject;
var script:window_control;
function Start () {
if(!obj){
obj=GameObject.FindGameObjectWithTag("untagget");
}
script=obj.GetComponent("window_control");
}
function Update () {
if(script.open_switch==true){
animation.Play("motion_01");
}
else{
yield WaitForSeconds(2.0);
animation.Play("motion_00");
}
}

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

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