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

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

【ゲームエンジン】Unityなんでも質問スレpart5

1 :名前は開発中のものです。:2021/08/27(金) 19:13:24.68 ID:p8CMd57b.net
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。 プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他

■注意事項
特になし
■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
http://www24.atwiki.jp/unity2ch/
●リンク
・Unity(日本公式サイト)
http://unity3d.com/jp
・マニュアル
 http://docs.unity3d.com/ja/current/Manual/index.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←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。


前スレ

【ゲームエンジン】Unityなんでも質問スレpart4
https://mevius.5ch.net/test/read.cgi/gamedev/1619223275/

37 :名前は開発中のものです。:2021/09/02(木) 04:21:37.07 ID:6ItE3Go+.net
Space押したのに弾出ないと思ったら日本語じゃダメなのか...

38 :名前は開発中のものです。:2021/09/02(木) 08:02:02.11 ID:QRjL/PRZ.net
>>36
増減値が逆なんだろ。

39 :名前は開発中のものです。:2021/09/02(木) 12:11:23.44 ID:8EDFDo/6.net
パッドの十字キーだけ逆らしいぞ

40 :名前は開発中のものです。:2021/09/02(木) 18:04:55.44 ID:De9iV2yN.net
クソゲー作るぞ!

41 :名前は開発中のものです。:2021/09/02(木) 18:37:24.14 ID:fFLzG+vu.net
スクリプトを作る際ってコピペしちゃってもいいんですか?
それとも一回じぶんで全部打ち込んだ方がいいのかな

42 :名前は開発中のものです。:2021/09/02(木) 18:41:17.74 ID:MzTWK1s2.net
ベーマガかよw

43 :名前は開発中のものです。:2021/09/02(木) 18:57:15.45 ID:X8IQsmrz.net
え?書籍とか見ながら自分で打ち込むだろ最初は。
そのうちコピペしかしなくなるけど

44 :名前は開発中のものです。:2021/09/02(木) 21:03:30.04 ID:MzTWK1s2.net
>>43
コピペしちゃっても、からの、自分で打ち込んで、って言ってるからデジタル書籍の扱いをどうするかでしょ。

45 :名前は開発中のものです。:2021/09/03(金) 04:48:56.84 ID:LGIFZOLo.net
>>34

そうだったですか、ただ今回はFloatを渡しているので、あまり関係はないかも知れませんよね。

>>35

アドバイスの方有り難うございます。
ビルトインインシェーダ関数の_WorldSpaceCameraPosを使っても、結果は一緒でした。
C#で渡していたのもカメラのワールド座標だったので、多分同じことをしているのだと思います。

何か解決策はないでしょうか・・・

46 :名前は開発中のものです。:2021/09/03(金) 07:56:06.02 ID:bay2tjkn.net
メッシュ描画したいならdrawmeshじゃダメなん?

47 :名前は開発中のものです。:2021/09/03(金) 14:37:44.36 ID:6loRjXu+.net
シェーダーの書き方が間違ってるのに、コードもなしにどうしてでしょうかって言われてもw

48 :名前は開発中のものです。:2021/09/03(金) 18:31:33.35 ID:LGIFZOLo.net
>>47 描画用シェーダだけだと、今は最もプリミティブなものを作っているのでこんな感じです。

vs_out vert (uint id : SV_VERTEXID)
{

Out.pos = float4(float3(tubeBuffer[id]), 1);


return Out;
}

[maxvertexcount(128)]
void geom (point vs_out input[1], inout TriangleStream<gs_out> outStream)
{
gs_out o;

float4 pos = input[0].pos;

o.pos = pos;
outStream.Append(o);



}

fixed4 frag (gs_out In) : COLOR
{
return _Color;

}

49 :名前は開発中のものです。:2021/09/03(金) 18:34:05.75 ID:LGIFZOLo.net
計算は、コンピュートシェーダーでやっています。
_Origin_x, _Origin_y, _Origin_z
は、予めC#の方で計算しておいた、カメラのワールド座標とベクトルから求めた、カメラから一定の距離にある、カメラ正面の座標です。


