トップページ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←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
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の質というわけか……
そりゃアセットおじさんさえも飽きていなくなるわな
0858名前は開発中のものです。2015/08/10(月) 21:37:43.37ID:v4fNYOjT
>public GameObject obj;
>void Update () {
>Instantiate(obj,new Vector3(0.0f, 0.0f, 0.0f),Quaternion.identity );
>obj.transform.SetParent (Canvas.transform ,false); // エラーって全部この行ででてないかい?
>}
ここだけで間違いが3つ
1:Instantiateの戻り値を捨てている
2:obj.transform.SetParent〜 では元のPrefabへの変更になる
3:Canvas.transformなんてクラス変数は無いんじゃないかな?、Canvasを手当したGameObjectの参照の名前は何処?

public GameObject prefab; // objって名前はよろしくないので改名
public GameObject yourCanvasObject; // Canvasオブジェクトをinspectorで指定しておく
void Update() {
GameObject child = (GameObject) Instantiate(prefab, Vector3.zero, Quaternion.identity ); // GameObjectをInstantiateしても戻り値はobject型なのでキャストする
child.transform.SetParent(yourCanvasObject.transform, true); // instantiateしたchildオブジェクトの親を指定
}

とりあえずエラーのある行をゆっくり観察してエラーが持つ意味をちゃんと理解しないと先に進むのは難しいと思うよ。
0859名前は開発中のものです。2015/08/10(月) 21:42:14.98ID:TI2mbg4u
unity触るのやめてc#一通り勉強してこい
0860名前は開発中のものです。2015/08/10(月) 21:42:50.85ID:Vfcir//D
>>856
void Update () {
GameObject dupe = Instantiate(obj,Vector3(0.0f, 0.0f, 0.0f),Quaternion.identity ) as GameObject;
dupe.transform.SetParent (Canvas.transform ,false);
}
インスタンス化したものを子にしたいなら複製元をCanvasの子にしても意味が無いし
目的の挙動ではないはず
Canvasは目的のGameObjectが設定されているか?
0861名前は開発中のものです。2015/08/10(月) 21:44:33.16ID:Vfcir//D
あとあれだ
Update() にこの書き方で設置すると毎フレーム生成される
必要な数以上複製されない仕組みがいる
0862名前は開発中のものです。2015/08/10(月) 22:39:54.26ID:A8ecWOMC
>>854
横槍ですまんが、それは回答者として求めてはいけないものだろう。
回答するって事は、困ってる人を助けてあげたい優しさ持ってるんだから、何が分からないかから接してあげるべき。
そうでなければ、中途半端に答えず荒らさず傍観すべきかな。
0863名前は開発中のものです。2015/08/10(月) 22:46:13.76ID:WlJ3IdsP
>>841
何をどう調べたの?
それを教えてくれればあなたの調べ方の何が不味かったのかアドバイスできると思うよ
0864名前は開発中のものです。2015/08/10(月) 22:57:59.54ID:NcNOCafI
このInstantiateの使い方じゃ、サンプルの真似してボール転がす程度もやってないでしょ
ドットインストールのUnityの項目全部見てからにした方がいいと思うよ
0865名前は開発中のものです。2015/08/10(月) 23:26:41.94ID:7mxq3sqw
>>858
なんとかできました
どうもありがとう
エラーで検索しても見当違いのサイトしか出なかったです

>>864
それくらいやってます
0866名前は開発中のものです。2015/08/10(月) 23:49:17.42ID:euFex8cc
いつの時代も、作る道具は時代と共に良くなって来てるけど、最終的に使う側の問題だなー。
イメージが出来ても、実際のUI、システム構成で良く躓く。
そして、進んでない。
0867名前は開発中のものです。2015/08/11(火) 00:45:20.99ID:KPmARwdy
人口が増えればunityはもっと良くなるはず
人口が減れば終わる
0868名前は開発中のものです。2015/08/11(火) 00:50:12.02ID:VEjGaOYd
>>859
ほんまこれ
ちょっと基礎を飛ばし過ぎ

