[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild1 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
151
(1): 弟子 ◆rZPPjYuxmQ [sage] 2018/07/04(水) 11:01:38.37 ID:+Bj9nh1d(1/3) AAS
>>144
144(1): 名前は開発中のものです。 [] 2018/07/04(水) 00:28:49.31 ID:RvZnsCPI(1/6) AAS
>>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;}
と連続で記載してみました。
が、症状は同じで、まったく弾を撃たなくなってしまいました。
>>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)」でもしてみると解ります
152: 弟子 ◆rZPPjYuxmQ [sage] 2018/07/04(水) 11:06:38.82 ID:+Bj9nh1d(2/3) AAS
>>143
143(1): 名前は開発中のものです。 [sage] 2018/07/03(火) 22:52:21.52 ID:L1TMFUeX(1) AAS
すみません
外部リンク:assetstore.unity.com
のアセット使ってトグルボタンぽちぽちしたいのですが、ボタンが動きません
どう使えばいいのでしょうか?
有料アセットなので試せないのでなんとも・・・
恐らく記載のバージョンでやってみて動けば、現在の143さんのバージョン違いによる事じゃないかなとしか
158
(2): 弟子 ◆rZPPjYuxmQ [sage] 2018/07/04(水) 18:21:48.52 ID:+Bj9nh1d(3/3) AAS
>>153
153(2): 名前は開発中のものです。 [] 2018/07/04(水) 16:35:34.35 ID:RvZnsCPI(4/6) AAS
>>148
>>149
>>151
destroyしていないですし、
Using Unity Engine.UI無しでも取得できてる箇所もあるのでよくわからず、、
初心者のためか、どうしてもわかりません。
現在のゲームの一式Zipです、Unityで開いていただければ覗けると思います
8Mしか無い小さなファイルですので確認して頂いてよろしいでしょうか?
素材は公式チュートリアルのもので、ソースは2017に合わせて変更しています
外部リンク:ux.getuploader.com

スクリプトフォルダのEnemy.csファイルを確認してほしいです。
コメントで消してます部分がやりたいことです。
なにが間違っているのか、ご指摘頂ければ幸いです。

Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
ソース見ました
弾を打つ処理って無限ループの中で行っているのですね
なのでループの中に撃たない処理をいれないとダメですね
それと「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);
}
これで行けるかと思います

一応、インスペクタでタイトルを操作した画面です
画像リンク

前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.042s