[numthreads(64,1,1)]
void tubeAl (uint id : SV_DispatchThreadID)
{
float3 position;
for (int i = 0; i < 16; i++)
{
float radius = 1.0 + (0.5 * i);
for(int j = 0; j < 7 + (6 * i); j++)
{
float a = radius * cos(j * 0.785 * (1 / (i + 1 )));
float b = radius * sin(j * 0.785 * (1 / (i + 1 )));
position.x = a + _Origin_x;
position.y = b + _Origin_y;
position.z = _Origin_z;
}


}
tubeBuffer[id] = position;

}

50 :名前は開発中のものです。:2021/09/03(金) 18:37:08.93 ID:LGIFZOLo.net
法線等考慮していないので、もし形成できたとしてもカメラに向かって円状にはなりませんが、
今はとにかくカメラの移動に伴ってメッシュが生成されていけば

51 :名前は開発中のものです。:2021/09/03(金) 18:38:05.81 ID:LGIFZOLo.net
OK、という段階です。
C#の方は、多分問題なくコンピュートシェーダーの初期化、バッファの宣言、初期化、ディスパッチや描画命令等出来ていると思います。

52 :名前は開発中のものです。:2021/09/03(金) 18:45:02.87 ID:LGIFZOLo.net
あとフラグメントシェーダですが、シェーダのプロパティで

Properties{
_Color ("Color", Color) = (1,1,1,1)
}

を差し当たり直に設定しています。

53 :名前は開発中のものです。:2021/09/03(金) 19:08:19.48 ID:bay2tjkn.net
コンピュートシェーダとか専門的なことはわからんけどメッシュの描画はdrawmeshでやって
シェーダーの処理はマテリアルで渡してあげたらダメなの?

そっちの方がカメラの位置とかやりやすいんじゃね
しらんけど

54 :名前は開発中のものです。:2021/09/03(金) 19:15:20.16 ID:LGIFZOLo.net
>>53

そうですね、GPUベースでやってみたかったですし、できるはずだと思いますが、
大量のパーティクルと違ってそこまで処理も重くないでしょうから、C#の方でメッシュ形成した方が、結局は早いかも知れませんね。

55 :名前は開発中のものです。:2021/09/03(金) 19:47:31.54 ID:Sst/B9Re.net
Unityを日々勉強していて、何故、学生時代にいろんな小説や歴史を読んだり
数学や物理学をもっとしっかり学ばなかったんだろうと涙が溢れ出た
後悔先に立たず

56 :名前は開発中のものです。:2021/09/03(金) 21:28:51.62 ID:bay2tjkn.net
>>54
多分知ってると思うけど、DrawMeshInstancedだとバッチング減らせるらしいよ

57 :名前は開発中のものです。:2021/09/03(金) 22:49:56.20 ID:6loRjXu+.net
float3 worldPos = UnityObjectToClipPos(float4(v.vertex.xyz, 1) + float4( ( _WorldSpaceCameraPos.xy) , 0 , 0) ).xyz;
o.vertex = float4(worldPos, 1) ;

コンピュート抜きに常にカメラど真ん中に表示されるオブジェクトをシェーダーで描くならこれでできたけど
シェーダー入れてるオブジェクトのワールドZが999じゃないといけなかったり、カメラ回転すると外れたりする。
もっと複雑な計算が必要な印象。ググっても出てこないのでわからない。
カメラにオブジェクトを親子付して、カメラが動くとシェーダーを更新するスクリプト書いた方が早そう

58 :名前は開発中のものです。:2021/09/04(土) 08:12:11.34 ID:mpxWyr/l.net
>>56

そんなんですか、情報ありがとうございます!

>>57

わざわざ実装まで試みて頂いてありがとうございます。
ビルトインシェーダ関数をそのように使った場合、カメラの座標が、例えば正面に進んだとして、
新しく形成されていますか?

もし良かったら、ジオメトリシェーダ部分を参考にさせて頂けませんか?


あとはビルトインシェーダ関数でなく、カメラにアタッチしたスクリプトから取ってきた座標は、カメラの現在座標と向いている方向とを計算した結果なので、
回転の問題は軽減されそうな気がします。

59 :名前は開発中のものです。:2021/09/04(土) 08:17:56.83 ID:mpxWyr/l.net
貼っていただいた実装も試みたのですが、最初の1フレームに描写されるだけで、
カメラの座標を変えても、新しくメッシュが形成されないのです。

