トップページgamedev
994コメント388KB

【3Dゲームエンジン】Unity 4 [転載禁止]©5ch.net

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2015/06/16(火) 01:35:14.74ID:VIGyPiQQ
3Dゲームエンジン「Unity」の質問に優しく答えるスレです。
Windows/Mac用。JavaScript/C#/Booといった汎用言語を使用できるのが特徴です。
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他

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

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

■本スレ
【3Dゲームエンジン】Unity総合スレッド26
http://peace.2ch.net/test/read.cgi/gamedev/1429375487/

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

●リンク
・Unity(日本公式サイト)
 http://unity3d.com/japan/
・ユーザーガイド&リファレンス
 http://japan.unity3d.com/developer/document/
・チュートリアル
 http://japan.unity3d.com/developer/document/tutorial/
・スクリプトリファレンス
 http://docs-jp.unity3d.com/Documentation/ScriptReference/
・FAQ
 http://answers.unity3d.com/index.html
・MSDN
 http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
0758名前は開発中のものです。2015/08/05(水) 23:26:13.29ID:CamXSh92
>>756
共通関数が欲しいだけのstatic method使いたいだけならMonoBehavior継承いらんだろ
とりあえずhas-aとかis-aとかの関係をきちんとわけて考える様にMSのC#本でも買っとけ

ぜんぜんかんけいないけどsealdで検索したら左翼ゲリラがでてきて困った出ござる
0759名前は開発中のものです。2015/08/05(水) 23:38:17.67ID:HHu91jjI
いままでコピペでなんとなく作れてましたが
質問してみて基礎が分かってなさすぎと分かったので
リファレンスのスクリプティング概要 読み直してみようと思います。
C#の基礎の本も買おう・・・ 

>>757さん 758さん ご回答有難う御座いました。
07607532015/08/06(木) 01:13:24.94ID:+T7HGyLY
>>754
やっぱり全員の環境で起こるわけじゃないんですね。。。
Defaultでやっても「SUCCEEDED(hr)」エラーでたのでTailは関係ないみたいです。
Unity再インストールもしてみたんですが、特に変わらず。

エラーメッセージも「SUCCEEDED(hr)」しかでないし、情報不足過ぎて何のエラーかすらようわかりませぬよ。。。
0761名前は開発中のものです。2015/08/06(木) 11:29:17.83ID:sN/F2r0B
すみません、shaderの質問です。
透過(半透明)させつつ他のオブジェクトの影が映るshaderってありませんか?
0762名前は開発中のものです。2015/08/06(木) 13:13:27.54ID:1PCQOc0+
>>761
オブジェクト2つ用意して1つをshadowsonlyじゃだめなの?
0763名前は開発中のものです。2015/08/06(木) 13:14:25.59ID:1PCQOc0+
ごめん読みまちがえた
0764名前は開発中のものです。2015/08/06(木) 13:32:09.27ID:cBJpMccl
普通にスタンダードシェーダーじゃまずいのか?
ガラスとか宇宙服のヘルメットとかみたいな表現だろ?
日本語で詳しく説明されてるぞ
0765名前は開発中のものです。2015/08/06(木) 13:39:42.75ID:1PCQOc0+
>>761
これかな?
ttp://famme-fatale.hatenablog.com/entry/2015/03/18/124410
07667612015/08/06(木) 15:45:39.19ID:sN/F2r0B
みなさんありがとうございます
765さんのでいけそうでしたが
Skinned Mesh Rendererを使っていると
だめみたいです。
0767名前は開発中のものです。2015/08/06(木) 16:24:07.94ID:1PCQOc0+
>>766
こっちの環境ではMeshRenderer関係無くいけてる気がする
ReceiveShadowsのチェックはずれたりしてない?
07687612015/08/06(木) 16:46:26.22ID:sN/F2r0B
>>767
失礼しました。
0769名前は開発中のものです。2015/08/07(金) 08:17:10.74ID:nAxCzz6h
>>107
自分もパーミッション勝手についちゃうけどその後どう?
0770名前は開発中のものです。2015/08/07(金) 22:45:57.39ID:+bECwRrn
Unityって今からはじめるともう時代遅れとかある?
敷居高いイメージがが
0771名前は開発中のものです。2015/08/07(金) 23:00:50.03ID:/TyZbXTY
FPS/TPSを作るならUnreal Engineの方がいいという意見もある
時代遅れと言うほど他に先んじてるものはないと思うが
敷居の高さは…


ド素人  RPGツクール   ウディタ        DirectX等    プロ
 ┝────────────────┼─────────┤
