1 名前:名前は開発中のものです。 [2018/06/06(水) 10:45:19.46 ID:3pAIyBsg.net] フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。 プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他 ■注意事項 「アセットを買えば」「チュートリアルやれ」等禁止、初心者の質問疑問に初心者が答えるスレ、ググれじゃなく何のキーワードでググったらいいかを書く 次スレは>>950 以降にできるだけ早く(できれば回答者が回答した後にでも余裕を持って)建てて下さい。 ■Unity 2ch Wiki(まとめ、過去ログ、リンク集) www24.atwiki.jp/unity2ch/ ●リンク ・Unity(日本公式サイト) unity3d.com/jp ・マニュアル docs.unity3d.com/ja/current/Manual/index.html ・チュートリアル unity3d.com/jp/learn/tutorials ・スクリプトリファレンス docs.unity3d.com/ja/current/ScriptReference/index.html ・FAQ unity3d.com/jp/unity/faq ・MSDN msdn.microsoft.com/ja-jp/ms348103 ←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。 関連スレ 【3Dゲームエンジン】Unity質問スレッド35 https://mevius.5ch.net/test/read.cgi/gamedev/1523771570/
115 名前:名前は開発中のものです。 mailto:sage [2018/06/28(木) 16:07:14.65 ID:/+kZ1wVw.net] >>108 俺のスパゲティーコードでいいならのせるぞ
116 名前:弟子 mailto:sage [2018/06/28(木) 16:07:56.12 ID:/UzN8HYz.net] 最後のサンプル Unityという事でアニメにして動かしてみた まぁこういう事も出来るという事で… ttps://i.gyazo.com/757bba69607b381739ab1976c078cf09.png ttps://i.gyazo.com/17843bf97b820b605fec6434d4a2b9b5.png ttps://imgur.com/a/xUWY8E3 つまり何が言いたいかというと、一つのやりたいことを行うのに沢山のやり方があって そのどれをやってもいいしコードの書き方も色々とあるわけさ まぁ仕事として他人と共同で作成とかになるとコード規約とか出てくるけど まぁこんなとこでホビーとしてやる分には、まず動かしてみる事が一番大事 口だけで文句言うのが一番進歩もしないって事よ
117 名前:弟子 mailto:sage [2018/06/28(木) 16:11:42.18 ID:/UzN8HYz.net] >>110 是非是非、他人のコードはいい勉強になりますので見て見たいです 自分では思ってもみない「気づき」が必ずあるので >>111 public Transform trTriangle; private void Awake() { trTriangle = GetComponent<Transform>(); } これ使ってないので外すの忘れました^^;
118 名前:名前は開発中のものです。 mailto:sage [2018/06/28(木) 16:42:26.57 ID:UPpeKgHO.net] 111が初心者向けとしてのサンプルとしては
119 名前:一番良いと思う なんでactiveの切り替えなんてトリッキーとも取れるような手法を一番に持ってきたんだろう animatorだと他の要素を加えるときに制約になる可能性があるから、別手法として96みたいにすることもできるって流れが普通だと思うけど [] [ここ壊れてます]
120 名前:名前は開発中のものです。 mailto:sage [2018/06/28(木) 17:06:10.17 ID:/+kZ1wVw.net] とりあえずてきとうに作った。 自分でもクソコード書いてるかわからんからどんどん指摘してくれ。よくない癖とかついてそうで怖いからな。 画面内に収まるようにもしてみた。 ttps://i.imgur.com/Cor5zzP.png
121 名前:名前は開発中のものです。 mailto:sage [2018/06/28(木) 17:06:14.63 ID:/+kZ1wVw.net] とりあえずてきとうに作った。 自分でもクソコード書いてるかわからんからどんどん指摘してくれ。よくない癖とかついてそうで怖いからな。 画面内に収まるようにもしてみた。 ttps://i.imgur.com/Cor5zzP.png
122 名前:名前は開発中のものです。 mailto:sage [2018/06/28(木) 17:07:01.22 ID:/+kZ1wVw.net] うわ、連投すまん。
123 名前:名前は開発中のものです。 mailto:sage [2018/06/28(木) 17:17:38.71 ID:UPpeKgHO.net] >>115 特に気になるとこ無い気がする min maxは画面サイズが変更されたときに再計算すればいいじゃないとか思ったけど、この程度の処理気にするもんでも無いし
124 名前:弟子 mailto:sage [2018/06/28(木) 17:42:03.28 ID:/UzN8HYz.net] >>115 GetAxis便利ですよねー ただ今回の最初の要求って>>79 なので上下いらないかなと思うのです それと、位置移動なんですが、これって指定位置で止まるんでしょうか? ちなみに自分はSerializeFieldの使い方知らないのですけど TransformがPrivateなのですが、これってどこで指定するんでしょうか? インスペクタじゃ出来ないですよね?
125 名前:弟子 mailto:sage [2018/06/28(木) 17:44:41.51 ID:/UzN8HYz.net] あ、あとspeedもSerializeFieldになってますけど ただこちらも初期値入ってないけど、もしかしてSerializeFieldにするとどっかで初期化されるというか アタッチしたオブジェクトの何かを持ってきてくれるのでしょうか? ちょっと自分にはわからない事が多いかもしれません><
126 名前:名前は開発中のものです。 mailto:sage [2018/06/28(木) 17:55:42.78 ID:/+kZ1wVw.net] >>118 SerializeFieldはprivateでもインスペクタで値を設定できるようにする属性だよ。 publicにしたらどこから値が変えられるかわからないからprivateにしてるんだけど、それじゃインスペクタで参照できないからこの属性で強制的にシリアライズしてる。
127 名前:名前は開発中のものです。 mailto:sage [2018/06/28(木) 18:57:50.31 ID:H6a6imyl.net] >>118 止まるというより2点で指定された長方形区画から外れると枠上に移動するようになってないか
128 名前:弟子 mailto:sage [2018/06/28(木) 19:22:46.38 ID:/UzN8HYz.net] >>120 なるほど、これは便利な機能ですね!勉強ななりました! ありがとう
129 名前:名前は開発中のものです。 mailto:sage [2018/06/28(木) 19:37:21.68 ID:TZKnsOc7.net] >>106 俺が反論しようとしたポイント先取りするなよwww分かってくれてありがとう! >>98 のコードだと振動しちゃうので、そっち突っ込まれるかなと思ったけど、検討違いな突っ込みだったのでびっくりだよw
130 名前:名前は開発中のものです。 mailto:sage [2018/06/28(木) 21:57:18.70 ID:cx/Kc4dr.net] >>79 int[] x=new int[]{-8,-4,0,4,8}; int sw;int dir;int n=2;float nextX; void Start(){transform.position=new Vector2(x[n],0);} void Update () { if(sw==0){ if(Input.GetKeyDown(KeyCode.A)&&n>0){sw=1;dir=-1;n=n-1;nextX=x[n];} if(Input.GetKeyDown(KeyCode.D)&&n<4){sw=1;dir=1;n=n+1;nextX=x[n];} } if(sw==1){ transform.Translate(new Vector2(0.1f*dir,0)); if(dir==1&&transform.position.x>nextX){sw=0;transform.position=new Vector2(nextX,0);} if(dir==-1&&transform.position.x<nextX){sw=0;transform.position=new Vector2(nextX,0);} } }
131 名前:名前は開発中のものです。 mailto:sage [2018/06/28(木) 22:00:25.96 ID:cx/Kc4dr.net] floatにする必要なかったな
132 名前:名前は開発中のものです。 mailto:sage [2018/06/28(木) 23:02:09.99 ID:pfPaTp9f.net] >122 弟子 ◆rZPPjYuxmQ 2018/06/28(木) 19:22:46.38ID:/UzN8HYz なんでコイツ質問スレ乱立してんの? 【ゲームエンジン】Unityなんでも質問スレpart1 1 名前:名前は開発中のものです。 2018/06/28(木) 15:25:16.78 ID:/UzN8HYz
133 名前:弟子 mailto:sage [2018/06/28(木) 23:40:04.36 ID:/UzN8HYz.net] >>126 そっちのスレはなんでもありのスレ ここは素人が答えるスレで注意事項がある それぐらい読めるでしよ?
134 名前:名前は開発中のものです。 mailto:sage [2018/06/29(金) 01:26:58.57 ID:AOmIYWRR.net] >>127 そういうのを荒し行為、迷惑行為って言うんだよ 学習しなよ 「スレを立てる時は同じような話題のスレを乱立させないでください」という5ch利用の基本注意書きがある それくらい読めるでしょ?
135 名前:名前は開発中のものです。 mailto:sage [2018/06/29(金) 01:29:50.68 ID:AOmIYWRR.net] この3人完全に荒しだな 菩薩@太子 弟子 ◆rZPPjYuxmQ ダーク王鍬大使 ◆SoVpkB15jY マジ迷惑すぎる
136 名前:名前は開発中のものです。 mailto:sage [2018/06/29(金) 04:22:03.78 ID:H1gqcYbG.net] ここは初心者が困惑するスレですか?
137 名前:名前は開発中のものです。 mailto:sage [2018/06/29(金) 04:44:21.40 ID:B66gImoO.net] 自分より初心者の奴にマウントを取りたいが為に「弟子」が立てた初心者専用スレ。 残念ながらマウントをとられてしまったので、そいつらを追い出すために再び別の質問スレを立てる。 以後、糞コテ「弟子」の隔離スレとなった。
138 名前:名前は開発中のものです。 mailto:sage [2018/06/29(金) 10:15:45.99 ID:KJpjNVGQ.net] 質問に答えてくれるスレなら何でもいいんだが
139 名前:名前は開発中のものです。 mailto:sage [2018/07/03(火) 09:46:10.78 ID:AtrhXQ0j.net] adsでインプレッションが150くらいで$15ってついてたけどそんなけ儲けが出たという事ですか?
140 名前:名前は開発中のものです。 [2018/07/03(火) 18:42:33.52 ID:DgOGkLki.net] Taitleオブジェクト(TXT表示だけ)が表示中は 敵オブジェクトが弾を発射しない様に改造しているのですが Enemyにアセットしたcsの、弾を撃つ命令を if文で、「Taitleオブジェクトが非表示なら弾を撃つ」とすればいいだけだと 思ったのですが、うまくいきません。 Enemy.csの弾の命令は while (true) { // 子要素を全て取得する for (int i = 0; i < transform.childCount; i++) { Transform shotPosition = transform.GetChild(i); // ShotPositionの位置/角度で弾を撃つ spaceship.Shot(shotPosition); } // shotDelay秒待つ yield return new WaitForSeconds(spaceship.shotDelay); } なんですが、
141 名前:名前は開発中のものです。 [2018/07/03(火) 18:43:10.13 ID:DgOGkLki.net] で、>>134 を while (true) { // 子要素を全て取得する for (int i = 0; i < transform.childCount; i++) { Transform shotPosition = transform.GetChild(i); if(title.activeSelf == false){ // ShotPositionの位置/角度で弾を撃つ spaceship.Shot(shotPosition); } } // shotDelay秒待つ yield return new WaitForSeconds(spaceship.shotDelay); } と書き加えました。 もちろん、 // タイトルオブジェクトを取得 private GameObject title; // Titleゲームオブジェクトを検索し取得する title = GameObject.Find("Title"); をクラス内に記載もしました。 そしたら、敵がゲーム中も一切弾を撃たなくなりました。 エラー文は NullReferenceException: Object reference not set to an instance of an object Enemy+<Start>c__Iterator0.MoveNext () (at Assets/Scripts/Enemy.cs:46) UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress) (at /Users/builduser/buildslave/unity/build/Runtime/Export/Coroutines.cs:17) です。
142 名前:名前は開発中のものです。 [2018/07/03(火) 18:43:25.91 ID:DgOGkLki.net] なにが間違っていますか? 教えてください。
143 名前:名前は開発中のものです。 mailto:sage [2018/07/03(火) 19:01:59.41 ID:L0TgVbu0.net] >>136 死ねガイジ
144 名前:名前は開発中のものです。 mailto:sage [2018/07/03(火) 19:58:29.00 ID:bkI+tY6O.net] エラー出てるのどの行?
145 名前:名前は開発中のものです。 mailto:sage [2018/07/03(火) 20:02:44.63 ID:m6+Emxdh.net] titleはちゃんとfindできてるのか?
146 名前:名前は開発中のものです。 mailto:sage [2018/07/03(火) 20:16:20.25 ID:BqokYmSM.net] gameobject.findって非アクティブも検索するんだったっけ?
147 名前:名前は開発中のものです。 mailto:sage [2018/07/03(火) 21:28:51.32 ID:Oy6MCkRt.net] しない
148 名前:弟子 mailto:sage [2018/07/03(火) 22:33:56.89 ID:wgFi8W22.net] >>134 このコードって恐らく公式の https://unity3d.com/jp/learn/tutorials/projects/2d-shooting-game/creating-
149 名前:enemies のコードでしょうか? だとすると 「弾を撃つ必要がない時はyield break;を使用してコルーチンを終了させます。」 という具合に書いてるので、これを利用するとですね // canShotがfalseの場合、ここでコルーチンを終了させる if (spaceship.canShot == false) { yield break; } となってるので、Titleが非表示の時はbreakするようにすればいいのかなぁと思います [] [ここ壊れてます]
150 名前:名前は開発中のものです。 mailto:sage [2018/07/03(火) 22:52:21.52 ID:L1TMFUeX.net] すみません https://assetstore.unity.com/packages/3d/props/small-buttons-and-switches-65964 のアセット使ってトグルボタンぽちぽちしたいのですが、ボタンが動きません どう使えばいいのでしょうか?
151 名前:名前は開発中のものです。 [2018/07/04(水) 00:28:49.31 ID:RvZnsCPI.net] >>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;} と連続で記載してみました。 が、症状は同じで、まったく弾を撃たなくなってしまいました。
152 名前:名前は開発中のものです。 [2018/07/04(水) 00:31:36.06 ID:RvZnsCPI.net] >>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){ ” この部分みたいです。
153 名前:名前は開発中のものです。 [2018/07/04(水) 00:33:02.65 ID:RvZnsCPI.net] ちなみに、エネミーを倒したあとに、警告が出ます。 エネミーを倒すたびに警告が出る状態です。
154 名前:名前は開発中のものです。 [2018/07/04(水) 01:55:12.03 ID:W/Y7Ww/v.net] /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 ゙iU i 。l '゛.. ‐ー:::::i | //::::::/::::::/::::::/:::/:::::i!:::::: iiミ! ハ i l ,,,,::: :::;;;;;...{ ° ゙、 //::::://::::/::::::/:::::/::::i::::ii:: i!ヾ!i ゙、! , ' |::: ::::ヽ ..} |゙ヽ......,.,.,.,,,///://::://::::/::::://::::i::::リ:: !ヽヾi i゙、 ___,,,/ }:: : ;;;::: ::::::::} レWノ'レi/、//::/:://:/:::/::/:::ハ:i |::
155 名前:名前は開発中のものです。 [2018/07/04(水) 06:27:05.10 ID:PcbSJbIy.net] >>145 titleの中がぬるぽなんじゃ。 取得はどこだ?titleが居るってかactiveの時に取ってる?じゃないとfindで取れないぞ。
156 名前:名前は開発中のものです。 mailto:sage [2018/07/04(水) 07:46:44.11 ID:TALB3D9+.net] titleオブジェクトの名前がTitleじゃない(誤記) Titleを非表示でなくdestroyしている title取得以前に弾を撃とうとしている又は何度も取得しようとしている 非表示以降に生成されるenemyがある 多分このどれか >>146 見るとenemyが複数回生成されるみたいだから少なくとも最後は引っかかる
157 名前:名前は開発中のものです。 [2018/07/04(水) 10:55:01.63 ID:GdNJLKay.net] 参考にしてみるといいhttps://goo.gl/9pHp9Y
158 名前:弟子 mailto:sage [2018/07/04(水) 11:01:38.37 ID:+Bj9nh1d.net] >>144 >>145 さてでは問題は他でも指摘されているように「Title」オブジェクトがちゃんと指定されているか? という事で、これの一番簡単な解決は 「public Text Title」 ←これをインスペクタで指定してあげる (Textを使う場合、Using Unity Engine.UIを指定する) そうすれば「Start」関数で「title = GameObject.Find("Title"); 」は必要なくなります 恐らく、Findが失敗しているからNullエラーとなているのかと思われますが Findが成功しているかどうか簡単に見るにはFindの後に「print(title.name)」でもしてみると解ります
159 名前:弟子 mailto:sage [2018/07/04(水) 11:06:38.82 ID:+Bj9nh1d.net] >>143 有料アセットなので試せないのでなんとも・・・ 恐らく記載のバージョンでやってみて動けば、現在の143さんのバージョン違いによる事じゃないかなとしか
160 名前:名前は開発中のものです。 [2018/07/04(水) 16:35:34.35 ID:RvZnsCPI.net] >>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)
161 名前:名前は開発中のものです。 mailto:sage [2018/07/04(水) 17:28:56.01 ID:30JL9X4X.net] >>153 見たけど>>149 の後半そのままじゃないか、確認してくれよ…… 1) プレイヤーの操作でTitleオブジェクトがactiveでなくなる 2) enemyが生成されtitleに代入しようとするもactiveでないオブジェクトはFindで引っかからず空のまま 3) titleの中身がnullの状態で静的でない変数を呼び出したのでNullReferenceExceptionで止まる
162 名前:名前は開発中のものです。 mailto:sage [2018/07/04(水) 17:33:31.63 ID:s79xjkx+.net] GameObject.Findはactiveじゃないと使えないんだって Transform.Findなら使えるかな
163 名前:名前は開発中のものです。 [2018/07/04(水) 18:00:16.94 ID:RvZnsCPI.net] >>154 確認していただき、ありがとうございます。 >Titleオブジェクトがactiveでなくなる 認識不足でした、、そもそもactiveでなくなる、というのは どういう状態のことですか? 自分はtitle.activeSelfの真偽はtitleの中のひとつのbool変数で 画像(テキスト)の表示非表示のスイッチみたいなものかと 思っていました。。。 title.activeSelf==falseだと、activeでなくなっている という認識なんですね? でも、プレイヤーが死亡したあとタイトル文字が出ますよね? その状態はtitle.activeSelf==tureになって、 activeである状態ではないのでしょうか? タイトル文字が出ても、敵が残っていると そいつは前に進んでいます。 その時に、弾を吐かない様にしたかったので コメントアウトしてるソースを記載しようと思ったんですが。。 自分の認識違いがなんなのか 正してもらえませんでしょうか
164 名前:名前は開発中のものです。 [2018/07/04(水) 18:09:32.59 ID:RvZnsCPI.net] 調べてみると GameObjectのactiveSelfは ゲームオブジェクトのローカルのアクティブ状態(読み取り専用) 画像の非表示はそのオブジェクト自体の動作を 停止させて非表示にしているのですね、、 しかし、やはり、プレイヤー死亡後は そのTitleオブジェクトは動き出してるはずで、、 ああ、もしかして、タイトル画面が表示されていて 敵が流れていても、その時にはすでにstart()を通らないから title = GameObject.Find("Title");ができない状態だから?
165 名前:弟子 mailto:sage [2018/07/04(水) 18:21:48.52 ID:+Bj9nh1d.net] >>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
166 名前:名前は開発中のものです。 [2018/07/05(木) 04:52:10.53 ID:Gem47u68.net] >>158 ありがとうございます! あの、質問なんですが今回はManager.csはメインスクリプトかと思うんですが、 要は、メインスクリプト内で取得した各オブジェクトの情報は、 そのほかのスクリプトや各オブジェクトにアセットしたスクリプト内において public static GameObject 変数名;と記載したあと 以後スクリプト名.変数名で呼び出すことができるようになるのですか?? そして>>158 の内容からですと、自分は今回他のスクリプト内で使用する記述方法を 間違っていた(public static GameObjectなど)ということで、 >>154 さんや>>155 さんの指摘である「activeじゃないから」云々は 今回は当てはまらない、ということですか?
167 名前:名前は開発中のものです。 mailto:sage [2018/07/05(木) 06:55:42.38 ID:w7MLipmi.net] findするタイミングを考えろ タイトルでる 消える 敵出現 find 敵消える 敵につけたスクリプトだとfindできるタイミングがないんだよ findするにはスタート時から消えないオブジェクトにスクリプトをつける必要がある
168 名前:弟子 mailto:sage [2018/07/05(木) 11:09:32.51 ID:9fzjzEJn.net] >>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さんのところ読んでないのでこれについてはよくわかりません、申し訳ないです また何かあれば気軽に質問してください、私で分かる範囲でお答えさせていただきます お互い頑張って作品作っていきましょう!
169 名前:名前は開発中のものです。 mailto:sage [2018/07/05(木) 12:38:02.09 ID:MRR7aszu.net] >>159 いや、直接的には「activeじゃないから取得できない」で合ってる 現状だとenemyが生成されるたびに各個にtitleを取得しようとするから生成のタイミングでtitleが非activeだと取得に失敗してしまう その解決法として「ゲーム開始直後、activeなうちに一回取得・staticな変数に入れて全てのenemyで使い回せ」というのがこのコテの提案
170 名前:名前は開発中のものです。 mailto:sage [2018/07/05(木) 13:06:01.71 ID:30R4+BKt.net]
171 名前:沚るときは、敵マネージャー.csを作って、敵生成は全てそこでやるといいよ。 [] [ここ壊れてます]
172 名前:名前は開発中のものです。 mailto:sage [2018/07/06(金) 08:47:46.43 ID:bTnJUGNr.net] PG初心者になります。 C#で、下記のように".psd"の拡張子を指定したいのですが、 大文字、小文字を区別せず指定する場合はどのようにしたらよいでしょうか。 ".psd"".PSD"".pSd"でも問題ないようにしたいです。 ご教授お願いいたします。 /// ファイル拡張子【psd】 public const string ExtensionPSD = ".psd";
173 名前:名前は開発中のものです。 mailto:sage [2018/07/06(金) 09:06:37.75 ID:SbZqPch/.net] >>164 Unity関係ない気がしなくもないが、自力でやるなら文字を一旦すべて小文字化してから比較すればええんやで
174 名前:名前は開発中のものです。 mailto:sage [2018/07/06(金) 09:21:09.69 ID:mqKRW7N6.net] 指定時じゃなくて比較時に大文字小文字区別なしでString.compare()やったら? どうしてもって言うならStringじゃなくてregexでやるか。
175 名前:名前は開発中のものです。 mailto:sage [2018/07/06(金) 09:38:00.97 ID:diIi72QZ.net] >>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"を小文字化するのですが、どのように書けばよいのでしょうか。 急遽直さなければならず、ご教授いただければ幸いです。
176 名前:名前は開発中のものです。 mailto:sage [2018/07/06(金) 09:49:28.52 ID:JxKSLFmq.net] >>167 ふらっと C#,C♯,C#(初心者用) Part138 https://mevius.5ch.net/test/read.cgi/tech/1528194762/
177 名前:名前は開発中のものです。 mailto:sage [2018/07/06(金) 09:55:13.52 ID:mqKRW7N6.net] >>167 試してないけど downladpatth.ToLowre()でならないかしら
178 名前:名前は開発中のものです。 mailto:sage [2018/07/06(金) 09:59:22.23 ID:mqKRW7N6.net] >>169 入力ミス downladPath.ToLowre() ね。
179 名前:弟子 mailto:sage [2018/07/06(金) 10:24:48.79 ID:PYnnNWaZ.net] ToLower() ttps://msdn.microsoft.com/ja-jp/library/e78f86at(v=vs.110).aspx
180 名前:名前は開発中のものです。 mailto:sage [2018/07/06(金) 11:01:26.39 ID:ziEtrYYq.net] 文字列 小文字 C# でググれば一発 知識が少なくてC#なのかUnityなのかわかんなくても結果は同じ
181 名前:名前は開発中のものです。 [2018/07/06(金) 20:37:16.86 ID:TxoEW2Q0.net] >>弟子 ◆rZPPjYuxmQ すみません、>>158 ができませんでした。 宣言したあと、 「Manager.title.activeSelf」では 下線のエラーが出てしまいます。 https://dl1.getuploader.com/g/6%7Csaro111/340/000.jpg 確かに考えてみると、 public static GameObject title;の宣言から 使用時にManager.titleでは繋がらない気がしますが、 宣言場所が問題なんでしょうか?
182 名前:>>34 mailto:sage [2018/07/06(金) 20:50:18.52 ID:gEW+Hr/Q.net] Manager.title の青文字、Managerはいらないよ
183 名前:名前は開発中のものです。 mailto:sage [2018/07/06(金) 20:52:15.36 ID:gEW+Hr/Q.net] if(Manager.title.activeSelf == false) じゃなくて if(title.activeSelf == false) ね。
184 名前:名前は開発中のものです。 [2018/07/06(金) 20:59:50.58 ID:TxoEW2Q0.net] >>175 ありがとうございます。 そう思って、自分も「Manager.」を削ってみたんです。 そしたらちゃんと動くんですが、 敵が弾を一切撃たないままでして、、、
185 名前:名前は開発中のものです。 [2018/07/06(金) 21:00:36.73 ID:TxoEW2Q0.net] やはり、NULLが返ってきてるんです。。 んー
186 名前:名前は開発中のものです。 mailto:sage [2018/07/06(金) 21:17:26.03 ID:VvyEnY8t.net] そのスクリプトを
187 名前:アタッチしたゲームオブジェクトは、もしかして複数ないだろうね? [] [ここ壊れてます]
188 名前:名前は開発中のものです。 mailto:sage [2018/07/06(金) 21:23:04.84 ID:HglSf1KI.net] static書く場所間違えてんぞ 宣言すんのはManager.csの中だ
189 名前:名前は開発中のものです。 mailto:sage [2018/07/06(金) 21:31:14.20 ID:HglSf1KI.net] Enemy.csの中にはFindがないだろ Maneger.csの中にFindがあるからそれを使わせてもらうってことだ ちゃんと理解しろ
190 名前:名前は開発中のものです。 mailto:sage [2018/07/06(金) 21:43:49.49 ID:gEW+Hr/Q.net] このEnemy.csが付いているオブジェクトにSpaceshipコンポーネントも付いてんの? 24行目の Spaceship = GetComponent<Spaceship>(); が気になったんだけど。 Enemy.csをつけてるオブジェクトのinspecter画像あげてみなよ。
191 名前:名前は開発中のものです。 mailto:sage [2018/07/06(金) 21:43:58.07 ID:tJg4NY0i.net] なんだ!その言い方は。自分で作ったこともないクセに生意気なことを言うなよ!
192 名前:名前は開発中のものです。 mailto:sage [2018/07/06(金) 21:54:18.65 ID:gEW+Hr/Q.net] >>176 あ、前にソースあがってますね。みてきます。
193 名前:名前は開発中のものです。 mailto:sage [2018/07/06(金) 22:31:47.47 ID:3k4W8n5C.net] whileのところ。titleの取得はここじゃなきゃ意味ない。 https://i.imgur.com/lTOyNG8.jpg
194 名前:名前は開発中のものです。 mailto:sage [2018/07/06(金) 23:02:04.45 ID:3k4W8n5C.net] >>183 =>>184 です。 whileの中の if (spaceship.canShot)
 {
 spaceship.Shot(shotPosition);
 } のまえに GameObject title = GameObject.Find("Title");
 if (title)
 {
 spaceship.canShot = false;
 } を付け足すと一応なるよ。 でもこのプロジェクト、初心者にはむりだろ。なんでupdate()じゃなくて無理矢理while 使ってんだろ。