60 :名前は開発中のものです。:2021/09/04(土) 08:34:02.52 ID:mpxWyr/l.net
[maxvertexcount(128)]
void geom (point v2g input[1], inout TriangleStream<g2f> outStream)
{
    g2f o;
UNITY_INITIALIZE_OUTPUT(g2f, o);

float4 pos = input[0].vertex;




for (int i = 0; i < 16; i++)
{
float radius = 1.0 + (0.5 * i);
for(int j = 0; j < 6 + (6 * i); j++)
{
float a = radius * cos(j * 0.785 * (1 / (i + 1 )));
float b = radius * sin(j * 0.785 * (1 / (i + 1 )));
pos.x = a + pos.x ;
pos.y = b + pos.y;
pos.z = SimplexNoise(pos.z);
o.pos = UnityObjectToClipPos(pos);
//o[i].col = input[0].colWorld;
outStream.Append(o);

}
}
}

今だとこんな感じです。
特にRestartStripしていません。

61 :名前は開発中のものです。:2021/09/04(土) 13:00:35.84 ID:uilkUsx1.net
いきなり失礼します
超初心者なのですが

if (Input.GetMouseButton(0))
{
○○○○
}

だとマウスのボタンを押してるときに○○○○を実行すると思うのですが、ボタンを押してないときに○○○○を実行したときはどういう風に書いたらいいでしょうか…?

62 :名前は開発中のものです。:2021/09/04(土) 13:16:31.62 ID:4s/Kvr8z.net
InputGetButtonUpか
毎フレーム行われていいならelseでよいのでは

63 :名前は開発中のものです。:2021/09/04(土) 13:22:23.54 ID:uilkUsx1.net
>>62

ありがとうございます
やってみます

64 :名前は開発中のものです。:2021/09/04(土) 14:15:39.51 ID:KuP8pcA2.net
>>60
UnityObjectToClipPosはv2g vert(appdata v)?内に書かないといけない

65 :名前は開発中のものです。:2021/09/04(土) 17:50:05.06 ID:9nO9+S2f.net
ゲームマネージャーの仕組みがわからないよぉ

66 :名前は開発中のものです。:2021/09/05(日) 03:41:25.98 ID:UhGmA0IN.net
>>64

ありがとうございます。
頂点シェーダの方に書きましたが、結果的には望んだ結果が出せませんでした。
しばらく寝かせておきます。

アドバイスくださった方々ありがとうございました。

67 :名前は開発中のものです。:2021/09/05(日) 09:41:33.52 ID:RWBX860i.net
質問します
今Androidアプリを作ってていよいよストアに申請しようという段になりました
ここで必要になるのがアプリのアイコン画像やフィーチャー画像ということになります
これらの画像を作る時ゲーム中のスクリーンショットを使いたいのですが
unityのアセットってスクリーンショット化をしてストアで使っていいものなのでしょうか?

68 :名前は開発中のものです。:2021/09/05(日) 14:26:13.10 ID:RWBX860i.net
質問です
今Androidアプリのビルドをしててapi level30にしてビルドするのに手間取っています
本アプリでAndroid SDKのアップデートがうまく行かないので空のプロジェクトで
実験することにしました
空のプロジェクトでビルドをAndroidに変えてターゲットAPIを30にしてビルドしました
そうしたら「sdkをアップデートしますか?」というダイアログが出てきて
okを押したところ次のようなエラーで終了してしまいました
https://i.imgur.com/UgYyWP3.png
Android sdkを30にアップデートする簡単な方法はないでしょうか?
Android studioを今はインストールしていません

69 :名前は開発中のものです。:2021/09/05(日) 15:24:31.35 ID:RWBX860i.net
>>68
これは自己解決しました
結局Android studioをインストールしました
横着したらダメですね

70 :名前は開発中のものです。:2021/09/05(日) 15:30:01.99 ID:ryvtC8Yy.net
質問です
GameObject A = 「○○の範囲にあるオブジェクト」
としたいとき、「」の中はどういう風に表現したらよいでしょうか?

