[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild1 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
146(1): 2018/07/04(水)00:33 ID:RvZnsCPI(3/6) AAS
ちなみに、エネミーを倒したあとに、警告が出ます。
エネミーを倒すたびに警告が出る状態です。
147: 2018/07/04(水)01:55 ID:W/Y7Ww/v(1) AAS
AA省
148(1): 2018/07/04(水)06:27 ID:PcbSJbIy(1) AAS
>>145
titleの中がぬるぽなんじゃ。
取得はどこだ?titleが居るってかactiveの時に取ってる?じゃないとfindで取れないぞ。
149(2): 2018/07/04(水)07:46 ID:TALB3D9+(1) AAS
titleオブジェクトの名前がTitleじゃない(誤記)
Titleを非表示でなくdestroyしている
title取得以前に弾を撃とうとしている又は何度も取得しようとしている
非表示以降に生成されるenemyがある
多分このどれか
>>146見るとenemyが複数回生成されるみたいだから少なくとも最後は引っかかる
150: 2018/07/04(水)10:55 ID:GdNJLKay(1) AAS
参考にしてみるといい外部リンク:goo.gl
151(1): 弟子 ◆rZPPjYuxmQ 2018/07/04(水)11:01 ID:+Bj9nh1d(1/3) AAS
>>144
>>145
さてでは問題は他でも指摘されているように「Title」オブジェクトがちゃんと指定されているか?
という事で、これの一番簡単な解決は
「public Text Title」 ←これをインスペクタで指定してあげる
(Textを使う場合、Using Unity Engine.UIを指定する)
そうすれば「Start」関数で「title = GameObject.Find("Title"); 」は必要なくなります
恐らく、Findが失敗しているからNullエラーとなているのかと思われますが
Findが成功しているかどうか簡単に見るにはFindの後に「print(title.name)」でもしてみると解ります
152: 弟子 ◆rZPPjYuxmQ 2018/07/04(水)11:06 ID:+Bj9nh1d(2/3) AAS
>>143
有料アセットなので試せないのでなんとも・・・
恐らく記載のバージョンでやってみて動けば、現在の143さんのバージョン違いによる事じゃないかなとしか
153(2): 2018/07/04(水)16:35 ID:RvZnsCPI(4/6) AAS
>>148
>>149
>>151
destroyしていないですし、
Using Unity Engine.UI無しでも取得できてる箇所もあるのでよくわからず、、
初心者のためか、どうしてもわかりません。
現在のゲームの一式Zipです、Unityで開いていただければ覗けると思います
8Mしか無い小さなファイルですので確認して頂いてよろしいでしょうか?
素材は公式チュートリアルのもので、ソースは2017に合わせて変更しています
外部リンク:ux.getuploader.com
省4
154(3): 2018/07/04(水)17:28 ID:30JL9X4X(1) AAS
>>153
見たけど>>149の後半そのままじゃないか、確認してくれよ……
1) プレイヤーの操作でTitleオブジェクトがactiveでなくなる
2) enemyが生成されtitleに代入しようとするもactiveでないオブジェクトはFindで引っかからず空のまま
3) titleの中身がnullの状態で静的でない変数を呼び出したのでNullReferenceExceptionで止まる
155(2): 2018/07/04(水)17:33 ID:s79xjkx+(1) AAS
GameObject.Findはactiveじゃないと使えないんだって
Transform.Findなら使えるかな
156: 2018/07/04(水)18:00 ID:RvZnsCPI(5/6) AAS
>>154
確認していただき、ありがとうございます。
>Titleオブジェクトがactiveでなくなる
認識不足でした、、そもそもactiveでなくなる、というのは
どういう状態のことですか?
自分はtitle.activeSelfの真偽はtitleの中のひとつのbool変数で
画像(テキスト)の表示非表示のスイッチみたいなものかと
思っていました。。。
title.activeSelf==falseだと、activeでなくなっている
という認識なんですね?
省9
157: 2018/07/04(水)18:09 ID:RvZnsCPI(6/6) AAS
調べてみると
GameObjectのactiveSelfは
ゲームオブジェクトのローカルのアクティブ状態(読み取り専用)
画像の非表示はそのオブジェクト自体の動作を
停止させて非表示にしているのですね、、
しかし、やはり、プレイヤー死亡後は
そのTitleオブジェクトは動き出してるはずで、、
ああ、もしかして、タイトル画面が表示されていて
敵が流れていても、その時にはすでにstart()を通らないから
title = GameObject.Find("Title");ができない状態だから?
158(2): 弟子 ◆rZPPjYuxmQ 2018/07/04(水)18:21 ID:+Bj9nh1d(3/3) AAS
>>153
ソース見ました
弾を打つ処理って無限ループの中で行っているのですね
なのでループの中に撃たない処理をいれないとダメですね
それと「Manager.cs」で既に title = GameObject.Find("Title");されていて成功しているので
他で使う場合は、まず宣言で
// タイトル
public static GameObject title;
の様に「public」な「static」の変数にします
で「Enemy.cs」の無限ループ中で
省16
159(2): 2018/07/05(木)04:52 ID:Gem47u68(1) AAS
>>158
ありがとうございます!
あの、質問なんですが今回はManager.csはメインスクリプトかと思うんですが、
要は、メインスクリプト内で取得した各オブジェクトの情報は、
そのほかのスクリプトや各オブジェクトにアセットしたスクリプト内において
public static GameObject 変数名;と記載したあと
以後スクリプト名.変数名で呼び出すことができるようになるのですか??
そして>>158の内容からですと、自分は今回他のスクリプト内で使用する記述方法を
間違っていた(public static GameObjectなど)ということで、
>>154さんや>>155さんの指摘である「activeじゃないから」云々は
省1
160: 2018/07/05(木)06:55 ID:w7MLipmi(1) AAS
findするタイミングを考えろ
タイトルでる
消える
敵出現
find
敵消える
敵につけたスクリプトだとfindできるタイミングがないんだよ
findするにはスタート時から消えないオブジェクトにスクリプトをつける必要がある
161: 弟子 ◆rZPPjYuxmQ 2018/07/05(木)11:09 ID:9fzjzEJn(1) AAS
>>159
>要は、メインスクリプト内で取得した各オブジェクトの情報は、
>そのほかのスクリプトや各オブジェクトにアセットしたスクリプト内において
>public static GameObject 変数名;と記載したあと
他のスクリプトで変数を使う場合には「public static」にするだけですね
>以後スクリプト名.変数名で呼び出すことができるようになるのですか??
呼び出すというか、使えるという感じでしょうか
A.csで定義した変数henをB.csやC.csでも上記の様に宣言すれば使えるけど、それぞれが呼び出して別の変数としてではなく、あくまでA.csのhenであり、B.csでhenに1を入れ、次にC.csでhenに3を入れた場合、次に参照する際には3となってます。
プロジェクトでユニークになってると思います。ですので、あれ、どこでこの数値いじったかな?とかいう事が起きるのでご注意ください。
省5
162: 2018/07/05(木)12:38 ID:MRR7aszu(1) AAS
>>159
いや、直接的には「activeじゃないから取得できない」で合ってる
現状だとenemyが生成されるたびに各個にtitleを取得しようとするから生成のタイミングでtitleが非activeだと取得に失敗してしまう
その解決法として「ゲーム開始直後、activeなうちに一回取得・staticな変数に入れて全てのenemyで使い回せ」というのがこのコテの提案
163: 2018/07/05(木)13:06 ID:30R4+BKt(1) AAS
次作るときは、敵マネージャー.csを作って、敵生成は全てそこでやるといいよ。
164(1): 2018/07/06(金)08:47 ID:bTnJUGNr(1) AAS
PG初心者になります。
C#で、下記のように".psd"の拡張子を指定したいのですが、
大文字、小文字を区別せず指定する場合はどのようにしたらよいでしょうか。
".psd"".PSD"".pSd"でも問題ないようにしたいです。
ご教授お願いいたします。
/// ファイル拡張子【psd】
public const string ExtensionPSD = ".psd";
165(1): 2018/07/06(金)09:06 ID:SbZqPch/(1) AAS
>>164
Unity関係ない気がしなくもないが、自力でやるなら文字を一旦すべて小文字化してから比較すればええんやで
上下前次1-新書関写板覧索設栞歴
あと 837 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.021s