[過去ログ]
【ゲームエンジン】Unity初心者質問スレBuild1 (1002レス)
【ゲームエンジン】Unity初心者質問スレBuild1 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
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
159: 名前は開発中のものです。 [] 2018/07/05(木) 04:52:10.53 ID:Gem47u68 >>158 ありがとうございます! あの、質問なんですが今回はManager.csはメインスクリプトかと思うんですが、 要は、メインスクリプト内で取得した各オブジェクトの情報は、 そのほかのスクリプトや各オブジェクトにアセットしたスクリプト内において public static GameObject 変数名;と記載したあと 以後スクリプト名.変数名で呼び出すことができるようになるのですか?? そして>>158の内容からですと、自分は今回他のスクリプト内で使用する記述方法を 間違っていた(public static GameObjectなど)ということで、 >>154さんや>>155さんの指摘である「activeじゃないから」云々は 今回は当てはまらない、ということですか? http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/159
160: 名前は開発中のものです。 [sage] 2018/07/05(木) 06:55:42.38 ID:w7MLipmi findするタイミングを考えろ タイトルでる 消える 敵出現 find 敵消える 敵につけたスクリプトだとfindできるタイミングがないんだよ findするにはスタート時から消えないオブジェクトにスクリプトをつける必要がある http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/160
161: 弟子 ◆rZPPjYuxmQ [sage] 2018/07/05(木) 11:09:32.51 ID:9fzjzEJn >>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となってます。 プロジェクトでユニークになってると思います。ですので、あれ、どこでこの数値いじったかな?とかいう事が起きるのでご注意ください。 >>>154さんや>>155さんの指摘である「activeじゃないから」云々は >今回は当てはまらない、ということですか? うーん、すいません154さんや155さんのところ読んでないのでこれについてはよくわかりません、申し訳ないです また何かあれば気軽に質問してください、私で分かる範囲でお答えさせていただきます お互い頑張って作品作っていきましょう! http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/161
162: 名前は開発中のものです。 [sage] 2018/07/05(木) 12:38:02.09 ID:MRR7aszu >>159 いや、直接的には「activeじゃないから取得できない」で合ってる 現状だとenemyが生成されるたびに各個にtitleを取得しようとするから生成のタイミングでtitleが非activeだと取得に失敗してしまう その解決法として「ゲーム開始直後、activeなうちに一回取得・staticな変数に入れて全てのenemyで使い回せ」というのがこのコテの提案 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/162
163: 名前は開発中のものです。 [sage] 2018/07/05(木) 13:06:01.71 ID:30R4+BKt 次作るときは、敵マネージャー.csを作って、敵生成は全てそこでやるといいよ。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/163
164: 名前は開発中のものです。 [sage] 2018/07/06(金) 08:47:46.43 ID:bTnJUGNr PG初心者になります。 C#で、下記のように".psd"の拡張子を指定したいのですが、 大文字、小文字を区別せず指定する場合はどのようにしたらよいでしょうか。 ".psd"".PSD"".pSd"でも問題ないようにしたいです。 ご教授お願いいたします。 /// ファイル拡張子【psd】 public const string ExtensionPSD = ".psd"; http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/164
165: 名前は開発中のものです。 [sage] 2018/07/06(金) 09:06:37.75 ID:SbZqPch/ >>164 Unity関係ない気がしなくもないが、自力でやるなら文字を一旦すべて小文字化してから比較すればええんやで http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/165
166: 名前は開発中のものです。 [sage] 2018/07/06(金) 09:21:09.69 ID:mqKRW7N6 指定時じゃなくて比較時に大文字小文字区別なしでString.compare()やったら? どうしてもって言うならStringじゃなくてregexでやるか。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/166
167: 名前は開発中のものです。 [sage] 2018/07/06(金) 09:38:00.97 ID:diIi72QZ >>165 >>166 ご指導ありがとうございます。 下記で取得したものを −−−−−−−−−−−−−−−−−−−−−−−−−−−−−− private void GetSceneTreeObjByFiles( ref List<SceneTreeObj> listParent, string downloadPath ) { var path = FTP.CommonWord.GetDownloadPathByPlatform( downloadPath ); { var files = GetFilesFromExtension( path, FTP.CommonWord.ExtensionPSD ); RegisterFiles( ref listParent, files, path, (Texture2D)Resources.Load( "button_com_file_shadow" ) ); files = GetFilesFromExtension( path, FTP.CommonWord.ExtensionJPG ); RegisterFiles( ref listParent, files, path, (Texture2D)Resources.Load( "button_com_file_shadow" ) ); } } −−−−−−−−−−−−−−−−−−−−−−−−−−−−−− こちらで条件付けしているのですが、 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−− /// ファイル拡張子【psd】 public const string ExtensionPSD = ".psd"; −−−−−−−−−−−−−−−−−−−−−−−−−−−−−− この場言、"downloadPath"を小文字化するのですが、どのように書けばよいのでしょうか。 急遽直さなければならず、ご教授いただければ幸いです。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/167
168: 名前は開発中のものです。 [sage] 2018/07/06(金) 09:49:28.52 ID:JxKSLFmq >>167 ふらっと C#,C♯,C#(初心者用) Part138 https://mevius.5ch.net/test/read.cgi/tech/1528194762/ http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/168
169: 名前は開発中のものです。 [sage] 2018/07/06(金) 09:55:13.52 ID:mqKRW7N6 >>167 試してないけど downladpatth.ToLowre()でならないかしら http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/169
170: 名前は開発中のものです。 [sage] 2018/07/06(金) 09:59:22.23 ID:mqKRW7N6 >>169 入力ミス downladPath.ToLowre() ね。 http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/170
171: 弟子 ◆rZPPjYuxmQ [sage] 2018/07/06(金) 10:24:48.79 ID:PYnnNWaZ ToLower() ttps://msdn.microsoft.com/ja-jp/library/e78f86at(v=vs.110).aspx http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/171
172: 名前は開発中のものです。 [sage] 2018/07/06(金) 11:01:26.39 ID:ziEtrYYq 文字列 小文字 C# でググれば一発 知識が少なくてC#なのかUnityなのかわかんなくても結果は同じ http://mevius.5ch.net/test/read.cgi/gamedev/1528249519/172
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 830 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.019s