71 :名前は開発中のものです。:2021/09/05(日) 15:47:00.77 ID:RWBX860i.net
>>70
https://docs.unity3d.com/jp/current/ScriptReference/Physics.OverlapBox.html
戻り値違うけど

72 :名前は開発中のものです。:2021/09/05(日) 17:07:53.16 ID:BHbWJBb7.net
VROID→Blender(cats処理後改造してfbx)→Unity(vrm化済み)に持ち込んだヒューマイノイドタイプのオブジェクトの質問です
シーンには上記のヒューマノイドと地面のplaneオブジェクトだけです
ヒューマノイドの足を短くすると宙に浮きます
そこでヒューマノイドのポジションのY軸を調整して接地させてみましたが、シーンビューでは接地しててもゲームプレイ画面では浮いてしまいます。
試しにplaneのポジションを上げて接地させてみましたが、やはりゲームプレイ画面では浮きます。
どうすれば接地させることができるのでしょうか?

ググってみると導入モデルのInspectorのConfigureからHipsボーン(ルートボーン)のポジションを変える解決法が乗っていますが
なぜか当方のプロジェクトでは導入したモデルvrmが喪失しておりいじることができません

いままで行った処理は
・fbxのヒューマノイド設定やマテリアル・シェーダー指定でvrm出力後、vrm読み込みしシェイプシフター設定
・ダイナミックボーンによる髪の毛やスカート揺れ設定
・メッシュスプリッターでメッシュをマテリアルごとに
・マジカメッシュクロスで2重スカートのクロス設定
・足を含むAmatureのサイズ変更

以上となります

73 :名前は開発中のものです。:2021/09/05(日) 18:46:21.26 ID:AW+7mbmL.net
同じシーンテンプレートから作成したシーンの一つに変更を加えると、その他のシーンにも反映されてしまうのですが、これは仕様でしょうか?
他のシーンには反映されないようにする方法も教えて頂けると嬉しいです。

74 :名前は開発中のものです。:2021/09/05(日) 19:21:02.97 ID:CbOnRBVt.net
オープンワールドゲームみたいな広大なマップを作るとき
ヒエラルキーがものすごい数になって分かりにくくなるんですが
これは頑張って管理しないといけないんでしょうか

75 :名前は開発中のものです。:2021/09/05(日) 19:45:36.34 ID:rNGz2Hxf.net
>>74
地形はTerrain以下に子オブジェクトとして紐づければ
それで町とか
カメラ
プレイヤーとかで区切ってべつべつにかんりすればすっきり

76 :名前は開発中のものです。:2021/09/05(日) 20:12:23.35 ID:mOtP5aKb.net
>>68
コンソールからAPIー30取って来て使ってるUnityバージョンのAndroidengineフォルダのプラットフォームフォルダに置けば通せるよ

77 :名前は開発中のものです。:2021/09/05(日) 20:54:58.88 ID:RWBX860i.net
>>76
ありがとうございます
Android studioでインストールしました

78 :名前は開発中のものです。:2021/09/06(月) 01:16:26.89 ID:xpf1Rk4L.net
>>75
ありがとう
なるほど子オブジェクトにして管理ですか

79 :名前は開発中のものです。:2021/09/06(月) 11:29:48.52 ID:o0Omy+ef.net
>>74
広大なマップ全部初めからインスタンスなのか?
スゲーメモリ食いそう

80 :名前は開発中のものです。:2021/09/06(月) 14:11:27.63 ID:Lkt7e4IY.net
ある程度の位置に来たらシーン合成とかで管理すれば

81 :名前は開発中のものです。:2021/09/06(月) 18:13:35.33 ID:tj7E+ylM.net
ひどく初歩的な質問で申し訳ありません
タイムラインでヒューマノイドオブジェクトをMixamoでダウンロードしたwalkやrunのfbxを使って移動させるアニメーションを組みたいのですが、
ヒューマノイドオブジェクトがその場で足踏みして移動しません。
どうすれば移動させられますか?

82 :名前は開発中のものです。:2021/09/06(月) 19:07:16.20 ID:xpf1Rk4L.net
>>79
最初から全部配置しといても
Unity様が良きに計らってくれる…
みたいなことしてくれないかな

