2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

【3Dゲームエンジン】Unity質問スレッド23

1 :名前は開発中のものです。:2016/03/08(火) 17:08:01.75 ID:k9REU5f/.net
3Dゲームエンジン「Unity」の質問に優しく答えるスレです。
Windows/Mac用。JavaScript/C#といった汎用言語を使用できるのが特徴です。
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他

次スレは>>970を踏んだ方が建てること。ダメなら>>980>>990が建てて下さい。

■本スレ
【3Dゲームエンジン】Unity総合スレッド27 [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/gamedev/1441891966/

■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
http://www24.atwiki.jp/unity2ch/

●リンク
・Unity(日本公式サイト)
http://unity3d.com/jp
・ユーザーガイド
 http://docs.unity3d.com/ja/current/Manual/UnityManualRestructured.html
・チュートリアル
 http://unity3d.com/jp/learn/tutorials
・スクリプトリファレンス
 http://docs.unity3d.com/ja/current/ScriptReference/index.html
・FAQ
 http://unity3d.com/jp/unity/faq
・MSDN
 http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。

前スレ
【3Dゲームエンジン】Unity質問スレッド22
http://echo.2ch.net/test/read.cgi/gamedev/1452443083/

177 :名前は開発中のものです。:2016/03/28(月) 15:51:22.66 ID:oL3cwgYP.net
>>176
普通じゃね?
ネット豆もそうなった気がする

178 :名前は開発中のものです。:2016/03/28(月) 16:28:34.00 ID:8b0xkWFK.net
問題はそこじゃなくて
void Update ()
{

}
をデフォとしなかったのかだよ、チュートリアルでもわざわざ直してる人が多い

179 :名前は開発中のものです。:2016/03/28(月) 16:36:35.88 ID:Q+R/00Bg.net
俺もいちいち直してる、面倒だけど位置があわないと気持ち悪い

180 :名前は開発中のものです。:2016/03/28(月) 16:39:22.56 ID:YgQLZstd.net
VisualStudioをエディタにしてるなら、 Ctrl+K, Ctrl+D でいいしな

181 :名前は開発中のものです。:2016/03/28(月) 16:44:58.01 ID:YgQLZstd.net
ってMonoDevelopみてみたら Ctrl+I か、、、関数名と()の隙間は埋まらんけど

182 :156:2016/03/28(月) 22:54:53.47 ID:4IvOmwMt.net
>>169
ありがとうございます。

Slackもこんな風にオープンなチャットとして利用する方法もあるのか。
興味が湧きました

183 :名前は開発中のものです。:2016/03/28(月) 23:40:20.81 ID:bqxnr7xz.net
<summary>とか加えたテンプレートファイル用意してるな

184 :名前は開発中のものです。:2016/03/29(火) 00:14:06.66 ID:2hbvQHiT.net
コメントの//がラグって連打してるうちに///って打っちゃって<summary>が出る

185 :名前は開発中のものです。:2016/03/29(火) 11:21:59.46 ID:o4q6XP5V.net
学習度はいまいちだけどVSのコメントアウト・解除のショートカットだけは身についたw

186 :名前は開発中のものです。:2016/03/29(火) 12:55:46.66 ID:9x6HEfDV.net
>>184
サーマリコメント使ってないの?

187 :名前は開発中のものです。:2016/03/30(水) 00:42:37.26 ID:IY2frVeR.net
基本的に自分用でしか書いてないからめんどくさがって使ってないかな

あれってVSの関数一覧に説明文かける機能だもんね

188 :名前は開発中のものです。:2016/03/30(水) 01:03:41.49 ID:F02zt5XF.net
///<summary>やらないかおじさん</summary>
[TooltipAttribute("やらないかおじさん")]
public GameObject charlesFrancis;

同じ文章を2回書くことが結構多い俺…
なんかこう、自分で書いてて凄くもやもやする。

189 :名前は開発中のものです。:2016/03/30(水) 03:27:01.20 ID:7nMTIbyi.net
skyboxにcubemapという円形のテクスチャがありますけど、アレってどうやって作るんでしょうか?
スレ違いですかね?

190 :名前は開発中のものです。:2016/03/30(水) 03:29:03.74 ID:RKUrxJ+/.net
検索してもよく分からなかったので質問させていただきます
スレ違いならすみません

UnityではES6準拠のJavaScriptは対応している or 対応する予定が明確にされているでしょうか?

191 :名前は開発中のものです。:2016/03/30(水) 04:33:05.46 ID:7nMTIbyi.net
動く空っていうのはキューブをぐるぐる回すんでしょうか?
どういうロジックで作ればいいのでしょうか

192 :名前は開発中のものです。:2016/03/30(水) 05:25:57.53 ID:64bIt5Ga.net
>>191
あれはタダの画像だ。だから動かす方法は「ない」。
天球画像の作成方法はいくつかあるがいずれにせよUnityで作るものではない。
cubemapとかその辺は3Dの基礎知識でunity固有の話ではないし
お手軽に思ったように作成する方法はそれなりの金出して全球撮影用のカメラ買う以外ない。

193 :名前は開発中のものです。:2016/03/30(水) 05:44:31.86 ID:7nMTIbyi.net
>>191
画像を動かすのではなく、skyboxが適用されているオブジェクト自体を動かすしか無いということですか?

194 :名前は開発中のものです。:2016/03/30(水) 06:42:05.51 ID:7nMTIbyi.net
あとキューブマップ(丸い画像)をskyboxに適用しても、方向がおかしいのですが、
回転は出来ないでしょうか?
rotationのスライダーを動かしても横に回転するだけです。
縦に回転出来ないのでしょうか?
たびたびすみません。

195 :名前は開発中のものです。:2016/03/30(水) 07:57:42.46 ID:7nMTIbyi.net
↑失礼、解決しました

196 :名前は開発中のものです。:2016/03/30(水) 12:20:20.56 ID:Vc9Hvy+G.net
(イラッ・・・)

197 :名前は開発中のものです。:2016/03/30(水) 13:15:01.96 ID:nuQhisp1.net
自己解決してその解決法書かないバカは滅びればいいのに

198 :名前は開発中のものです。:2016/03/30(水) 13:35:54.03 ID:MqOBwk1B.net
うんまあ、あまりにアホらしい質問だから誰も興味ないと思うぜ

199 :名前は開発中のものです。:2016/03/30(水) 14:52:09.28 ID:Jz8yRTNi.net
>>190
UnityのJavascript(UnityScript)と言われている物はMSの言うところの.Net版JScriptって奴だ
ブラウザに採用されているプロトタイプベースの言語じゃなくクラスベースの言語なのでES6とかまるっきり関係ない

200 :名前は開発中のものです。:2016/03/30(水) 15:28:56.89 ID:BkgDgL93.net
TNET 3やForge Networkingって誰か買ってみた人いたら教えてほしいんだけどさあ
ネット将棋みたいなソフトを作りたいんだけど、それほどシビアなリアルタイム性が必要なわけじゃないし、Photon代は無料枠を超えたらペイ出来ないので気になってるんだけど・・・・
PhotonやUnityMultiPlayerに比べて使い勝手はどんな感じかな?
あと、もっと安いゲームサーバーがあったら教えて!

TNet 3
https://www.assetstore.unity3d.com/jp/#!/content/56798
Forge Networking
https://www.assetstore.unity3d.com/jp/#!/content/38344

201 :名前は開発中のものです。:2016/03/30(水) 16:49:11.42 ID:Jz8yRTNi.net
>>200
リアルタイム性が重要じゃないならWWWクラスとPHPのコレ https://github.com/panique/php-long-polling
とID発行(ゲーム中の対戦者認証)関係だけで良くない?

202 :名前は開発中のものです。:2016/03/30(水) 17:18:55.47 ID:Xlsx4RPm.net
>>200

帯域気にしなくていいなら、
node.jsが入るレン鯖(サクラサーバの月500円やつとか)で何とかなりそうだけど、

203 :名前は開発中のものです。:2016/03/30(水) 17:43:05.02 ID:BkgDgL93.net
>>201
こんな簡単なのがあるなんて驚いたよ、特にソースコードの短さにはビビった!
機能的にはほんとこんなのがほしかったんだけど、コードを見た感じセキュリティーには全く配慮していないようで実際に動かすには修正が要るかな
だけどセキュリティー絡みのコードを書く能力は俺には無いんだなこれが・・・・


>>202
本当にそれが理想的ですよね
サーバを自分で書くことも考えたものの、現状ではセキュリティー面の能力が足りないので書くのは厳しいんです

204 :名前は開発中のものです。:2016/03/30(水) 18:02:36.82 ID:Jz8yRTNi.net
>>203
そんなに気張る事無いはず
たとえばアカウント無しでもゲーム起動時にサーバにアクセスしてIDを発行してもらうようにするだけで良いって考えれば
httpsならAPIで必要なのって次だけで足りない?
URL      引数                        戻り値                       サーバ側で覚えておく物
/game/join   (あればニックネームとか)           IDとpairなランダム値              IDとランダム値を元にhashしたキーとキーに対するIDのペアとニックネーム
/game/match IDとランダム値を元にhash値         対戦相手の情報                マッチした2つのIDの情報と先行後攻の情報
                                    タイムアウトならその情報クライアントコードは待ち受け延長指示
/game/move 将棋なら駒の移動情報と手順のシリアル 対戦相手の操作待ち、            手順を棋譜にするなら覚えておく
         同時にIDとランダム値のhash         手順のシリアルや無い駒を動かしたならエラーを返す
                                    または勝敗の結果
盤面評価をサーバがやると大変かもしれないけど、移動のチートだけ防げばこれだけでも良い気がするんだけど
matchとmoveだけlong pollingでやれば良い気がするんだけどなー
つねにhash値を使ってやればID番号とかも伏せられるし、hash値の生成に手順シリアル番号つけた検証とかで不正検出もできると思うのだけど

205 :名前は開発中のものです。:2016/03/30(水) 18:18:39.29 ID:Xlsx4RPm.net
レスが怖い件

206 :名前は開発中のものです。:2016/03/30(水) 18:22:16.17 ID:RKUrxJ+/.net
>>199
なるほど、完璧に思い違いしていました
ありがとうございます

207 :名前は開発中のものです。:2016/03/30(水) 18:39:14.80 ID:BkgDgL93.net
>>204
セキュリティーがらみで一番気になるのは変なデータを食わされた時かと思ってて
データを$_GETで受け取ったときに変な文字列が入れられていたら安全に処理する能力が俺にないぽ・・・・

208 :名前は開発中のものです。:2016/03/30(水) 20:14:29.30 ID:Jz8yRTNi.net
>>207
リクエストに含まれている文字列を丸ごとSQLに突っ込んだりするような無謀な事の事だと思うけど、ちゃんと汚染されていない状態に(escape処理)してからDBアクセスとかすれば問題ないよ
つか件のゲームサーバならSQLDBつかわんで済むでしょ。(redisとかmongodbでよくね?)

209 :名前は開発中のものです。:2016/03/31(木) 09:53:54.52 ID:+k60iuKF.net
教えてください。

地形の一部地域だけにfogというか近づかないと見えない場所を作りたいのです。
その場合はパーティクルとfogのどちらをどう使うのが効果的でしょうか?

パーティクルで地域一帯を覆うと処理が重く、fogだと全体にかかってしまいます。
globalFogならぬ一部分fogなるものはあるのでしょうか?

210 :名前は開発中のものです。:2016/03/31(木) 10:08:48.57 ID:7+gwOzCL.net
当たり判定で囲って判定が働いた時のみレンダラーを動かす

見えない場所とやらのオブジェクトとプレイヤーとの距離を測って一定以下ならレンダラーを有効化

とかな

部分的なフォグについては…わからん

211 :名前は開発中のものです。:2016/03/31(木) 10:18:04.66 ID:+k60iuKF.net
>>210
あたり判定で有効化。
それ一番簡単そうですね。
ありがとうございます。

あー、でもそれだと遠くだと見えるけど近づくとモヤモヤか、、。

もし他にもあれば何卒m(_ _"m)

212 :名前は開発中のものです。:2016/03/31(木) 10:36:28.69 ID:0nCq0ZA4.net
その一部の場所だけフォグが掛かるマテリアルにするだけじゃないの

213 :名前は開発中のものです。:2016/03/31(木) 15:55:45.43 ID:U80HRrin.net
Photonで質問があるのですが、マスターがPhotonNetwork.Instantiateで
InstantiateしたオブジェクトをクライアントがFindやFindWithTagやGetocomponentで
掴む事ってできないんでしょうか?

やってみたら出来なかったのですが、やり方があるのか、悪いのか、そもそもできないのかが
分かりません

一応、クライアントからはちゃんとマスターがPhotonNetwork.Instantiateした
オブジェクト自体は見えています。

214 :名前は開発中のものです。:2016/03/31(木) 17:16:06.76 ID:+k60iuKF.net
>>212
ありがとうございます。
そういうやり方があるんですね。
まだそっち関係まで詳しくないので調べてみます。

でもfogにマテリアルなんて適用できましたっけ?

215 :名前は開発中のものです。:2016/03/31(木) 20:25:25.80 ID:GQlnZ4Ki.net
質問失礼します。

metaファイルをC#で書き換えたいです。
metaファイルの書式ってJsonっぽいんですけど、何か有名な書式なんでしょうか?
どこかに Windows C# で利用できるmetaファイルパーサとか無いのでしょうか?

216 :名前は開発中のものです。:2016/03/31(木) 21:43:44.37 ID:AV88npp6.net
ビュー上でマテリアルをクリックして選択は出来ないんですか?
以前は選択出来た気がしますが。

217 :名前は開発中のものです。:2016/03/31(木) 22:20:42.69 ID:Su/s1wEb.net
>>215
JSONじゃなくてYAMLじゃね?

218 :名前は開発中のものです。:2016/03/31(木) 22:48:31.63 ID:Su/s1wEb.net
>>213
やったことないから合ってるかわからないけど、下記のイベントで拾えたりしない?

void OnPhotonInstantiate(PhotonMessageInfo info)

219 :名前は開発中のものです。:2016/03/31(木) 23:09:31.39 ID:U80HRrin.net
>>218
ありがとうございます。
今、出先なので帰宅次第試してみます

220 :214:2016/04/01(金) 10:01:47.94 ID:TCAllijB.net
>>217
ありがとうございます!
YAMLって形式、知りませんでした。
C#で動くYAMLパーサで調べてみます!

221 :名前は開発中のものです。:2016/04/01(金) 12:25:56.85 ID:TqNtk5LM.net
Windowsstoreのuniversal 10でビルド、インストールとか出来た人いる?
俺パッケージ作業が出来ず、ビルド出来ねー…

222 :名前は開発中のものです。:2016/04/01(金) 22:44:21.86 ID:TqNtk5LM.net
>>221ですが、解決しました
というより、納得しました

223 :名前は開発中のものです。:2016/04/02(土) 07:31:55.75 ID:lvtDFyJ0.net
すみません入門者で質問なのですが
Unityのキー入力は書籍サンプルとか読むと
Update()の中で逐一監視して入力があったら
動かすとかの例がよく見られたのですが、
他の言語の様に入力はイベント監視関数にその変数値変更を任せて
Uodate()内ではマシン速度に応じた状態変更のみ行うという事は
しないのでしょうか?

224 :名前は開発中のものです。:2016/04/02(土) 08:10:07.03 ID:9JvOl1q6.net
複数端末の解像度に対応するマニュアル通りにしてみたのですが極端に背景が小さくなります
複数端末の解像度に対応させるためにはどのようにすればいいのでしょうか
https://github.com/unity3d-jp-tutorials/2d-shooting-game/wiki/第02回-複数の解像度に対応する(引き伸ばす)

225 :名前は開発中のものです。:2016/04/02(土) 10:54:49.14 ID:fZLLuuFM.net
>>223
結局のところInputクラス自体の動作がUpdate()単位で入力の更新をしているので
もしInputクラス自体にイベントが仕込まれていれば
Input.KeyDownA+=hoge;
とかやればいいんだろうけど「そういうつくりにはなっていない」ということなので
そういうのがいいと思えば自分で入力を監視してイベントを発行するクラスを作って
そこで集中管理するしかないね。

226 :名前は開発中のものです。:2016/04/02(土) 11:55:40.38 ID:TyPA6B1B.net
いずれ.netのバージョンが4.5あたりに上がるっぽいけど、これがあるとPersonalでも.net Framework側の機能を使ってSocket.ioとか使えるようになるんかな?

227 :名前は開発中のものです。:2016/04/02(土) 12:19:12.69 ID:P+xkQjtI.net
>>223
UIならイベントベースの方が楽だけどゲームだとコントローラの扱いはだいたいプレイヤーを操作するGameObject単体の処理だろう?
ならイベントよりも直接状態を扱う方が楽じゃ無いのか?

228 :名前は開発中のものです。:2016/04/02(土) 12:45:41.19 ID:ysYzq0U0.net
好みの問題だな
C言語でPC98やWindowsのAPIでゲームを作っていた世代なら
直接状態を扱うやり方に違和感を感じないけど
今のWindowsプログラミングに慣れきっていると
Xボタンがどうなっているとか、アナログスティックがどうなっているとかを
ループで監視するという概念が理解できないというか、気持ち悪いかもしれない
俺は前者だったから逆にWindowsのイベントの概念が随分長い間気持ち悪かった

229 :名前は開発中のものです。:2016/04/02(土) 13:48:15.28 ID:AtkHAZ/y.net
他の言語だと〜ってあるけど
例えばUE4とかだとイベントドリブンだったりするのん?

230 :名前は開発中のものです。:2016/04/02(土) 14:33:37.03 ID:AsjlxODb.net
更新と入力の監視別にしたら、負荷高まった時に前に入力したものが残ったりするだろ

231 :名前は開発中のものです。:2016/04/02(土) 19:19:28.24 ID:wmpv51nt.net
FixedUpdateでKeyDownとかKeyUpとか取得したら2回とか3回とか連続で取れちゃうから面倒だ

232 :222:2016/04/02(土) 20:56:57.37 ID:lvtDFyJ0.net
ありがとうございます。
どうやらゲームエンジン特有の処理法みたいですね。
自分Javaやjavascriptの開発から入ったので違和感を感じてました。
ループ監視方法をこれから勉強してみます。
あとUIのみでゲームが作れなるかも研究してみます。

233 :名前は開発中のものです。:2016/04/02(土) 21:20:07.65 ID:AtkHAZ/y.net
ああ、そういうことか。
連打だの同時押しだののときに、細かい挙動まで制御したかったりするだろうしね

234 :名前は開発中のものです。:2016/04/02(土) 22:25:08.92 ID:zkB3aUtQ.net
いやJavaやjavascriptでゲーム作るにしてもイベントハンドラ内では入力フラグのセットのみを行い実際の処理はメインループ内で行うのは普通だよ?

Unityではそのフラグのセットとメインループの基本構造をエンジン側が最初から持ってるから
開発する側はメインループ内でフラグの読み出しと処理を記述するだけで実装できる

ゲームというプログラムの性質上イベントドリブンよりもフレームベースの進行の方が向いてるから多くのゲームエンジンがこれを採用してるってだけの話

235 :名前は開発中のものです。:2016/04/02(土) 23:58:50.33 ID:Phje8vbJ.net
>>234
javaやjavascriptでゲーム開発してたとは言ってないだろ

236 :名前は開発中のものです。:2016/04/03(日) 20:16:55.30 ID:q7FLoILA.net
バッファローのゲームパッド買ったんだけれど、ほんのちょっとスティックを傾けただけでGetAxisの値が±1になるんだがなんなんこれ……
ニュートラルで既に+0.01くらいになってるのはDeadで対処できるとしても、これじゃ十字ボタンと変わらん

237 :名前は開発中のものです。:2016/04/03(日) 20:27:00.36 ID:IAddX4M3.net
真っ先に疑うのはデジタルモードになってるとかだけど
そこはとっくに調べてるだろうしなあ

238 :名前は開発中のものです。:2016/04/03(日) 20:29:13.53 ID:BKSoncQL.net
いやいやこのスレで聞くことで全然何もやってない糞っぽさが半端ねえけどw

239 :名前は開発中のものです。:2016/04/03(日) 21:11:53.63 ID:q7FLoILA.net
ごめんSensitivityをどの程度に調整すれば良いのか分かってないだけだった
デフォルトの3から、0とか1000とか極端な値にしたりして調整してみたけど全然ダメで、1にしてみたらちゃんと出来た
この辺のパラメータ、色々ググっても具体的な値とか分からんかった

あとリファレンス見て「GetAxisRawで取得すればGravityとかDeadとかSensitivityのパラメータを無視したナマの値を取得できるんだろ?」って勘違い(?)しててパラメータの調整放棄してた
Rawにしても普通に影響されるやん
パッド初めて使うんだけど次からは書き込む前にもう少し調べてから首吊ってしにます

240 :名前は開発中のものです。:2016/04/03(日) 21:38:42.23 ID:3jFQFOr0.net
死ななくていいよ。むしろこれがUnityを使う人間の標準的な姿勢と知性だから
死ぬべきはUnity使いにふさわしくない高い知性と豊富な知識を持っている人間だ

241 :名前は開発中のものです。:2016/04/03(日) 21:57:16.25 ID:Jg1eGoj6.net
可哀想に

242 :名前は開発中のものです。:2016/04/03(日) 22:21:51.81 ID:Htbn15el.net
たとえば絵描きスレだと
ワコム使ってる奴に技術とセンスはない とか野次り屋さんいるのかな
いそうな気がする

243 :名前は開発中のものです。:2016/04/03(日) 22:25:37.47 ID:m2ZMdeY9.net
挫折者の数は絵描きの方が多そうだしな

244 :名前は開発中のものです。:2016/04/03(日) 22:34:08.83 ID:BKSoncQL.net
競争相手減らしたいだけのヘイトだから気にするな
ユニティちゃんを走らせるくらいまでは初心者でも馬鹿でもチョンでも可能なすごいツールなのは間違いない
更にすごいことは走らせるだけのスマホゲーが結構ストアに出てることw

245 :名前は開発中のものです。:2016/04/04(月) 00:37:59.00 ID:Bny0r9r9.net
intの値を保持したままシーンを移動したいのですがどうすればいいのですか
DontDestroyOnLoadを使うとintからUnityEngine.Objectへ変換することはできませんと出ます

246 :名前は開発中のものです。:2016/04/04(月) 00:54:44.07 ID:hXsrSHJl.net
方法は山程あるちょっとはググレカス
一例
http://tsubakit1.hateblo.jp/entry/2015/11/07/024350

247 :名前は開発中のものです。:2016/04/04(月) 01:13:31.42 ID:Bny0r9r9.net
そこにある方法は試してみたもののできませんでした

248 :名前は開発中のものです。:2016/04/04(月) 01:49:57.65 ID:7ElMLh3h.net
テラシュールさんみたいな超絶親切記事であっても通じないとはw
そこにある方法を試しても出来ないなどということはありえない。
君が書いているコード、その他やり方がおかしいだけ
そもそも言語を理解できていればDontDestroyOnLoadの引数に
intをぶち込むなどということも考え付かない
http://docs.unity3d.com/ja/current/ScriptReference/Object.DontDestroyOnLoad.html
君は全く言語を理解できていないし残念なことだが
Untiyは見かけに反して言語を出来ない人間が使うには厳しいツールだ
Unityをやる前にちゃんと言語の勉強をした方がよいよ

249 :名前は開発中のものです。:2016/04/04(月) 02:05:02.02 ID:Bny0r9r9.net
ありがとうございます
勉強不足でした
勉強し直します

250 :名前は開発中のものです。:2016/04/04(月) 10:28:40.56 ID:XpHjSau9e
夜通し考えましたができません


using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System;

public class ScoreScript : MonoBehaviour {

    public static int score = 0;
    public bool gameover = false;
    private int point;

    void Awake()
    {
        DontDestroyOnLoad(this);
    }
    void Start()
    {
        GetComponent<Text>().text = "SCORE:" + score.ToString();
    }
    public void ScoreUp(int point)
    {
        score += point;
        GetComponent<Text>().text = "SCORE:" + score.ToString();

    }

}

251 :名前は開発中のものです。:2016/04/04(月) 10:29:03.10 ID:XpHjSau9e
これだとDontDestroyOnLoad only work for root GameObjects or components on root GameObjects.と出ます
どのようにすればいいのでしょうか
何度も初歩的な質問を申し訳ございません

252 :名前は開発中のものです。:2016/04/04(月) 10:32:40.93 ID:FySTl+cx.net
>>249
競争相手減らしたいだけのヘイトだから気にするな
ユニティちゃんを走らせるくらいまでは初心者でも馬鹿でもチョンでも可能なすごいツールなのは間違いない
更にすごいことは走らせるだけのスマホゲーが結構ストアに出てることw

253 :名前は開発中のものです。:2016/04/04(月) 10:44:24.47 ID:Bny0r9r9.net
場所間違えました
夜通し考えましたができません

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System;

public class ScoreScript : MonoBehaviour {

public static int score = 0;
public bool gameover = false;
private int point;

void Awake()
{
DontDestroyOnLoad(this);
}
void Start()
{
GetComponent<Text>().text =

254 :名前は開発中のものです。:2016/04/04(月) 10:45:33.52 ID:Bny0r9r9.net
GetComponent<Text>().text = "SCORE:" + score.ToString();
}
public void ScoreUp(int point)
{
score += point;
GetComponent<Text>().text = "SCORE:" + score.ToString();

}

}

これだとDontDestroyOnLoad only work for root GameObjects or components on root GameObjects.と出ます
どのようにすればいいのでしょうか
何度も初歩的な質問を申し訳ございません 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)


255 :名前は開発中のものです。:2016/04/04(月) 11:01:21.94 ID:HfY2ufRo.net
>これだとDontDestroyOnLoad only work for root GameObjects or components on root GameObjects.と出ます

これはエラーログだろ
エラーログっていうのは、どこが間違っているのか教えてくれてる文章の事

このエラーログを日本語に直せば「ルートオブジェクトでしかDontDestroyOnLoadは動かない」
って書いてあるからルートオブジェクト以外のコンポに書いているからこのエラーが出ているという事と
ルートオブジェクトに書けば解決するという事が分かる

というかエラーログが全く意味を成してないなw

256 :名前は開発中のものです。:2016/04/04(月) 11:24:00.32 ID:Bny0r9r9.net
エラーログの意味はわかったのですが実際にどのようなコードを書けばいいかわかりません

257 :名前は開発中のものです。:2016/04/04(月) 11:27:38.75 ID:hXsrSHJl.net
要はプログラムなんて勉強したくない答え教えてってことかよ
>>248に戻るだなw

258 :名前は開発中のものです。:2016/04/04(月) 11:31:24.11 ID:HfY2ufRo.net
すごろくかよ

259 :名前は開発中のものです。:2016/04/04(月) 11:32:30.37 ID:FySTl+cx.net
>>256
>>257は競争相手減らしたいだけのヘイトだから気にするな
ユニティちゃんを走らせるくらいまでは初心者でも馬鹿でもチョンでも可能なすごいツールなのは間違いない
更にすごいことは走らせるだけのスマホゲーが結構ストアに出てることw

質問スレなんだからどんどん質問してくれ
つか、答える能力を持ってるヤツいないのかよ、このスレ……無能の集まりだな

260 :名前は開発中のものです。:2016/04/04(月) 11:34:17.59 ID:m3XCBibL.net
ここは質問するスレで答えるスレじゃないからね。

261 :名前は開発中のものです。:2016/04/04(月) 11:37:35.09 ID:HfY2ufRo.net
>>256
分かった分かった
じゃあプロジェクトごとどっかにアップしてよ
俺がその部分作るから
どうせ今日休みだし

262 :名前は開発中のものです。:2016/04/04(月) 11:42:07.59 ID:szpYHwDE.net
基地外が湧いて人が去った印象

263 :名前は開発中のものです。:2016/04/04(月) 11:54:24.67 ID:FySTl+cx.net
確かに。Unityのレベルと集まる人材層を端的に表している現象だよな

264 :名前は開発中のものです。:2016/04/04(月) 12:03:28.41 ID:+KDgUMPh.net
>>256

そのエラーログでコードって言う時点で、
エラーログは理解できていない。
hierarchyで修正できるので、ちゃんと調べた方が良いよ。

265 :名前は開発中のものです。:2016/04/04(月) 12:17:08.15 ID:jwc1b3E3.net
>>255
そんなエラーあるんだ。
初めて知った。
当然っちゃ当然か

266 :名前は開発中のものです。:2016/04/04(月) 12:41:54.53 ID:UfyIKhsV.net
>>264
UIのヒエラルキーの下部にぶら下がってるから分離するならstaticなデータだけ保持したクラスに単離しないと駄目だろうね。

267 :名前は開発中のものです。:2016/04/04(月) 12:42:25.99 ID:ipZlx+2D.net
githubにあげとけ、みんながみてくれるぞ。

268 :名前は開発中のものです。:2016/04/04(月) 12:53:51.35 ID:UfyIKhsV.net
うごかしちゃ居ないがこんな感じ
まずクラスを2つに分ける
StaticGameData.cs
public class StaticGameData {
public static int score = 0;
public static bool gameover = false; // 他にもゲーム全体を通して必要なものはここにまとめてpublic staticで置いておく

public static void InitGameData() {
score = 0;
gameover= false;
//他にもあればゲーム開始時に初期化するようにここにまとめて書く
}
}

--

269 :名前は開発中のものです。:2016/04/04(月) 12:54:07.61 ID:UfyIKhsV.net
ScoreScript.cs

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System;

public class ScoreScript : MonoBehaviour {
private Text cachedComponent = null;
void Start()
{
cachedComponent = GetComponent<Text>();
this.RedrawScore();
}
void RedrawScore()
{
cachedComponent.text = "SCORE:" + StaticGameData.score.ToString();
}

public void ScoreUp(int point)
{
StaticGameData.score += point;
this.RedrawScore();
}

}

270 :名前は開発中のものです。:2016/04/04(月) 13:04:07.93 ID:CM3MwaUq.net
それで判ったならそのままの答えがないと出来ない子なんだな
そもそも一番最初にあった>>246のテラシュールさんのstatic(静的な)オブジェクトとして保持するサンプルのほうがスマートだと思うのだが

271 :名前は開発中のものです。:2016/04/04(月) 13:51:20.05 ID:4EKB9Ufw.net
ちょうど自分もserializableとかjsonなどの魔法の言葉を調べてた
まあ本番では素直にEasy Save買うと思うけど

272 :名前は開発中のものです。:2016/04/04(月) 14:18:24.51 ID:7ElMLh3h.net
>>253
それはコードが間違っているのではなくやり方が間違っている。
DontDestroyOnLoad only work for root GameObjects or components on root GameObjects
"DontDestroyOnLoadはルートのゲームオブジェクトまたはルートのゲームオブジェクト上のコンポーネント上でのみ機能します"
ここでルート、というのは他のオブジェクトの子供ではない、ということ。
Unityでは親オブジェクトがDestroyされるとその子供のオブジェクトもDestroyされる。
まぁ全部を一々指定しないとDestroyされないのではメンドクサ過ぎるのは明白なので
妥当な設計だと思うしだからDontDestroyOnLoadはそのオブジェクトがぶら下がっている一番上の親オブジェクトに対して行わなければならない、ということになっている。
それを取得する方法はプログラムで一番上を辿ってもいいし名前でFindしてもいいしpublicにしておいてインスペクター上でD&Dして指定しておいてもいい。

あともう一ついえばそこではscoreという変数をstaticで宣言している。
だからDontDestroyOnLoadはそもそも行う必要はない。
何もせずに、というよりも「何もしなければ」そのまま次の面までscoreの値は引き継がれる。
staticというのはあるメモリのアドレスが固定的に使われるものだ。
10番地にscoreの値が書き込まれていてそれはゲームが起動してから終了するまで変わらない。
だからそのクラスが破棄されて、また構築されてもscoreという変数の中身はずっと10番地に書かれている。
もっといえばそのクラスが破棄されて再構築されていなくても10番地の中身はそのままだ。
だからpublicなら他のオブジェクトからScoreScript.scoreと指定すればその値は見ることが出来る
逆にゲームが終了した時、或いは新しくゲームが開始された時、など適切な場面でscoreの値をリセットしなければいつまでもその値は残り続ける。
>>246で示されたテラシュールさんのページにある
"例えばスコアをstaticに格納しスコアを加算し続けた場合、2週目から前回のスコアを引きついた強くてニューゲームになってしまいます"
というのはそういうこと。

273 :名前は開発中のものです。:2016/04/04(月) 14:36:22.43 ID:Bny0r9r9.net
皆さんありがとうございます
なんとかできました
本当に申し訳ありませんでした

274 :名前は開発中のものです。:2016/04/04(月) 16:30:23.50 ID:ipZlx+2D.net
とりあえずチャットアプリでもつくるがいい

275 :名前は開発中のものです。:2016/04/04(月) 16:35:21.86 ID:ZgRCxNtc.net
モバイルでオンラインゲームを作るにはphoton pun+(有料アセット)
が必要と思っていたんですが、
photonの無料アセットでも、モバイルでオンラインゲームは
作れるのでしょうか?

スマホ(andorid)買ってきたので、photonの無料アセットで
試しにPCからスマホへケーブルつないで
実機テストしてみたんですが。普通に出来ました。
スマホ2台は持っていないので1台はスマホ。
対戦相手はWeb Playerから。問題なくオンライン通信できている模様。

デバッグ用ではなく、正式リリース用(PlayストアUp時)にすると、
オンライン通信できなくなるのでしょうか?

276 :名前は開発中のものです。:2016/04/04(月) 16:44:01.82 ID:9uo0zuKP.net
>>275
どっちも大丈夫
だけど無料のやつを使ってPhotonを契約するんだったら、有料の方を買ったほうが100ccu分ついてくる分お得だよ

277 :名前は開発中のものです。:2016/04/04(月) 16:47:16.85 ID:ZgRCxNtc.net
>>276
ありがとう。
無料でスマホオンラインゲーム作れるんですね!最高!

自分は大したゲーム作れないので今は無料で。
目標はPlayストアへ上げて、広告つけるところまでやってみたいなあ。
収益出たら有料考えます。

総レス数 1009
291 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200