..                         △
.                         多分この辺
0772名前は開発中のものです。2015/08/07(金) 23:13:24.66ID:+bECwRrn
なるほどありがとう
やっぱり高めだなあ
勉強するよ
0773名前は開発中のものです。2015/08/07(金) 23:18:48.35ID:6MPrjvWO
Unreal Engineは、何もせずにFPSが作れるし、初めからFPS用の配慮が行き届いている
ただ大手が作ったFPS以外ってなかなか売れないからね・・・・
スマホ用の簡単ゲーム作成が中心となるとUnityとそのライセンス形態が結構よかったりするんだな
0774名前は開発中のものです。2015/08/07(金) 23:21:57.33ID:i52yCBjp
現状Unityで作れないものないから、
今から古いツール勉強してる使うくらいならUnityやる事を勧める
Unity無理ならWeb小説でも書けばよろし
0775名前は開発中のものです。2015/08/07(金) 23:40:33.44ID:hsQCoUC9
>>772
プログラミングの知識があるならスクリプト自体は簡単だよ。C#の初級レベルさえ知ってればとりあえずチュートリアルはできる
UEはいい素材を持ってるならグラはかなり良いけどスマホ向けには重いしロイヤルティ5%も取られるよ(ただし売上3000ドルまではロイヤルティフリー)
0776名前は開発中のものです。2015/08/07(金) 23:42:51.77ID:8P091hGo
そういえば昔の旧砂漠って流砂なかったの?
0777名前は開発中のものです。2015/08/07(金) 23:43:17.19ID:8P091hGo
すまん誤爆
0778名前は開発中のものです。2015/08/07(金) 23:52:01.26ID:+bECwRrn
>>775
プログラムはできるから嬉しいね
頑張ってみるよ
0779名前は開発中のものです。2015/08/08(土) 00:00:09.80ID:js8lfIDK
なんかボタンコンポーネントから警告が大量に出るようになったんだけど
Parameter 'Highlighted' does not exist.
UnityEngine.UI.Selectable:OnValidate() こんなのが大量に。

Animatorはつけてるけどボタンアニメーション設定してないんだよね。
0780名前は開発中のものです。2015/08/08(土) 00:14:15.28ID:Cum65bC1
>>779
俺は初心者だから意味わかんねーけど、それって、アニメーションの終わりを決めてないんじゃないのか?
0781名前は開発中のものです。2015/08/08(土) 00:15:20.15ID:/O4Hr1O9
ツクールなんかより縛りがないからよっぽど簡単だわ
0782名前は開発中のものです。2015/08/08(土) 00:57:31.45ID:prpVaKdz
流れで聞きたいんだけどUEとUnityって何が違うの?
UEはリアルって聞くけど、それってモデルの質とか
プログラムの書き方によって
変わるんじゃないの?と思うんだけど
Unityがモバイル向け、UEがハイエンド向け、と言われているのはどこなんですか
0783名前は開発中のものです。2015/08/08(土) 01:13:22.91ID:WTntF6Fb
UEはライティングのおかげでクソみたいなモデルでも少しはそれっぽく見えるが負荷のかかる方式だからハイエンド向け(ただしモバイル向けの最適化にも力を入れるらしい)
UnityはおおむねUE3相当のグラだがその分軽いのでモバイル向け

ただしUnityは中間言語方式だから実行時コンパイルに処理を割いてる分(PC向け以外は5.2でIL2CPPが導入され解消される予定)と
グローバルイルミネーションにEnlightenっていうのをつかってるんだけどこれは基本的に高速だけど光源の数が増えると重くなる欠点がありUEのGIは多くても少なくても変わらないという特徴がある

つまりUnityは超ハイエンド向けになると逆に遅くなるのでコンシューマのAAAタイトルには使われてないね
0784名前は開発中のものです。2015/08/08(土) 01:51:58.65ID:ULYH9pEs
UE4は言語がC++じゃなかったっけ?
ゲームプログラマーは歴史的にC++使いが多く、限られたハードウェアのリソースを
有効活用するためにメモリ管理をしたがるからベテランはUE4の方が
やりやすいってのも、あるんじゃないの

個人的にはC#はインテリセンスがよく効いてたりメモリ関連が自動だから
C++よりはとっつきやすいんじゃないかな。その分、重いけどわずらわしさは少ないのでラク