>>865
「それくらいはやってます」とのことだが、
理解は出来てないのが、はたから見て丸分りなんだよね。

いいからチュートリアルの1行1単語の意味が、他人にもしっかり説明できるようになるまで繰り返しやれ
親子関係程度でつまずいてたら何もできないぞ
0869名前は開発中のものです。2015/08/11(火) 00:59:16.87ID:VEjGaOYd
>>858
これは質問スレで指摘する事じゃないかもしれないけど、

> public GameObject prefab; // objって名前はよろしくないので改名
> public GameObject yourCanvasObject; // Canvasオブジェクトをinspectorで指定しておく

インスペクタ上からアタッチする変数は、ぱっと見て分るようにするべきと、俺は考える
例えばアンダースコアを変数名の先頭に付けて _prefab とか、guiAttachedCanvasとかね
絶対そうした方がいいと思うんだよな
0870名前は開発中のものです。2015/08/11(火) 01:10:31.95ID:n8SRK3/q
>>865
やってみます、だと思ってスルーしてたが、やった上でこれなのか
呆れました
0871名前は開発中のものです。2015/08/11(火) 01:35:46.90ID:vV/MFq+X
>>869
858書いたの俺なので一応
ネーミングルールはプロジェクトで統一するのは当たり前なのだけどそれはそれぞれやり方があるからあんまり質問スレの回答には充てたくなかったんだ。
俺の場合publicなGameObjectはInspectorで設定する物って言うルール使ってる(スクリプトから参照する奴はgetter/setterにするんだわ:そうするとInspectorから見えないってのを利用してアノテーションしないですむので楽)
例のがprefabなのは質問者のprefabが何者なのかわかんねーからなんだわ

あとUnityで使うときにpublic変数多くなる人には"_"付きの奴が外から設定とかって簡単に覚えられて良いかもしれないとは思った。
0872名前は開発中のものです。2015/08/11(火) 02:43:47.13ID:u1ppaVHy
C#スレでも出てるけど定数(const)を全部大文字で書くヤツは死ね
0873名前は開発中のものです。2015/08/11(火) 02:51:36.38ID:Sg1gK6uX
>>872
なぜに?
0874名前は開発中のものです。2015/08/11(火) 02:56:52.60ID:vV/MFq+X
>>872
コーディングルールで定数を全部大文字ってのは割と多数を占めるのであるが
0875名前は開発中のものです。2015/08/11(火) 04:19:27.80ID:u1ppaVHy
>>873
>>874
http://peace.2ch.net/test/read.cgi/tech/1437808445/351-356
http://peace.2ch.net/test/read.cgi/tech/1437808445/398
0876名前は開発中のものです。2015/08/11(火) 05:54:11.55ID:+Qtsm12Y
独自ルールだらけにならざるを得ない環境で細かい記述ルールを守っても意味ない
0877名前は開発中のものです。2015/08/11(火) 09:28:28.40ID:IM/MaimO
>定数を全部大文字
慣習とかC/C++からの移植とかあるからな。
WinAPI呼び出すときの定数とかね
0878名前は開発中のものです。2015/08/11(火) 09:33:43.82ID:vGey4TmF
仕事と趣味をごっちゃにしてる人がいるな。何で嫌なのかを示してから言えばいいものを。無駄に軋轢を産む。戦論したいの?他でやって。
0879名前は開発中のものです。2015/08/11(火) 12:44:54.97ID:VEjGaOYd
>>871
このスレでまともな人を見ると感動すら覚えるわw
アンダースコア付きのpublicは、是非色んな人にやって欲しい