83 :名前は開発中のものです。:2021/09/06(月) 19:11:44.81 ID:MV+9GB6N.net
>>81
その説明では何とも。
記述できないなら、せめて動画でアップして。何かわかるかも。

84 :名前は開発中のものです。:2021/09/06(月) 22:00:30.40 ID:I2NTygQ0.net
>>81
まずUnityのアニメーターのApply Root Motionを理解してからの方がいいかも

85 :名前は開発中のものです。:2021/09/07(火) 04:23:23.50 ID:p7zX6a/Y.net
インスペクターにOnClickイベントが表示されないのですが解決法わかりますか?

86 :名前は開発中のものです。:2021/09/07(火) 04:34:25.32 ID:dhAJ3i3B.net
すみません解決しました

87 :名前は開発中のものです。:2021/09/07(火) 11:43:03.68 ID:lngHOnsy.net
>>30
絵やらデザイン系は右脳で
プログラミングはゴリゴリの左脳・計算脳だからな

88 :名前は開発中のものです。:2021/09/08(水) 05:13:48.17 ID:HhX017v4.net
>>33
もう質問主も寝かせてる話なのかとは思うけど、これメッシュ生成し続けるって上限とかないの?
あってジオメトリシェーダー使うならテクスチャバッファにリングバッファ的にポジションCPUでかいてそれを元にジオメトリシェーダーでモニョモニョすればと思うました

89 :名前は開発中のものです。:2021/09/08(水) 19:49:20.75 ID:svnqeWoz.net
ブログとかでUnityの解説してて分かりやすくて
その人が出してるアプリを見に行くと
DL数も少なくてとてもヒットしそうになくて
ちょっとびっくりということが結構あるな
ああいう人は受託で稼げてるから
アプリは自分の趣味に特化してるとかかな

90 :名前は開発中のものです。:2021/09/08(水) 20:32:19.47 ID:E9pnqJxx.net
仕事と趣味でしているのって違うよね

俺はちっともゲームは作れないけど一部分に関してはいろいろ頑張って理解できたので解説サイト作ってみたいと考えてしまう
もし俺がバリバリに現役売れっ子ゲームクリエイターなら解説なんて他方でやってられないとか手間のかかることうんざりだよ

たとえば仕事で通訳している現役バリバリ英語できるひとが只でゲーム開発を和訳してくれるわけがなく
英語わかんないやつが必死こいて翻訳してたりSNSで他人に教えてあげたりしている

そんな感じだよ
という俺の持論

91 :名前は開発中のものです。:2021/09/09(木) 07:33:02.20 ID:3HZ1vFNV.net
プログラミング技術と面白いゲームを作る技術は全く別物じゃん。

ピアノ習ったら全員作曲家になれるの?って話。

92 :名前は開発中のものです。:2021/09/09(木) 08:40:16.07 ID:MK0Q4A21.net
>>91
正論やな

93 :名前は開発中のものです。:2021/09/09(木) 13:15:36.11 ID:AdVsFyJh.net
気が強くてプログラミングでマウントしてくる職場の人が
個人で出してるゲームをプレイストアでダウンロードしたけど
微妙だった

94 :名前は開発中のものです。:2021/09/09(木) 13:29:43.60 ID:cgru5Bh9.net
ゲームの面白さはプランナーの仕事だからな、プログラミングが凄くても面白さには比例しないし
ある程度ストレスなくプレイできるなって思われるだけで

95 :名前は開発中のものです。:2021/09/09(木) 13:33:03.93 ID:ZgyA5AvK.net
そりゃそうだろ
プログラマーなんて建設現場の土方といっしょ
決して建築家にはなれない

96 :名前は開発中のものです。:2021/09/09(木) 13:55:42.26 ID:ljl/wd4k.net
最低でもプログラマーの常識、可能なら一端のプログラマーでないとシステムエンジニアにはなれんぞ
下を理解してないやつが上に立つことなどできない
将来エンジニアになりたいならプログラマーになることは俺は必要だし無駄ではないと思う

97 :名前は開発中のものです。:2021/09/09(木) 18:23:12.94 ID:3HZ1vFNV.net
無駄かどうかって話じゃなくね