今はハードウェアのメモリが安価で大きくなってきてるからunityでも
AAAクラスでない限り実戦で使えるようになってきている感じかも
0785名前は開発中のものです。2015/08/08(土) 02:01:44.65ID:Y1oBQifD
最近から見ればC++は低級言語化してきてるしな
今更カベージコレクションない言語使うとかやってられんわw
0786名前は開発中のものです。2015/08/08(土) 10:47:59.68ID:396ATCKe
il2cppってc++に変換する技術っすよね?
c#もメモリ管理できないわけじゃないし、c++使う理由ないっすよね
0787名前は開発中のものです。2015/08/08(土) 12:01:59.85ID:GX5HfKzG
なんらかのプログラミング経験があるならC#とか言語自体はたして問題ないよ
ゲーム初心者はオブジェクトやコンポーネントを使いこなすのが大変
アニメとかマテリアルとかはやればやるほど奥が深くなる
0788名前は開発中のものです。2015/08/08(土) 12:14:48.75ID:nsvqXFx8
Unity5.1.2インストールしたんだけど、メニューからImport New Assetsの所を選んでもCustom Packageしか表示されません。
EffectsとかParticleSystemsとか表示されるのを期待したんだけど、Unity5はこういうもんですか?
0789名前は開発中のものです。2015/08/08(土) 12:17:34.61ID:apaLX1ex
>>788 そういうものです
0790名前は開発中のものです。2015/08/08(土) 12:34:39.49ID:GX5HfKzG
>>788
Import New Assets じゃなくてImportPackage だろ?
単にインストールした際にStandard Assetsをインストールしていなかっただけ
対処方法の詳細はググれば幾らでもある
0791名前は開発中のものです。2015/08/08(土) 12:42:05.19ID:nsvqXFx8
再インストールの際のダウンロード時間短縮のために、UnitySetup64.exeをバックアップして、それで再インストールしてたのが原因でした。
UnityDownloadAssistant-5.1.2f1.exeを実行して、>>790さんの言うとおり、Standard Assetsをチェックしたら大丈夫でした。
お騒がせしました。
0792名前は開発中のものです。2015/08/08(土) 21:28:10.10ID:N/D5gJUC
ところでUnityでフレームスキップしないように設定できる?
0793名前は開発中のものです。2015/08/09(日) 01:49:33.02ID:XyY7+yoD
そこそこ大きいデータをunity内部で扱うためにsqliteを使いたいのですが、何かいいアセットなどありますか?
もしくは他にいい感じのDBなどはありますか?
0794名前は開発中のものです。2015/08/09(日) 02:45:47.85ID:8vhmQCx9
>>793
sqliteを使うAssetはStoreで探せばいくつもある
DataBindをC#と密接にしたいのならオープンソース実装がGitHubにころがっている

どういう使い方をしたいかで決まるから自分で探す方が良い
なおどれもPlugin経由なのでプラットフォーム依存があるからAssetStoreなら評価をOSS物の場合はC#からの親和性とかを元にチェックする事
0795名前は開発中のものです。2015/08/09(日) 11:58:29.14ID:1Y3sDlK9
UNITYでVSが標準になるとかならないとか
VSで何G喰うのかな
Cドライブがやばい、かと言ってリンクしようにもD以降も余裕ない
HDD買い増しか、いっそのことPC買い替えか
0796名前は開発中のものです。2015/08/09(日) 12:40:41.84ID:MRvAVR8Q
https://www.visualstudio.com/ja-jp/visual-studio-2015-system-requirements-vs.aspx
一応インストールのシステム要件は 4GBの空き容量になってるね
作業するなら大量に空きがあったほうがいいね
0797名前は開発中のものです。2015/08/09(日) 14:23:00.07ID:/OhH7e0+
ラムダ式書くと、foreachで回すより明らかに遅いのだけど異常ですか?
0798名前は開発中のものです。2015/08/09(日) 14:43:54.26ID:8vhmQCx9
>>797
foreachの中身を別関数にして呼び出せば同じ速度になると思うぞ
0799名前は開発中のものです。2015/08/09(日) 14:59:07.10ID:/OhH7e0+
FidAllがやけに遅いと思ったけど、foreachでも別関数なら同じなのかな
0800名前は開発中のものです。2015/08/09(日) 15:05:00.83ID:8vhmQCx9
>>799
内部的にはdelegateを渡したのと一緒で渡したLambda式を関数呼び出しするからね
0801名前は開発中のものです。2015/08/09(日) 17:31:16.80ID:juyi80yV
テストプレイ中に稀に以下のエラーが発生して止まってしまうのですが、対処出来なくて困っています。
当方Unity5。
エラーの発生箇所がeditorやInspector臭いのですが、特にカスタマイズはしてないです。
せいぜい、OnValidate()でInspectorの変更をオブジェクトに適用させるくらいです。

