トップページgamedev
1002コメント420KB

【3Dゲームエンジン】Unity質問スレッド22 [無断転載禁止]©5ch.net

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2016/01/11(月) 01:24:43.29ID:r4suKLTg
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質問スレッド21
http://peace.2ch.net/test/read.cgi/gamedev/1447775596/
0002名前は開発中のものです。2016/01/11(月) 14:26:50.41ID:jh+IJu+Y
Unity5.3.1 で起動すると画面が灰色で、動きません。どうしたらいいですか?
0003名前は開発中のものです。2016/01/11(月) 23:15:03.66ID:B3JfDoAX
マップデータをtext形式でセーブしゲーム開始時にロードするシステムを作ったのですが
セーブを行った時にtextファイルを上書きで書き込んでるのですが
Play中セーブを行ってもtextの中身が変わらずmonodevelopでtextファイルを開いた時に更新されました
上書きはちゃんと出来ているのですがmonodevelopで一度開かないと更新がされません 原因わかる方いませんか?
セーブするときはStreamWriter とFileInfo を使いました
0004名前は開発中のものです。2016/01/12(火) 00:44:43.39ID:2QuOWJx6
ソースコードを貼ってくれと何度も(ry

あとセーブデータをテキストファイルで保存するのは(手法の一つとしては)いいが、後で暗号化なりの処理を加えとかないと書き換え放題だぞ
0005名前は開発中のものです。2016/01/12(火) 02:57:30.91ID:zes3wFGw
ファイルの書き込みとは、メモリに書き込むだけ。
それをどういうデバイスに、いつ書き込むかは、OSの設定による

絶対にデバイスに書き込みたいのなら、
(同期的に)flush して、メモリからデバイスに書き込む

非同期だと、本当に書き込んだかどうか、わからない
0006名前は開発中のものです。2016/01/12(火) 10:37:02.27ID:7+Ji+X3F
public void Save
{
Map mapdata = GameObject.Find("MAP").Getcomponent<Map>();

StreamWriter sw;
FileInfo fi;

fi = new FileInfo(Application.datapath + "/Resources/stageData.txt");
sw = fi.CreateText()

for(int i=0;i<mapdata.maxY;i++){
for(int j=0;j<mapdata.maxX;j++){

sw.Write(mapdata.pos.y);
sw.Write(",");
sw.WriteLine(mapdata.pos.x);
}
}
sw.Flush();
sw.Close();
}

ソースコードはこの様な感じです
Mapのデータを書き込むようにして
保存先はリソースファイルに指定しています
0007名前は開発中のものです。2016/01/12(火) 14:33:57.23ID:Ujpm+eby
質問です
今単純なオブジェクトをまぁ大体100個位同時に表示させるゲームを作ってるんですが
Batchesつまりドローコールがかなり多くなってしまいます
オブジェクトを一つのマテリアルで共用で使うように変更してみたりしたのですが
やっぱりドローコールが多いです
ドローコールを下げる方法ってのはどういうものがあるでしょうか?
0008名前は開発中のものです。2016/01/12(火) 21:54:46.06ID:vxzjE1XO
batchsとdrawcallは別だよ
batchsの値は、「それだけdrawcallを減らせた」って事だから、batchsの値が高くても、気にしなくていい
0009名前は開発中のものです。2016/01/12(火) 21:56:46.09ID:vxzjE1XO
saved by batchesの方だった
嘘教えてごめん
0010名前は開発中のものです。2016/01/12(火) 22:00:31.79ID:vxzjE1XO
3Dで作ってるなら、drawcallが多くなるのは、これが原因かも

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10126720595
0011名前は開発中のものです。2016/01/12(火) 22:38:14.54ID:x5b084d/
>>7
Unity5系であれば、Frame Debbuger使えば実際のドローコールが目視で確認できるから見てみるのもいいかもしれない
0012名前は開発中のものです。2016/01/13(水) 00:59:26.62ID:GYbfaCxv
>>10
うーむ
違いますねぇ〜
ライトはもともと設置してあるディレクショナルライト一つを多少向きを変えて使ってるだけです

>>11
明日チェックしてみます
0013名前は開発中のものです。2016/01/13(水) 13:30:48.96ID:xhzQbyIl
>>6
>sw.Flush(); sw.Close();

よく知らないけど、普通、ファイルのClose()を呼べば、
その中でFlush()を呼ぶから、
Close()する際、Flush()は書かなくてよい

サンプルを見て、sw.Flush(); sw.Close();と書いてあるなら、
その通りにしてください
■ このスレッドは過去ログ倉庫に格納されています