98 :名前は開発中のものです。:2021/09/09(木) 18:37:04.68 ID:xAN09TPv.net
プログラマーが建築家(エンジニア、デザイナー)になれないって言うからんなわけねーだろって言ってるだけだろ

99 :名前は開発中のものです。:2021/09/09(木) 18:37:08.72 ID:JOhyguQB.net
結局個人制作なら本人のセンスによるんだよな
職業がどうとかは関係ない
自称元ゲームプランナーの無職が作ったゲームが面白いとは限らないし

100 :名前は開発中のものです。:2021/09/09(木) 18:52:10.18 ID:YtpvGyxn.net
>95は定義がいろいろ謎だな
プログラマをカースト最下級だと揶揄するのは分からなくはないが
肉体労働者はホワイトカラーになれない的なニュアンスなら
プログラマに関しては的外れじゃないかな?

どっかから連れてきた天下りの門外漢が管理職になっても
何もできない木偶にしかならんだろ

101 :名前は開発中のものです。:2021/09/09(木) 20:14:39.82 ID:RaqSITdl.net
スクリプトA
public static class A
{
 public struct B
 {
  public float c;
 }
}

スクリプトD
public class D
{
 void UpDate()
 {
  float e = A.B.c;
 }
}

スクリプトDのeにスクリプトAのcを代入したいのですが、代入する行でcs0120のエラーが出てしまいます。
どうすれば代入出来ますか?
スクリプトAはGitHubから導入したスクリプトなので変えられません。

102 :名前は開発中のものです。:2021/09/09(木) 20:43:35.24 ID:jpCh8LST.net
public static float c;
staticクラスの変数はstaticで宣言するとOK

103 :名前は開発中のものです。:2021/09/09(木) 20:50:13.07 ID:3HZ1vFNV.net
スクリプトAは変更できないって前提では?

104 :名前は開発中のものです。:2021/09/09(木) 20:51:03.37 ID:jpCh8LST.net
変えればOK

105 :名前は開発中のものです。:2021/09/09(木) 20:51:38.82 ID:3HZ1vFNV.net
変えれないって前提では?

106 :名前は開発中のものです。:2021/09/09(木) 20:53:36.16 ID:xAN09TPv.net
コントか?

107 :名前は開発中のものです。:2021/09/09(木) 21:00:18.91 ID:jpCh8LST.net
変えられないほど底辺ならインスタンス化すればOK

108 :名前は開発中のものです。:2021/09/09(木) 21:12:06.73 ID:7NvRTw1V.net
インスタンスの無い変数の値を受け取れるわけ無い
宣言しているだけで存在しない変数なんだから

109 :名前は開発中のものです。:2021/09/09(木) 21:12:07.61 ID:RaqSITdl.net
>>102
staticクラスの変数もstaticで宣言するのですね、ありがとうございます。
取り敢えず変えてみたらエラーは消えました。
また壁にぶち当たったら来ます。

110 :名前は開発中のものです。:2021/09/09(木) 21:17:06.41 ID:7NvRTw1V.net
変えられないとなると難しい
俺にはわからん
よく見るとAはスタティックなのか
でもBはインスタンスどうなっているんだ

111 :名前は開発中のものです。:2021/09/09(木) 23:14:57.48 ID:DkN/DjRB.net
ユー、変えちゃいなよ!

112 :名前は開発中のものです。:2021/09/09(木) 23:46:24.62 ID:eBBeKhK/.net
わざわざクラスや変数staticにせんでも
static関数作って値返せばいんじゃね

113 :名前は開発中のものです。:2021/09/09(木) 23:47:05.46 ID:eBBeKhK/.net
あ、いや変数もstaticだ

114 :名前は開発中のものです。:2021/09/10(金) 07:54:37.91 ID:tB+Td/Tq.net
>>109
>取り敢えず変えてみたらエラーは消えました。

変えれない前提を自ら無視するとはひどいw

115 :名前は開発中のものです。:2021/09/10(金) 07:57:45.45 ID:4dX6AStO.net
まあスクリプトだろうとなんだろうと変えられないはずはないからね……

116 :名前は開発中のものです。:2021/09/10(金) 07:58:46.78 ID:AZowF18M.net
そもそもUnity関係ないところもコント感ある