MissingReferenceException: The object of type 'GameObject' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
UnityEditor.GameObjectInspector.DoRenderPreview () (at C:/buildslave/unity/build/Editor/Mono/Inspector/GameObjectInspector.cs:680)
UnityEditor.GameObjectInspector.OnPreviewGUI (Rect r, UnityEngine.GUIStyle background) (at C:/buildslave/unity/build/Editor/Mono/Inspector/GameObjectInspector.cs:745)
UnityEditor.Editor.OnInteractivePreviewGUI (Rect r, UnityEngine.GUIStyle background) (at C:/buildslave/unity/build/artifacts/generated/common/editor/EditorBindings.gen.cs:309)
UnityEditor.ObjectPreview.DrawPreview (IPreviewable defaultPreview, Rect previewArea, UnityEngine.Object[] targets) (at C:/buildslave/unity/build/Editor/Mono/Inspector/Editor.cs:225)
UnityEditor.Editor.DrawPreview (Rect previewArea) (at C:/buildslave/unity/build/Editor/Mono/Inspector/Editor.cs:522)
UnityEditor.InspectorWindow.DrawPreviewAndLabels () (at C:/buildslave/unity/build/Editor/Mono/Inspector/InspectorWindow.cs:759)
UnityEditor.InspectorWindow.OnGUI () (at C:/buildslave/unity/build/Editor/Mono/Inspector/InspectorWindow.cs:386)
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
(at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)


稀にしか発生せず結構お手上げ状態です。
よろしくお願いします。
0802名前は開発中のものです。2015/08/09(日) 17:33:39.23ID:cORaqZFq
業務でやってるならUnityに聞いた方がいいんじゃないかな
0803名前は開発中のものです。2015/08/09(日) 17:41:04.67ID:MRvAVR8Q
MissingReferenceException: The object of type 'GameObject' has been destroyed but you are still trying to access it.
でググると結構出てくるな
nullチェック時に==はオーバーライドしてんのか
0804名前は開発中のものです。2015/08/09(日) 17:52:22.98ID:8vhmQCx9
>>801
エラーログからみるにテストプレイはUnityEditor上でALT+PかCMD+Pでプレイしてるんだよね
死んだ(Destroy済み)のGameObjectをUnityEditor上のインスペクタ(あるいはUnityEditor用のAsset)で開きっぱなしにしてない?
0805名前は開発中のものです。2015/08/09(日) 18:06:36.80ID:juyi80yV
>>804
ここここれっぽいです!!! ありがとうございます!!
destroyされたGameObjectのprefabをInspectorに開きっぱなしです。
確かに、この状態だと100%発生しますね(恐らく生成のタイミングで)。
とはいえ、どうしてそうなるんでしょう
0806名前は開発中のものです。2015/08/09(日) 19:30:08.93ID:MJa1D6eV
質問です。
CharacterControllerを使わずにそうさしてるのですが、接地判定がうまくいきません。