195 名前:名前は開発中のものです。 mailto:sage [2018/07/06(金) 23:03:44.11 ID:3k4W8n5C.net] >>185 な、改行が、、
196 名前:名前は開発中のものです。 mailto:sage [2018/07/06(金) 23:10:51.46 ID:HglSf1KI.net] おいおい もう正解でてるのに違うこと書いて混乱させるなよ
197 名前:弟子 mailto:sage [2018/07/07(土) 02:22:02.54 ID:K1LNb5pO.net] >>173 ごめんね、分かり易いように全ソース上げるべきだったかな とりあえずSSです ttps://i.gyazo.com/4f40fc7de6ba6cc5761b406f7bc43c5c.png あと前回からも分かるように名無しさんはソース見て無かったり、とんちんかんな答も多いので間にうけないでね
198 名前:名前は開発中のものです。 [2018/07/07(土) 03:30:48.40 ID:mRGE11IO.net] まず、レスをくださった名無しの皆さま、 ありがとうございました。勉強になりました。 >>弟子 ◆rZPPjYuxmQさん ソースをあげるお手間を取らせて申し訳ありません。 おかげで自分の間違いも理解でき、無事ゲームも動きました。 ありがとうございます。 それと今回はとても勉強になりました、 Unityゲーム制作方法がまたひとつ理解出来たことを実感できました。 投げることなく、これからも頑張っていきたいのでまたお時間がある時は どうぞよろしくお願い致します。 >>185 >でもこのプロジェクト、初心者にはむりだろ。 >なんでupdate()じゃなくて無理矢理while使ってんだろ。 考えてみると、確かにそうでした。 start()にはSpaceshipコンポーネント取得だけを記述し、 update()を作り、そこに移動とショットのメソッドを記述するのが よくみるソースですよね、、気になるので ちょっと自分でそうしてみます。
199 名前:弟子 mailto:sage [2018/07/07(土) 09:24:11.16 ID:K1LNb5pO.net] >>189 その修正は今後の力になりますね while(true)の形式は昔のゲームでよく見ますね 何にせよ途中で投げ出さない事が力になると思います
200 名前:名前は開発中のものです。 mailto:sage [2018/07/07(土) 11:12:48.46 ID:EkXNa58T.net] >>169 167です。 遅くなりましたが、ご連絡いただきましたカタチで対応したところ上手くいきました。 ご指導ありがとうございました!
201 名前:名前は開発中のものです。 mailto:sage [2018/07/07(土) 12:04:39.34 ID:uvTZMuyK.net] C言語とかどこから勉強すればいいのか 全くわからん パーツ組み合わせて勝手に作ってくれるツールとかないんかな
202 名前:名前は開発中のものです。 mailto:sage [2018/07/07(土) 14:56:25.98 ID:ZcP3i1gQ.net] >>192 なに、Unityスレで蟹飯やらUPEの話をしたいとな?
203 名前:名前は開発中のものです。 mailto:sage [2018/07/07(土) 15:15:03.55 ID:oT3GXRo8.net] >>192 アセットを探しましょう! 有料アセットにはいいものがいっぱいですから!
204 名前:名前は開発中のものです。 mailto:sage [2018/07/07(土) 15:21:59.58 ID:VmA3Nk3U.net] プログラミングで混乱してる奴はスクリプト間の動きを知ったほうがいい。 シングルスレッドだけで良い。その先の技術はまだまだ後回し。 まずは、この図を頭に叩き込んで見てくれ。 https://docs.unity3d.com/ja/current/Manual/ExecutionOrder.html
205 名前:弟子 mailto:sage [2018/07/07(土) 15:27:51.44 ID:K1LNb5pO.net] >>192 別に勉強することなんかない やりたいことが決まってれば、それを行うための方法をgglなりここで聞けばいい やりたいことが決まってないなら簡単な事、例えば四角を表示して墜ちてくる、次にA,Dで左右に動かすなんかやればいいと思う その次はぶつかった時の処理やミサイル発射とか、一つできたら次に広げていけば自然と身につく
206 名前:名前は開発中のものです。 mailto:sage [2018/07/07(土) 16:25:52.52 ID:BIKvv2AG.net] >>196 何も出来ない人は質問に答えないで下さい。迷惑です
207 名前:名前は開発中のものです。 mailto:sage [2018/07/07(土) 19:47:47.40 ID:zm6PvQJ6.net] よりによって196w
208 名前:名前は開発中のものです。 mailto:sage [2018/07/07(土) 20:26:34.78 ID:Iv6KIDqQ.net] >>193 今時蟹飯なんていってわかる奴いるのかよ。
209 名前:名前は開発中のものです。 [2018/07/07(土) 21:33:06.60 ID:G1vtLFdf.net] コーディングで白背景は目が痛いな。
210 名前:名前は開発中のものです。 mailto:sage [2018/07/08(日) 03:35:46.42 ID:/vo2AcUq.net] >>195 シングルスレッドってそのページの スクリプトライフサイクルフローチャートって奴ですよね? 項目が多すぎて、しかも知らないものばかりで わけがわかりません。もう少しシンプル化できませんか?
211 名前:名前は開発中のものです。 mailto:sage [2018/07/08(日) 08:32:44.77 ID:+e8vKp03.net] >>200 え、まじ?統合環境使いだしてからずっと白背景だな。 たしかにCビルダー使いだす前は、黒背景にしてたかもしれん。
212 名前:名前は開発中のものです。 [2018/07/08(日) 11:25:39.56 ID:XHY+bU4w.net] >>201 う、マジか、この図で分からなければ、中々キツイぞ。 まとめては俺は必要無かったんで良いリンクとかは、他の賢人に任すわ 少しだけ概要な シングルスレッド云々は、unityは元々シングルスレッド志向のmonobehaviorの動きで動いてるってこった。 そしてその動きがこの図な んで、この図の awake〜start迄が最初の1ターンだけ発行 んて、fixed update〜yield waitfor fixed update迄が、固定秒数毎に毎ターン update〜late update迄がベストエフォート秒毎の毎ターン それ以降のは、素人としては難しいんで、覚える必要無し て所か、ターンて書いたのは分かり易くする為な。 本当は適切な言葉あるんでそれは調べてね。
213 名前:名前は開発中のものです。 [2018/07/08(日) 11:31:56.95 ID:XHY+bU4w.net] 言い忘れたが、重要なのは これらの動きが、全ゲームオブジェクトに貼り付けられたスクリプト(monobehavior)で一斉に並列(あくまでシングルスレッドの分割)で動作するって所な まあ、がんがれ
214 名前:名前は開発中のものです。 mailto:sage [2018/07/08(日) 12:32:40.48 ID:qKbg52AD.net] これが読めないってのは… あぁ、初心者スレかそういうレベルの初心者も居るか。
215 名前:名前は開発中のものです。 mailto:sage [2018/07/09(月) 19:21:15.90 ID:tGtIqOna.net] unityで球と直線の交点を求めるにはどうすればいいですか?