>>872
明確な理由付けがある物に対して、
ぱっと見て正当性が分るだけマシと考えた方が、よっぽど健全だと思うけどな
あんたのその正義は、何のために振りかざしている正義なのかと
0880名前は開発中のものです。2015/08/11(火) 13:19:01.98ID:vV/MFq+X
>>879
MicroSoftのC#銘々ルールだったよ
C#見たいにリフレクションが完全に行える言語なら正しいと思う、なぜならエディタ上でキーワードがどのような識別子なのか判別つくから
UnityでしかC#使わないんで読んでも居なかったから僕はありがたいと思った
慣れるかと言われたらかなりイヤだけど
Erlangの変数名は大文字で始めるっての並に拒否感高いというか
0881名前は開発中のものです。2015/08/11(火) 14:05:38.79ID:Bpp5drd1
はぁ?
0882名前は開発中のものです。2015/08/11(火) 17:06:20.75ID:VNX+5OxD
>>875
定数名の付け方なんて好き好きでいいと思うが
プリプロセッサの話はC#では当てはまらないんじゃないかな
#defineって名前しか定義できないでしょ
0883名前は開発中のものです。2015/08/11(火) 17:18:32.63ID:vGey4TmF
外へ出た時(あればの話ね)自分も周りも苦労するから、大きいくくりでの慣習は周知使用しといてねって事だわな。
0884名前は開発中のものです。2015/08/11(火) 18:51:43.71ID:u1ppaVHy
>>879
何言ってるのかさっぱり分からん
0885名前は開発中のものです。2015/08/11(火) 21:02:00.09ID:Q3+lk5oS
大文字だの小文字だのと小さなこと(大きな文字?)にこだわって激論する姿が面白いな
俺? 俺は外へ出る可能性は万に一つも無いこともあって

変数名も関数名も 日 本 語 です
0886名前は開発中のものです。2015/08/11(火) 21:08:43.32ID:vGey4TmF
>>885
ザパニーズ、すんばらしぃ〜w
0887名前は開発中のものです。2015/08/11(火) 21:13:24.39ID:n8SRK3/q
一度だけ定数名を日本語にしてゲーム作ったことがあるが、自動補完すら面倒だったからやめたな
だが異端プレイが楽しいのは事実
0888名前は開発中のものです。2015/08/11(火) 21:26:02.22ID:Q3+lk5oS
せっかく機能(識別子に2バイト文字を使えるという仕様)があるんだから
使わないと勿体ないよね!

C#使いなら2バイト文字を使ってなんぼですわ
日本人なのにいつまで古くさいASCIIの仕様にしがみついてるのっていうね!
アメリカかぶれの気取ったプログラマは引っ込んでろっつーの、わははは!

……はぁorz
0889名前は開発中のものです。2015/08/11(火) 21:49:42.83ID:p4NyI3d+
BASICの昔から日本語ってのはあったが流行った試しがない
決して見やすくも分り易くもならず日本語入力する手間暇が無駄なだけ
0890名前は開発中のものです。2015/08/11(火) 21:50:49.43ID:vV/MFq+X
>>888
日本語識別子使うならT-codeとかの直漢入力使えないと話にならない気がする
ひらがなと一部の漢字だけ覚えたけどコレになれたら余所で困るという
0891名前は開発中のものです。2015/08/11(火) 23:22:31.35ID:VEjGaOYd
日本語入力は単純にタイピング数が多いから流行るわけないんだよなぁ
煩わしさが半端じゃない
変数・関数の最初10文字は英語とか縛れば、入力補完で使い物にはなるかも知れんが
0892名前は開発中のものです。2015/08/12(水) 00:25:00.88ID:RYecM/MT
ワロタ
0893名前は開発中のものです。2015/08/12(水) 05:22:53.00ID:ijryaY5a
ドッグファイトのようなゲームを作ってます
Terrainを生成して、そこに厚さ0.5unit程度の厚さの道路を敷きました。
いざ再生して、飛行機(高高度)からの視点にすると
道路がチカチカと点滅し、下のTrrainが見えてしまいます。
Terrainは縦横2000 高度600を300にフラットさせてから高低差をつけています。
何か対策はありませんでしょうか。
■ このスレッドは過去ログ倉庫に格納されています