void CheckGround(){
if(Physics.Raycast(transform.position,Vector3.down,out hit, 10 )){
if(hit.collider.tag == "Ground"){
isGrounded = true;
}
}

で、処理してるのですが、isGroundedがtrueになりません。プレイヤーにBoxColliderとRigidbodyを
地面にはBoxColliderを付けて、タグを"Ground"にしています。
どなたかわかる方、または参考になるサイトをご存知の方居たら教えてください。
0807名前は開発中のものです。2015/08/09(日) 19:35:54.21ID:a0bgjuvw
Unityの2Dモードで、何枚か張られているパネルをマウスでクリックして消すゲームを作っております。
同じプレファブを使い、同じコードを使ったところ、1個のパネルを消すと全て消えてしまいます。

spriterenderer,boxcolider2dを付けてます。

実装は、クリックされたら以下のコードが実行されます(panel.cs)
v2には、クリックポイントが入ります。

v2 = GameObject.Find("Main Camera").camera.ScreenToWorldPoint(v2);
RaycastHit2D hit = Physics2D.Raycast(v2, Vector2.zero);
if (hit) {
Debug.Log ("x:"+v2.x+" y:"+v2.y);
Destroy(this.gameObject);
return;
}
で、consoleで見ると、1個当たっただけで全部のパネルが消えているのが確認できました。
consoleに大量のx,yの表示がされております。
自分自身かどうか判断する方法は無いでしょうか?よろしくお願いいたします。
0808名前は開発中のものです。2015/08/09(日) 19:57:23.46ID:a0bgjuvw
自己解決しました。申し訳ございません。
0809名前は開発中のものです。2015/08/09(日) 22:15:38.25ID:iIBFuBQ/
Unityを使用するブラウザゲームをやっているんですが、
最近、数十分前には起動できていたのに、ゲームを立ち上げようとしたらUnityが消えてる(アンインストールされてる?)事があります。
(Unityダウンロードページでもnot installedになっている)
なにかウイルスか設定のようなものでこうなったりするんでしょうか?
0810名前は開発中のものです。2015/08/09(日) 22:54:46.87ID:bQXYImrI
>>805
ギャグかよw
destroyしたからに決まってんだろうw
もう使わないよと言っておきながら使うという矛盾www
0811名前は開発中のものです。2015/08/09(日) 22:58:41.88ID:bQXYImrI
>>809
きっと妖怪の仕業だわ
お祓いしなきゃね
0812名前は開発中のものです。2015/08/09(日) 23:20:09.22ID:M1ulE9Fv
最初のシーンが重いのかUnityロゴ表示がかなり長くなってしまったので
シーン切り替えスクリプトのオブジェクトのみ配置したシーンを最初に作ったんだけど
変わらずロゴ画面でロードしてしまいます
なるべくロゴ表示を早く切り替えるのにはどうすれば良いですか?
0813名前は開発中のものです。2015/08/09(日) 23:31:12.99ID:eHkK7Iki
Proを買う
0814名前は開発中のものです。2015/08/10(月) 00:39:12.02ID:NcNOCafI
キャラIDとスキルIDをボタンの引数として登録する機能を作っています。
ボタンを押した時にShowSkillWindow(int, int)を実行するのですが、
2個目の引数の値をこの時点のiの値で呼び出したいのに、ボタンを押した時点での値で呼び出されてしまいます。
(この場合はループ終了後のiの値である5が引数になる)

public void Init(int charaID) {
for (int i = 0; i < 4; ++i) {
Button.ButtonClickedEvent clickEvent = new Button.ButtonClickedEvent();
Debug.Log("charaID:" + charaID + ", SkillID:" + i);
clickEvent.AddListener(() => BattleManager.I().ShowSkillWindow(charaID, i));
skillButtonList[i].GetComponent<Button>().onClick = clickEvent;
}
}

引数を固定させる方法か、代わりになる方法はありませんか?
0815名前は開発中のものです。2015/08/10(月) 01:01:41.62ID:NcNOCafI
解決と言えるのか自信がないけど意図した動作が出来たので残します。
引数を保持するための構造体の定義を作っておき、そこから処理を呼ぶ方法で実装出来ました。
構造体を作って放置するのがメモリ的に不安なので、改善点あれば教えてもらえると助かります。

struct StrSkillAction {
public UnityAction SkillAction(int charaID, int skillID) {
return () => {
BattleManager.I().ShowSkillWindow(charaID, skillID);
};
}
}

public void Init(int charaID) {
for (int i = 0; i < 4;++i) {
Button.ButtonClickedEvent clickEvent = new Button.ButtonClickedEvent();
Debug.Log("charaID:" + charaID + ", SkillID:" + i);
StrSkillAction eventClass = new StrSkillAction();
clickEvent.AddListener(eventClass.SkillAction(charaID, i));
skillButtonList[i].GetComponent<Button>().onClick = clickEvent;
}
}
0816名前は開発中のものです。2015/08/10(月) 01:55:01.36ID:5Hk6N57m
>>806
>if(Physics.Raycast(transform.position,Vector3.down,out hit, 10 )){

out hit,

ここに空白が入っていても、構文エラーにならないの?
0817名前は開発中のものです。2015/08/10(月) 02:03:06.07ID:NcNOCafI
outは関数の中で値を入力して返すためのもの
この場合はRaycast関数の中でhitに衝突情報が入って返ってくるということ
いわゆる参照渡しみたいなもの
0818名前は開発中のものです。2015/08/10(月) 02:09:07.80ID:NcNOCafI
>>806
衝突自体していないのか、
Raycastは真だけどtagに別の値が入ってるのか、
別の物体とは衝突するのか
あるいは別の物体と先に衝突しているのか
その辺りを調べればいいと思う
予想では、別の物体が先に衝突してるんじゃないかと
その場合はレイヤーマスクの指定で解決するかも
0819名前は開発中のものです。2015/08/10(月) 02:23:40.44ID:FUa01Ekr
806です。

>>816
参考にしたサイトに、第三引数にoutで指定すると衝突したオブジェクトの情報が入る。と書いていたので
そのまま使ってます。hitのColliderを判定してるので必要ですよね?エラーは出てないですが、isGrounndedは返ってきません。

接地判定やcheck groundで検索してみたんですが、どうしても欲しい情報がないんですよね。
0820名前は開発中のものです。2015/08/10(月) 04:40:26.71ID:WlJ3IdsP
ブレイクポイントの使い方を覚えると捗るよ
0821名前は開発中のものです。2015/08/10(月) 12:06:28.96ID:FUa01Ekr
806です。
皆さん本当にすみません。ただ単にBlenderからインポートしたオブジェクトが大きすぎて、
Raycastが届いて無かっただけの様です。
サイズ調整したらちゃんと接地判定してくれました。色々おかしかった所の大半がリサイズで解決しました。

アドバイスいただいた皆さんありがとうございます。
0822名前は開発中のものです。2015/08/10(月) 14:22:11.83ID:mK6U9Zck
設計の問題かもしれませんが、ダンジョンで使ったオブジェクトやらスクリプトを町で使いまわしたいのですが
ゲームの状態(ポーズ画面とかインベストリ画面とか)を操作するスクリプトを変える必要があって、これを変えると他の部分も大量に変える必要が出てしまうので
シーンごとに同じ名前(スクリプト名やら)だけど内容は違うみたいなことが出来る方法ってありますか?
やりたいことは倉庫の実装でインベストリ画面を開いたままにしたいのですが、ゲーム状態のスクリプトのupdateの部分に色々かいてたりするので倉庫だったらリターンtかも出来なさそうですし・・・
この方法以外にもいいやり方あったら教えていただけると幸いです
0823名前は開発中のものです。2015/08/10(月) 14:26:44.54ID:v4fNYOjT
>>822
もしかして:インベントリー画面
設計が間違ってると思うぞ、パーツとしてのスクリプトやプレファブの独立性を高くしないとどんどん酷くなると思う。
0824名前は開発中のものです。2015/08/10(月) 14:33:12.42ID:mK6U9Zck
>>823
なにぶんゲームやらプログラミング初めてなのでいまいち設計がわからなく・・・
次からは気をつけようとは思うのですが(どう気をつけるべきかも分からないってのもありますが)
今回はちょっとこのままごり押しで行きたいと思うのです
この作品では倉庫と店さえできれば(二つともインベントリひらくだけ)あとはつくるものはほぼないのでこのままいけたらなとは思ってます
0825名前は開発中のものです。2015/08/10(月) 14:40:00.14ID:mK6U9Zck
うーんよく考えたらゲーム状態の上位にさらにゲーム状態くっつければいいような気もしてきました
updateの部分をダンジョンだったら動作するように変えて町かダンジョンかの状態も操作するような物にしてみます
0826名前は開発中のものです。2015/08/10(月) 15:04:38.80ID:sZwBkfWo
UNITYをRPGツクールかなんかと思ってないかw
スクリプト変えないで町を作ろうとか
0827名前は開発中のものです。2015/08/10(月) 15:13:10.50ID:mK6U9Zck
>>826
一番楽だろうなと思ったのはスクリプト名を同じものにして(他で名前変えるのが面倒だったので)スクリプトの内容は変えるという感じで
これが出来たら一番楽だなと思って質問しました
0828名前は開発中のものです。2015/08/10(月) 15:18:55.29ID:wojOIyQx
実際デリゲートとか使えばそれで済む話だしな〜
0829名前は開発中のものです。2015/08/10(月) 15:23:07.25ID:sZwBkfWo
今一何したいのか判らん>>823の言うとおり設計から考えなきゃだめなんじゃね

単にスクリプトのクラス名が衝突するのを回避したいならnamespaceで調べれば幸せになるれけど
0830名前は開発中のものです。2015/08/10(月) 15:32:53.53ID:mK6U9Zck
>>829
倉庫ではゲーム状態(ポーズ画面とかそういうやつ)をインベントリ画面に設定して他のボタンを押してもそこから動かないようにしたかった 
かつ、ダンジョンで使っていたものを再利用したかった
そこでゲーム状態操作するスクリプトをいじる必要があったのでダンジョン内では、アップデートの部分に例えばesc押すとポーズみたいな関数があり
その部分をシーンがダンジョン内だったら動くようにしました
仮に設計から考える場合はどうなるんですか?
0831名前は開発中のものです。2015/08/10(月) 15:37:25.40ID:sZwBkfWo
いやその説明で設計の助言できるのはエスパーかよほど似たような事してる奴だけだろw
0832名前は開発中のものです。2015/08/10(月) 16:59:55.36ID:KBTO4hmR
Unity5 Water4シェーダーについて質問です。

浅い川に使ってるのですが、屈折効果があわられません(水面下がうにゃうにゃ変形されるの)
色々試したのですが、ある程度(2m以上)深くすると効果が出ます。何処をいじればいいのでしょうか?
全てのパラメーターを極端な数値に設定して試したのですが、うにゃうにゃになりません。
もしかしてシェーダースクリプトそのものを変更しないとダメなのでしょうか?
0833名前は開発中のものです。2015/08/10(月) 17:44:03.89ID:7mxq3sqw
Instantiateで作ったクローンたちをCanvasの子にするにはどうすればいいんでしょうか?
ttp://blog.doinet.co.jp/?eid=1031771
ここのサイトを参考にしましたがうまくできませんでした・・・
0834名前は開発中のものです。2015/08/10(月) 17:50:16.51ID:Vfcir//D
>>833
http://docs.unity3d.com/ja/current/ScriptReference/RectTransform.html
にある SetParent 関数でどうぞ
0835名前は開発中のものです。2015/08/10(月) 18:02:19.58ID:KBTO4hmR
>>832
自己解決しました。
Editorスクリプトが入ってなかったので入れて、
NormalsとFadeをいじってる内にいい感じに屈折表現されるようになりますた
0836名前は開発中のものです。2015/08/10(月) 18:05:16.92ID:Vfcir//D
>>832
テストシーン作ってみたけど普通に動いてる気がする
2mてのがわからんけど、Daylight Water をy=0において、床をy=-0.0001でもちゃんと歪んだ
動作の感じからすると水面と川床の距離がカメラから見て小さくなりすぎると
Zの精度の都合で歪ませたテクスチャのレンダリングがうまくいかなくなってる

別な要因の場合だとわからん
0837名前は開発中のものです。2015/08/10(月) 18:07:56.00ID:Vfcir//D
あれ?違うシェーダーかな・・
0838名前は開発中のものです。2015/08/10(月) 18:28:21.51ID:wI7xw16W
Unity5.1.2のパーティクルについて質問です。

2Dゲーム内でスプライトをパーティクルとして利用する方法がわかりません。
2Dパーティクルの作成方法、または参考となるサイトなどありますでしょうか?

ttp://udasankoubou.blogspot.jp/2012/07/unity2d.html
↑のサイトを参考にパーティクルを作製しているのですが
バージョンの違いのせいか、黒い四角が表示されて終わります。
0839名前は開発中のものです。2015/08/10(月) 18:54:14.72ID:7mxq3sqw
>>834のSetParentを使ってみたんですがなぜかAn object reference is required to access non-static memberのようなエラーが出てうまくいきません
子(objという名のオブジェクト)のスクリプト内で以下のように書いているんですが、どういう記述にすればいいんでしょうか・?
obj2 = GameObject.Find("obj");
obj2.transform.SetParent (Canvas.transform,false);
0840名前は開発中のものです。2015/08/10(月) 18:55:43.91ID:ljA6WxLC
すぐに自己解決したりちょっと調べれば解るようなことでいちいち質問すんな
自分で解決する癖つけないと何時迄も初心者以下のまま
3日くらい悩んで解らなかったら質問しろ
0841名前は開発中のものです。2015/08/10(月) 19:06:00.20ID:7mxq3sqw
>>840
調べても解決しませんでした
逆にどう調べたら解決したんですか?
ほんとにググって解決するんですか?
0842名前は開発中のものです。2015/08/10(月) 19:15:47.52ID:Vfcir//D
>>841
しますよ
調べ方すら分からないくらいあらゆる知識と知恵が足りていないだけ
0843名前は開発中のものです。2015/08/10(月) 19:23:39.80ID:7mxq3sqw
>>842
じゃあどう検索して、どのサイトで分かるか教えてください。そこまで言うからにはあるんでしょ?
また、そうやって煽るのも、調べる力を低下させる原因になります、なのにそういって調べさせるのはよくないと思いますよ
0844名前は開発中のものです。2015/08/10(月) 19:43:59.77ID:v4fNYOjT
>>843
InstantiateしたのがGameObjectならtransform持っているし、transformもっていればSetParent出来ることは確実
つかなんでFindしてんだ?
Instantiateしたオブジェクトは何処行った?
0845名前は開発中のものです。2015/08/10(月) 19:45:52.51ID:F7WR9lyE
そもそもこれを正しく理解しないとな

GameObject retObj = (GameObject)Instantiate(プレファブ);

この retObj には、実体化したプレハブが入ってる。findコマンドは必要ない。

retObj.transform.SetParent (Canvas.transform ,false);

ただCanvas.transform自体、実体取れてない気がするがな。
悪い事言わんから大人しくチュートリアルやっとけ。
このレベルなら、ここで聞くよりよっぽど有益だぞ。
0846名前は開発中のものです。2015/08/10(月) 19:54:35.14ID:wI7xw16W
とりあえず全部の質問に「優しく答えてやる」のが
このスレの存在意義なんじゃないんでしょうか
それに納得できないならググるためのキーワードとかヒントを教えて欲しい
0847名前は開発中のものです。2015/08/10(月) 20:03:34.21ID:GfmM7YVS
こういうのをアスペって言うのかな
0848名前は開発中のものです。2015/08/10(月) 20:05:31.46ID:Vfcir//D
>>843
Unity5 親子関係 Instantiate
で出てきたヤツを上から順番に見て
関連する部分でしらないメソッドやクラスをさらに検索する
クラスならUnity本家のリファレンスも同時に参照し、関係するものを調べる

これだけできみらの抱える極々基礎の問題は大半が解消できる
「調べる」は基本的なことだから「調べさせるのはよくない」と言い出すくらいなら
もうプログラムやめていいよ
向いてない
0849名前は開発中のものです。2015/08/10(月) 20:09:51.32ID:7mxq3sqw
>>844
親がobjをInstantiateしてます、親にSetParentを書いてみましたがエラーが出てうまくいかず・・・
SetParentは子に書くんですか?でも子でもうまくいかなかった気が・・・
キャンバスに対してゲットコンポーネントでもしないといけないんですかね?
0850名前は開発中のものです。2015/08/10(月) 20:09:55.81ID:Vfcir//D
>>838
Unityはパーティクルが旧来ものとシュリケンと呼ばれる新しいものの二種類がある
検索先の日付を見て古いものは旧バージョンの情報だと思った方がいい
http://tips.hecomi.com/entry/2015/03/23/004733
リンク先の記事のリンク先やUnity公式を見ながらがんばれ
0851名前は開発中のものです。2015/08/10(月) 20:12:28.42ID:7mxq3sqw
>>848
なに勘違いしてるんですかね・・・調べさせるのは良くないとは一言も言ってないんだが?勘違いも甚だしい
未だに煽ってるしそっちこそもうプログラムやめていいよ
向いてない
0852名前は開発中のものです。2015/08/10(月) 20:13:26.12ID:v4fNYOjT
>>849
そのときのコードとエラーの写しを添えて質問すべきだと思うな
0853名前は開発中のものです。2015/08/10(月) 20:15:04.29ID:Vfcir//D
>>849
Canvasが取得済みのGameObjectなら
 obj2.transform.SetParent (Canvas.transform,false); 
これで問題ないはずだ
できていないなら隠してる情報をもっと載せるべき
エスパーじゃないからエラー行や変数がどうなっているかはわからない
0854名前は開発中のものです。2015/08/10(月) 20:43:11.24ID:Vfcir//D
とりあえずな
質問を書き込む前に
過去レスを遡って直接自分が抱える問題と関係ないものでも目を通して
質問を答える上で相手に伝えなければいけない情報の選別の仕方と
相手が理解できる質問の書き方を先人から学んでくれ

何をやりたいか、何が問題か、どういう記述をしたか、どういう状況なのか、どういう結果だったのか
返答の後に情報を後出ししなくていい様にちゃんと書いてくれ
0855名前は開発中のものです。2015/08/10(月) 21:04:57.79ID:wI7xw16W
>>850
ありがとうございます!いろいろ試してみます!
0856名前は開発中のものです。2015/08/10(月) 21:19:10.44ID:7mxq3sqw
エラーはこれです
error CS0120: An object reference is required to access non-static member `UnityEngine.Component.transform'

error CS1502: The best overloaded method match for `UnityEngine.Transform.SetParent(UnityEngine.Transform, bool)' has some invalid arguments

CS1503: Argument `#1' cannot convert `object' expression to type `UnityEngine.Transform'


親のソースはこれです
public GameObject obj;

void Update () {
Instantiate(obj,new Vector3(0.0f, 0.0f, 0.0f),Quaternion.identity );
obj.transform.SetParent (Canvas.transform ,false);
}

objにはインスペクタで増やしたいオブジェクトを入れています
子に書いてゲットコンポーネントもするのが正解なのか…うーん・・・
0857名前は開発中のものです。2015/08/10(月) 21:37:06.46ID:+inM/XFW
程度の低い質問者に程度の低い回答者……これがUnityの質というわけか……
そりゃアセットおじさんさえも飽きていなくなるわな
■ このスレッドは過去ログ倉庫に格納されています