117 :名前は開発中のものです。:2021/09/10(金) 09:40:34.69 ID:MoID+ieY.net
インスタンスにしないのとアクティブにしないのとでは
どういう違いがあるんですか

118 :名前は開発中のものです。:2021/09/10(金) 10:18:15.97 ID:Vrqrsvlj.net
実体化しないのと有効にしないのとでは
どういう相違点があるのか?→相違点しかないのでは?

119 :名前は開発中のものです。:2021/09/10(金) 12:05:58.85 ID:cEznrE1I.net
>>117
インスタンスがなかったら存在しないからパラメタ設定しておいたり別のオブジェクトから参照して操作などできないじゃん
それともそういう意味ではなくて?

120 :名前は開発中のものです。:2021/09/10(金) 12:09:18.95 ID:cEznrE1I.net
>>119
別にやり方を強制している訳じゃないよ

121 :名前は開発中のものです。:2021/09/10(金) 12:27:14.67 ID:OdLnlLsa.net
Unityの習得度(プログラマー向け)をレベル分けしてみたけどこんな感じかな(だいぶザックリしてるけど)

入門レベル
・本とかネット見ながらUnityの基本操作ができる
・球転がしとか作れる

初級者
・簡単なゲーム(2Dシューティングとか)なら一人で作れる

中級者
・大体の思い描いたゲームが作れる
・この辺りからEditor拡張にハマり始める

上級者
・Editor拡張等を用いて大体の思い描いた開発支援ツールを作れる
・Unityのこと質問したら大体答えが返ってくる。歩くリファレンスと化している

賢人
・Storeに売り出した自作アセットが多くの人に利用されている
・Unityに関する書籍を出版している


・Unityの中の人で、エンジンの開発に携わっている
・自作アセットがUnityの標準機能として搭載された

122 :名前は開発中のものです。:2021/09/10(金) 15:57:29.41 ID:Gfu2twQX.net
リア中
・unityなんて、何それうまいの?
・結婚して子育て、年収800万以上

123 :名前は開発中のものです。:2021/09/10(金) 16:49:05.50 ID:ikshz76a.net
>>119
いえそういうことです
インスタンスしてあってアクティブになってない

124 :123:2021/09/10(金) 19:50:40.01 ID:ikshz76a.net
なんかミス

ありがとうございます
インスタンスしてあるとアクティブになってなくても
メモリは消費してるってことですね

125 :名前は開発中のものです。:2021/09/10(金) 22:11:01.23 ID:UOSQuWkZ.net
失礼します。c#とウニティ初学者です。
皆様はコンテナクラスのコピーはどうやって実装されてますか?
コピー代入だとシャロコピーにしかならないんですよね?

私は敵クラスを格納するコンテナを作り、そこで一括に敵を管理しております。
そこで、とあるリストenem_1から別なとあるリストally_1に敵をまるっと移したい。
そういった場合にディープコピーで実装したい次第であります。
敵はInstantiate関数で実体化させたMonobehavior継承プレハブクローンで、enem_1は再利用する予定です。
なのでenem_1をDestroyするかList.clear()したいのですが、その場合はディープコピーの方が良いですよね?
トンチンカンなことを聞いているかもしれませんがよろしくお願いします。

126 :名前は開発中のものです。:2021/09/10(金) 22:15:39.78 ID:dhskHfd/.net
Unable to check errors listed in `Temp/ApiUpdater_CheckMovedFromd7eab44652aabb2458fea1d7810a4b6a`. File contents:
2697508544448
こんなかんじのエラーが出てきてしまったのですがこれはどういう意味なのでしょうか?

127 :名前は開発中のものです。:2021/09/10(金) 22:42:06.68 ID:gyv6yBUw.net
>>125
ディープコピーしたら敵が二倍に増えないか?
質問をよく読んでないので検討外れな回答かもしれないけど

128 :名前は開発中のものです。:2021/09/10(金) 22:52:13.56 ID:gyv6yBUw.net
>>125
内容と使い方によるんじゃない
ちゃんと把握して管理できてれば

129 :名前は開発中のものです。:2021/09/10(金) 22:59:58.72 ID:3ogDeoii.net
ポインタ渡しただけだと実体の値が変わってしまうって事なんだろうけど
ScriptableObjectでいいような

