[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild1 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
144
(1): 名前は開発中のものです。 [] 2018/07/04(水) 00:28:49.31 ID:RvZnsCPI(1/6) AAS
>>139
139(2): 名前は開発中のものです。 [sage] 2018/07/03(火) 20:02:44.63 ID:m6+Emxdh(1) AAS
titleはちゃんとfindできてるのか?
" title = GameObject.Find("Title"); "
を記載しているので、できていると思っているのですが、
NULLが来てます的な警告の先がこの場所みたいなので
Findがうまくいっていないかもしれません。
しかし、
private GameObject title;
title = GameObject.Find("Title");
と、たったこれだけで他所のゲームオブジェクトをFindできるんですよね?
それ以外にしなければならないことありますか?

>>142
142(1): 弟子 ◆rZPPjYuxmQ [sage] 2018/07/03(火) 22:33:56.89 ID:wgFi8W22(1) AAS
>>134
このコードって恐らく公式の
外部リンク:unity3d.com
のコードでしょうか?

だとすると
「弾を撃つ必要がない時はyield break;を使用してコルーチンを終了させます。」
という具合に書いてるので、これを利用するとですね

// canShotがfalseの場合、ここでコルーチンを終了させる
if (spaceship.canShot == false) {
yield break;
}

となってるので、Titleが非表示の時はbreakするようにすればいいのかなぁと思います
そうです。弟子◆rZPPjYuxmQさんのアドバイス通り、
// canShotがfalseの場合、ここでコルーチンを終了させる
if (spaceship.canShot == false){yield break;}
if (title.activeSelf == True){yield break;}
と連続で記載してみました。
が、症状は同じで、まったく弾を撃たなくなってしまいました。
151
(1): 弟子 ◆rZPPjYuxmQ [sage] 2018/07/04(水) 11:01:38.37 ID:+Bj9nh1d(1/3) AAS
>>144
>>145
145(2): 名前は開発中のものです。 [] 2018/07/04(水) 00:31:36.06 ID:RvZnsCPI(2/6) AAS
>>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){ ”
この部分みたいです。

さてでは問題は他でも指摘されているように「Title」オブジェクトがちゃんと指定されているか?
という事で、これの一番簡単な解決は
「public Text Title」 ←これをインスペクタで指定してあげる
(Textを使う場合、Using Unity Engine.UIを指定する)
そうすれば「Start」関数で「title = GameObject.Find("Title"); 」は必要なくなります
恐らく、Findが失敗しているからNullエラーとなているのかと思われますが
Findが成功しているかどうか簡単に見るにはFindの後に「print(title.name)」でもしてみると解ります
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.034s