[過去ログ]
【ゲームエンジン】Unity初心者質問スレBuild1 (1002レス)
【ゲームエンジン】Unity初心者質問スレBuild1 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
139: 名前は開発中のものです。 [sage] 2018/07/03(火) 20:02:44.63 ID:m6+Emxdh titleはちゃんとfindできてるのか? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/139
140: 名前は開発中のものです。 [sage] 2018/07/03(火) 20:16:20.25 ID:BqokYmSM gameobject.findって非アクティブも検索するんだったっけ? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/140
141: 名前は開発中のものです。 [sage] 2018/07/03(火) 21:28:51.32 ID:Oy6MCkRt しない http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/141
142: 弟子 ◆rZPPjYuxmQ [sage] 2018/07/03(火) 22:33:56.89 ID:wgFi8W22 >>134 このコードって恐らく公式の https://unity3d.com/jp/learn/tutorials/projects/2d-shooting-game/creating-enemies のコードでしょうか? だとすると 「弾を撃つ必要がない時はyield break;を使用してコルーチンを終了させます。」 という具合に書いてるので、これを利用するとですね // canShotがfalseの場合、ここでコルーチンを終了させる if (spaceship.canShot == false) { yield break; } となってるので、Titleが非表示の時はbreakするようにすればいいのかなぁと思います http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/142
143: 名前は開発中のものです。 [sage] 2018/07/03(火) 22:52:21.52 ID:L1TMFUeX すみません https://assetstore.unity.com/packages/3d/props/small-buttons-and-switches-65964 のアセット使ってトグルボタンぽちぽちしたいのですが、ボタンが動きません どう使えばいいのでしょうか? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/143
144: 名前は開発中のものです。 [] 2018/07/04(水) 00:28:49.31 ID:RvZnsCPI >>139 " title = GameObject.Find("Title"); " を記載しているので、できていると思っているのですが、 NULLが来てます的な警告の先がこの場所みたいなので Findがうまくいっていないかもしれません。 しかし、 private GameObject title; title = GameObject.Find("Title"); と、たったこれだけで他所のゲームオブジェクトをFindできるんですよね? それ以外にしなければならないことありますか? >>142 そうです。弟子◆rZPPjYuxmQさんのアドバイス通り、 // canShotがfalseの場合、ここでコルーチンを終了させる if (spaceship.canShot == false){yield break;} if (title.activeSelf == True){yield break;} と連続で記載してみました。 が、症状は同じで、まったく弾を撃たなくなってしまいました。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/144
145: 名前は開発中のものです。 [] 2018/07/04(水) 00:31:36.06 ID:RvZnsCPI >>138 >>139 NullReferenceException: Object reference not set to an instance of an object Enemy+<Start>c__Iterator0.MoveNext () (at Assets/Scripts/Enemy.cs:36) この警告先は " if (title.activeSelf == true){ ” この部分みたいです。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/145
146: 名前は開発中のものです。 [] 2018/07/04(水) 00:33:02.65 ID:RvZnsCPI ちなみに、エネミーを倒したあとに、警告が出ます。 エネミーを倒すたびに警告が出る状態です。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/146
147: 名前は開発中のものです。 [] 2018/07/04(水) 01:55:12.03 ID:W/Y7Ww/v /i/|ii!//|!/!i/´i/ .|i |/ノ i\i!゙、:iヽ|:::| ヽ 'i ! ヾi |'!ヽ::::||::::::/:::::::::::::::::::::ヽ i i 川i!ハ/" _! | │ 川 ヾ:ii ゙'∨ | ゙ヾiヽヽ;||:::::i'::::::::::::::::::::::::: ノ ノ/リ,,,,,,二三テ=''" ヽノ ル |ノノヽヾ ノ 、,,,ノ,、 iヽ:::||:::::i':::::::::::::::::::::::::::: /  ̄ ´~~゙'''' ゙''‐- ..,, ,, ‐' `゙ヾミッ、,, ヽ::|::::/:::::::::::::::::::::::::::: ,,イ| i' i" `'‐=' `'|/i!:::::i:::::::::::::::::::::::: i | :::::::ヽ::::ヽ::::::ヾ:: ゙、 l 〃::::: i//::::ハ::::::::::::::::::i::: i i \\\\\ヽ ) ヽ ′′′ / /:::::/:::::::::::::::::::|:::: ! | i ,,ィノ < :::: : /:::::/:::::::::::::::::::/:::: i! i i! /i/ ,r''''‐y'''.;、 \ /:::::/:::::/::::::::::::/::::: ゙i! | i /⌒' 、 Y:::::::::''::;;;;'.;.Y'⌒゙i /::::::/::::::/::::::::::::/::::/i i i ゙! ん、,,__ヽノ:::::::::::::::::::;;;;;{,__,,,r'' /:::::::/::::::/::::::::::::/::::// ゙、ii! ゙| i ノ ゝ;;;:::::::::::::::::::;ノ 。 `i //:::::/:::::/::::::::::::/::::::/::: ヾ!トl ゙i?U i 。l '゛.. ‐ー:::::i | //::::::/::::::/::::::/:::/:::::i!:::::: iiミ! ハ i l ,,,,::: :::;;;;;...{ ° ゙、 //::::://::::/::::::/:::::/::::i::::ii:: i!ヾ!i ゙、! , ' |::: ::::ヽ ..} |゙ヽ......,.,.,.,,,///://::://::::/::::://::::i::::リ:: !ヽヾi i゙、 ___,,,/ }:: : ;;;::: ::::::::} レWノ'レi/、//::/:://:/:::/::/:::ハ:i |:: http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/147
148: 名前は開発中のものです。 [] 2018/07/04(水) 06:27:05.10 ID:PcbSJbIy >>145 titleの中がぬるぽなんじゃ。 取得はどこだ?titleが居るってかactiveの時に取ってる?じゃないとfindで取れないぞ。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/148
149: 名前は開発中のものです。 [sage] 2018/07/04(水) 07:46:44.11 ID:TALB3D9+ titleオブジェクトの名前がTitleじゃない(誤記) Titleを非表示でなくdestroyしている title取得以前に弾を撃とうとしている又は何度も取得しようとしている 非表示以降に生成されるenemyがある 多分このどれか >>146見るとenemyが複数回生成されるみたいだから少なくとも最後は引っかかる http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/149
150: 名前は開発中のものです。 [] 2018/07/04(水) 10:55:01.63 ID:GdNJLKay 参考にしてみるといいhttps://goo.gl/9pHp9Y http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/150
151: 弟子 ◆rZPPjYuxmQ [sage] 2018/07/04(水) 11:01:38.37 ID:+Bj9nh1d >>144 >>145 さてでは問題は他でも指摘されているように「Title」オブジェクトがちゃんと指定されているか? という事で、これの一番簡単な解決は 「public Text Title」 ←これをインスペクタで指定してあげる (Textを使う場合、Using Unity Engine.UIを指定する) そうすれば「Start」関数で「title = GameObject.Find("Title"); 」は必要なくなります 恐らく、Findが失敗しているからNullエラーとなているのかと思われますが Findが成功しているかどうか簡単に見るにはFindの後に「print(title.name)」でもしてみると解ります http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/151
152: 弟子 ◆rZPPjYuxmQ [sage] 2018/07/04(水) 11:06:38.82 ID:+Bj9nh1d >>143 有料アセットなので試せないのでなんとも・・・ 恐らく記載のバージョンでやってみて動けば、現在の143さんのバージョン違いによる事じゃないかなとしか http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/152
153: 名前は開発中のものです。 [] 2018/07/04(水) 16:35:34.35 ID:RvZnsCPI >>148 >>149 >>151 destroyしていないですし、 Using Unity Engine.UI無しでも取得できてる箇所もあるのでよくわからず、、 初心者のためか、どうしてもわかりません。 現在のゲームの一式Zipです、Unityで開いていただければ覗けると思います 8Mしか無い小さなファイルですので確認して頂いてよろしいでしょうか? 素材は公式チュートリアルのもので、ソースは2017に合わせて変更しています https://ux.getuploader.com/zipcodezipcode/download/172 スクリプトフォルダのEnemy.csファイルを確認してほしいです。 コメントで消してます部分がやりたいことです。 なにが間違っているのか、ご指摘頂ければ幸いです。 👀 Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2) http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/153
154: 名前は開発中のものです。 [sage] 2018/07/04(水) 17:28:56.01 ID:30JL9X4X >>153 見たけど>>149の後半そのままじゃないか、確認してくれよ…… 1) プレイヤーの操作でTitleオブジェクトがactiveでなくなる 2) enemyが生成されtitleに代入しようとするもactiveでないオブジェクトはFindで引っかからず空のまま 3) titleの中身がnullの状態で静的でない変数を呼び出したのでNullReferenceExceptionで止まる http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/154
155: 名前は開発中のものです。 [sage] 2018/07/04(水) 17:33:31.63 ID:s79xjkx+ GameObject.Findはactiveじゃないと使えないんだって Transform.Findなら使えるかな http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/155
156: 名前は開発中のものです。 [] 2018/07/04(水) 18:00:16.94 ID:RvZnsCPI >>154 確認していただき、ありがとうございます。 >Titleオブジェクトがactiveでなくなる 認識不足でした、、そもそもactiveでなくなる、というのは どういう状態のことですか? 自分はtitle.activeSelfの真偽はtitleの中のひとつのbool変数で 画像(テキスト)の表示非表示のスイッチみたいなものかと 思っていました。。。 title.activeSelf==falseだと、activeでなくなっている という認識なんですね? でも、プレイヤーが死亡したあとタイトル文字が出ますよね? その状態はtitle.activeSelf==tureになって、 activeである状態ではないのでしょうか? タイトル文字が出ても、敵が残っていると そいつは前に進んでいます。 その時に、弾を吐かない様にしたかったので コメントアウトしてるソースを記載しようと思ったんですが。。 自分の認識違いがなんなのか 正してもらえませんでしょうか http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/156
157: 名前は開発中のものです。 [] 2018/07/04(水) 18:09:32.59 ID:RvZnsCPI 調べてみると GameObjectのactiveSelfは ゲームオブジェクトのローカルのアクティブ状態(読み取り専用) 画像の非表示はそのオブジェクト自体の動作を 停止させて非表示にしているのですね、、 しかし、やはり、プレイヤー死亡後は そのTitleオブジェクトは動き出してるはずで、、 ああ、もしかして、タイトル画面が表示されていて 敵が流れていても、その時にはすでにstart()を通らないから title = GameObject.Find("Title");ができない状態だから? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/157
158: 弟子 ◆rZPPjYuxmQ [sage] 2018/07/04(水) 18:21:48.52 ID:+Bj9nh1d >>153 ソース見ました 弾を打つ処理って無限ループの中で行っているのですね なのでループの中に撃たない処理をいれないとダメですね それと「Manager.cs」で既に title = GameObject.Find("Title");されていて成功しているので 他で使う場合は、まず宣言で // タイトル public static GameObject title; の様に「public」な「static」の変数にします で「Enemy.cs」の無限ループ中で while (true) { // 子要素を全て取得する for (int i = 0; i < transform.childCount; i++) { Transform shotPosition = transform.GetChild(i); //弾を撃たせる //ShotPositionの位置/角度で弾を撃つ if (Manager.title.activeSelf == false) spaceship.Shot(shotPosition); } // shotDelay秒待つ yield return new WaitForSeconds(spaceship.shotDelay); } これで行けるかと思います 一応、インスペクタでタイトルを操作した画面です ttps://imgur.com/a/qEZk4ej http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/158
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 844 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.039s