130 :名前は開発中のものです。:2021/09/10(金) 23:37:31.22 ID:UOSQuWkZ.net
>>129
これは初めて知った機能でした。
ありがとうございます。
しかし私が実装したい機能はポケモンの個体値を個別に設定するタイプなので、敵AIを記述するのには使えるかもしれませんが、各実態ごと移すのには向かないのではないだろうか……

皆さんディープコピーはしない感じなんでしょうか?
参照コンテナを保存する場合はどうやって範囲外の生存を担保しますか?
デストロイ使わない感じ?
書き出したいコンポーネントをリストからforeachで書き出して、実体化するときに再アタッチするのかな……?

131 :名前は開発中のものです。:2021/09/10(金) 23:47:55.59 ID:0hasLUzi.net
おそらくあなたがしたいことは、
各モンスター個体の能力値を個別に管理したいんだと思うけど、そうかな?
そしてそれを管理してるのが>>125の「敵クラスを格納するコンテナ」ってやつ?
そうなると、そのコンテナはクラスを格納してるんじゃなくて、
敵インスタンスの参照を保持してると思われます

C#の仕様ですと、数値のような一部のプリミティブな変数を除き、
通常のコピーではインスタンスへの参照がコピーされます
そして自動でガベージコレクションが走り、
参照が生きていればインスタンスも生き続け、参照を失うとインスタンスは解放されます

つまり、「敵クラスを格納するコンテナ」に参照を保存しおけば、
個別キャラとしてのデータ、つまりインスタンスは生存し続けます
C#の仕様です

補足情報としては、ガベージコレクションが走るタイミングは任意なので、
参照を失った瞬間に解放されるわけではない…はずです

132 :名前は開発中のものです。:2021/09/11(土) 00:09:35.53 ID:rXFpArPO.net
デフォルト値は持ちたいが個別にHPやLvの値は一次的に保持したい(シーン単位で)
という用途にはScriptableObjectは合致するよ(永続的な保存は出来ない)

コンテナはしらんけどC#のDB系は何か使いづらいんで
SQLiteに丸投げしてる

133 :名前は開発中のものです。:2021/09/11(土) 00:22:29.84 ID:X3KGMt+u.net
>>131
ありがとうございます!
私のつたない説明でここまでクリティカルな返答されるとか、えすぱーか何か?

ガベージコレクションが実体の照会をし続けて、リファレンスが一個も無くなった場合以降に実体がdeleteされるのですね?!
それならば、任意のコンテナに参照を保持し続けていれば、実体が消去されることがないのでシャロコピーを使い回すことで十分ですね!
私の想定する使用法なら、コピーしたあとでforeachデストロイではなく、コンテナ.クリア()で移動元の配列を空にすればいいと思います。

私はc丼の初歩的な仕様もよくわかっておりませんでした。しかしこの件についてはあなたの説明で得心しました!
ありがとうございます。多謝!

134 :名前は開発中のものです。:2021/09/11(土) 00:26:07.16 ID:X3KGMt+u.net
>>132
ありがとうございます。
HPMP等を保持したモンスター基底クラスに、変数としてスクリプタブルオブジェクト継承の型を保持させる感じ難でぢょうか?
明日よくよく調べてみます。

135 :名前は開発中のものです。:2021/09/11(土) 00:33:51.46 ID:hbwTrxpG.net
>>133
>ガベージコレクションが実体の照会をし続けて、リファレンスが一個も無くなった場合以降に実体がdeleteされるのですね?!

Exactly.(その通りでございます)

136 :名前は開発中のものです。:2021/09/11(土) 02:54:06.39 ID:xbxLf30q.net
モンスターのステータスとかそういうのは
大概ScriptableObjectかJson使うのが推奨されてる気がする

あとチームで使うときはExcelから取ってきたり

137 :名前は開発中のものです。:2021/09/11(土) 14:43:07.82 ID:SvQjMlIv.net
エクセルからCSVにして読み込ませてって感じが同人ゲームとかでよくある形だな
大手のゲームとかはクラウドサーバーとかに置いて変更しやすいようにしてるな

総レス数 1001
265 KB
新着レスの表示

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