【ゲームエンジン】Unityなんでも質問スレpart12at GAMEDEV
【ゲームエンジン】Unityなんでも質問スレpart12 - 暇つぶし2ch2:名前は開発中のものです。
23/11/06 23:38:20.51 G3Yv2//F.net
質問いいですか?
モーションを含むFBXファイルを更新してもFBX内のモーション一覧が変わりません。
一度ファイルごと削除するか、内部の一覧を空にすると更新が反映されるようです。
モーションの追加毎にループ設定とか全部やり直すので気が狂いそうですが
mいんnあは気が狂わな狂う宇くいあl?

3:名前は開発中のものです。
23/11/07 08:20:51.13 FYDqHFYY.net
初学者です。
既知のバグかわからんけど、調べても同様の症状の人がほとんどいなかったので

1.新規のアセットパッケージをインストールするとメニューから消えてしまう。
特に複数入れた場合、どれかがメニューから消えてしまって作業ができなくなる。
インストール自体はできてる。削除→再インストールも効果なし。なぜか新規プロジェクトで1からつくると消えてたアセットがメニューに出るようになることもある。
下段のアセット一覧があるところからだと適用ができないからお手上げ状態。ryzen入れてるから相性なんかなと思ったけど同様の書き込みないから困ってる。アセットのインストールパッケージを置く場所は特に関係ないはずだし。
特にエラー表記はなかったと思う。多いのはFACS UtilitiesのあとにVRSDKを入れるとFACSがメニューから消えて再インストールも効果がなくなってしまう現象。
2.unity2019でAsset load bundleからFacs utilitiesを使おうとしたが、bundle sourceに対してloadしても反応がない。
でも2022のバージョンでは反応して1つのプロジェクト内でクローンを生成できる。
VRC用に2019バージョンで使用したいけど設定方法分かる人いたら教えてほしい

4:名前は開発中のものです。
23/11/07 08:21:01.11 FYDqHFYY.net
初学者です。
既知のバグかわからんけど、調べても同様の症状の人がほとんどいなかったので

1.新規のアセットパッケージをインストールするとメニューから消えてしまう。
特に複数入れた場合、どれかがメニューから消えてしまって作業ができなくなる。
インストール自体はできてる。削除→再インストールも効果なし。なぜか新規プロジェクトで1からつくると消えてたアセットがメニューに出るようになることもある。
下段のアセット一覧があるところからだと適用ができないからお手上げ状態。ryzen入れてるから相性なんかなと思ったけど同様の書き込みないから困ってる。アセットのインストールパッケージを置く場所は特に関係ないはずだし。
特にエラー表記はなかったと思う。多いのはFACS UtilitiesのあとにVRSDKを入れるとFACSがメニューから消えて再インストールも効果がなくなってしまう現象。
2.unity2019でAsset load bundleからFacs utilitiesを使おうとしたが、bundle sourceに対してloadしても反応がない。
でも2022のバージョンでは反応して1つのプロジェクト内でクローンを生成できる。
VRC用に2019バージョンで使用したいけど設定方法分かる人いたら教えてほしい

5:名前は開発中のものです。
23/11/08 09:57:04.92 IC2/2hRL.net
Odinに関する質問です。
Dictionary<string,List<Sprite>>でDictionaryを作っているのですが、
中に入っているListの画像プレビューをインスペクタ上に表示する方法はありますか?
List単体ならプレビューできるのですが、Dictionaryにそのまま[PreviewField]を付けても駄目なようで…
OnInspectorにforeachを仕込んでGUILayoutで書くのでは、というところまでは思いついたのですが
Odinにおけるプレビュー画像の記述方法がわかりませんでした。
よろしくお願いします。

6:名前は開発中のものです。
23/11/08 12:38:00.42 IC2/2hRL.net
>>5
書いてあるとおりの力技でひとまず自己解決しました。
foreachでループさせてlabelにスプライトを読み込むことでプレビュー表示の領域を丸ごと作ったのですが、
もっといい方法ないものかな……
Odinでもっと簡単にできる方法があれば教えてください。

7:名前は開発中のものです。
23/11/10 00:06:25.09 J4IbgWZq.net
ダメージエフェクトってどうするのがセオリーなんですか?
必要のたびにInstantiateして数秒後にDestoryすればとりあえず実現はできるんだけど
Instantiateは重いとかなんとか聞くので、大量のユニットが出てくるゲームでもっとスマートな方法ないですか?
各オブジェクトに専属エフェクトを用意しておいて、必要時にアクティブに切り替えるとかそういう細かいやり方一般的ですかね?

8:名前は開発中のものです。
23/11/10 00:13:16.53 H/ePV2Lk.net
ひろはすがUnity裏切ってUEに鞍替えしたんだよ!お前らどうすんだよ!?m9⎛´・ω・`⎞ドーン!

9:名前は開発中のものです。
23/11/10 01:11:35.01 iOZ24Hld.net
しばらくGODOTに浮気してたけどやっぱりUNITYが好き

10:名前は開発中のものです。
23/11/10 01:27:12.68 OU03FPZr.net
>>7
オブジェクトプールで検索

11:名前は開発中のものです。
23/11/10 10:49:50.28 LBaA7bE1.net
>>9
結局なんのかんのいって痒いとこに手がとどくようになってるからなUnityは
Godotとかやってみて「おっこれはいけるかも??」て思ってもいざ本気でやりだすと
細かいところで不具合があったりどうしょうもない仕様があったりで本気で使うには不安が残るパターンが多い

12:名前は開発中のものです。
23/11/10 13:18:16.57 +3+klMnF.net
>>7
まずはそれでいいと思います。 重くなってきてから変えられるような作りをしておけば万全。
そのような作りをしてますが、今のところ切替方式が必要になったことはありませんでした。
100オブジェとか余裕かと。
昔や非力なAndroidがターゲットなら最初から切替の方が良いかと思います。

13:名前は開発中のものです。
23/11/10 13:21:23.30 Trn7O450.net
UNITYでキー入力ってどこに実装するのがベターですか?
キャラに直でコードなすりつけるのが普通なんですか?
カラのオブジェクトを作成してそこにキー入力コード用意して
そこからキャラクターに命令するのが普通なんですか?
UEでは分けてたと思うんですが

14:名前は開発中のものです。
23/11/10 13:21:25.79 Trn7O450.net
UNITYでキー入力ってどこに実装するのがベターですか?
キャラに直でコードなすりつけるのが普通なんですか?
カラのオブジェクトを作成してそこにキー入力コード用意して
そこからキャラクターに命令するのが普通なんですか?
UEでは分けてたと思うんですが

15:名前は開発中のものです。
23/11/10 13:25:09.23 vBS1KEXH.net
>>8
このハゲ!

16:名前は開発中のものです。
23/11/10 13:41:55.19 IFn4/mqu.net
>>13
後者だね
複数のオブジェクトから同時にInputを呼ぶとプラットフォームによっては激烈に重くなる

17:名前は開発中のものです。
23/11/10 13:42:23.48 EHV5CH90.net
男でスカート履くのは普通なんですか?
女でジーンズ履くのは普通なんですか?
ラーメンをフォークで食べるのは普通なんですか?
寿司に醤油掛けるのは普通なんですか?
フツウって何?

18:名前は開発中のものです。
23/11/10 13:50:04.69 Trn7O450.net
>>16
やっぱそれか。返答ありがとうございます!

19:名前は開発中のものです。
23/11/10 17:48:02.09 dssjpw/U.net
今日も元気だ暴飲暴食!サンボで豪遊してきた!
焼き牛丼!牛皿!ビール500㍑!これでたったの1180円!m9⎛´・ω・`⎞ドーン!
URLリンク(i.imgur.com)

20:名前は開発中のものです。
23/11/10 19:50:11.90 vBS1KEXH.net
>>19
このハゲ!

21:名前は開発中のものです。
23/11/10 20:10:55.03 dssjpw/U.net
  彡 ⌒ ミ   
 ( ´・ω・`)  禿げてね-よ!
  /⌒ヽ_.ィ、  しゃぶれよ!
 ( r.     )
  ヽノノー二二つ <ドーン! >>20
   |__/_/
   └一'一

22:名前は開発中のものです。
23/11/10 20:16:02.41 0Pn1la5N.net
500ℓは酒豪にも程があるな

23:名前は開発中のものです。
23/11/10 20:17:05.01 dssjpw/U.net
>>22
一桁間違えた!m9⎛´・ω・`⎞ドーン!

24:名前は開発中のものです。
23/11/10 20:55:18.30 EHV5CH90.net
86 名前は開発中のものです。 sage 2023/09/07(木) 10:29:43.16 ID:84ac0SK7
そんなんwikiに載ってるだろ?ワイの総資産US$15億(2007年)だってよ!ワイすげー!m9⎛´・ω・`⎞ドーン!

これサークルだったんだぁ凄いなぁワラワラワラ
別に製品そのままじゃのーてリギングだけりゃいのに
えっ?それできないの?
まさかねぇ(笑)

25:名前は開発中のものです。
23/11/10 21:54:28.00 EHV5CH90.net
141 ドーンおじ sage 2023/10/08(日) 09:20:11.70 ID:FDh2RFJV
あーうぜぇ!製品レベルのもん見せたらサークルがバレんだろ!
このエロゲの作者は5chで初心者虐めてる嫌な奴って噂になったら売れなくなるだろ!m9?´・ω・`?ドーン!

26:ドーンおじ
23/11/11 04:26:30.59 zyErZvzz.net
>>25
お前は低クオリティのコテハンつけろよ!m9⎛´・ω・`⎞ドーン!

27:名前は開発中のものです。
23/11/11 04:33:08.60 p1u7OEyM.net
>>26
このハゲ!

28:ドーンおじ
23/11/11 04:53:55.22 zyErZvzz.net
>>27
Sikiは同じレスは3度目から見えなくなるんだよ!もう少し工夫してくれよ!m9⎛´・ω・`⎞ドーン!

29:名前は開発中のものです。
23/11/11 06:50:22.62 p1u7OEyM.net
>>28
ハゲ!

30:ドーンおじ
23/11/12 01:40:46.43 DdQ8rzW3.net
>>29
お前が涌いてくるとスレが止まるんだけど?
みんなキチガイが居るスレなんて避けるんだよ!お前は消えろ!m9⎛´・ω・`⎞ドーン!

31:名前は開発中のものです。
23/11/12 02:14:35.63 9399exlr.net
>>30
ツルぴか

32:名前は開発中のものです。
23/11/12 06:46:53.47 1yYyA0ME.net
TikTok LiteでPayPayやAmazonギフトなどに変換可能な4000円分のポイントをプレゼント中!
※既存TikTokユーザーの方はTikTokアプリからログアウトしてアンインストールすればできる可能性があります
1.SIMの入ったスマホ・タブレットを用意する
2.以下のTikTok Litのサイトからアプリをダウンロード(ダウンロードだけでまだ起動しない)
URLリンク(lite.tiktok.com)
3.ダウンロード完了後、もう一度上記アドレスのリンクからアプリを起動
4.アプリ内でTikTok未使用の電話番号かメールアドレスを使用して登禄
5.10日間連続のチェックインで合計で4000円分のポイントゲット
ポイントはPayPayやAmazonギフト券に変換可能!
家族・友人に紹介したり通常タスクをこなせば更にポイントを追加でゲットできます。

33:名前は開発中のものです。
23/11/12 08:44:04.71 qMf7T3ET.net
>>32
時価総額40兆円企業の大盤振る舞い

34:名前は開発中のものです。
23/11/12 09:02:38.72 oOtXnGOq.net
ステマ禁止法ってこういうのもひっかかるのかな?

35:ドーンおじ
23/11/12 12:18:44.98 DdQ8rzW3.net
Unityとあんま関係ない話で悪いんだけどさ?
某喫煙所に貼ってあったこれな?こいつらJKじゃないん?m9⎛´・ω・`⎞ドーン!
URLリンク(i.imgur.com)

36:名前は開発中のものです。
23/11/12 12:26:39.36 n5fa42Fa.net
141 ドーンおじ sage 2023/10/08(日) 09:20:11.70 ID:FDh2RFJV
あーうぜぇ!製品レベルのもん見せたらサークルがバレんだろ!
このエロゲの作者は5chで初心者虐めてる嫌な奴って噂になったら売れなくなるだろ!m9?´・ω・`?ドーン!

37:名前は開発中のものです。
23/11/12 12:47:22.99 CYBr1Coc.net
>>32
あっという間にポイントが増えていく

38:ドーンおじ
23/11/12 13:10:34.66 DdQ8rzW3.net
今日も元気だ暴飲暴食!大阪で豪遊してきた!
肉吸い定食!ビール500㍑!これでたったの1192円!m9⎛´・ω・`⎞ドーン!
URLリンク(i.imgur.com)

39:名前は開発中のものです。
23/11/12 20:58:47.46 I0ed5/Cl.net
味方のAIを組んでるんだけど、特定の味方を攻撃してる敵を優先的に狙うってどうすればいいのかな
近接敵なら味方の周囲の敵を狙えばいいんだろうが、遠隔だとそうもいかない
AIのスクリプトに自分が狙ってるTargetを保存しておいて、対象検索時にはTargetが特定の味方であればそいつを狙う
というのが楽かな?

40:名前は開発中のものです。
23/11/12 21:44:53.51 n5fa42Fa.net
味方が攻撃受けてるプラグだけやん

41:名前は開発中のものです。
23/11/12 22:27:16.32 xhIsv8fD.net
>>39
ゲームによって変わるからそれだけでは何とも…

敵のアルゴリズムにターゲットを入れてるはずなので、それを見て判断すればよろし?

42:名前は開発中のものです。
23/11/14 15:47:34.84 LdD5f5QN.net
>>38
ビール500リットルは流石に飲みすぎやろwwww

43:ドーンおじ
23/11/14 20:32:40.65 Ke6hoT4B.net
>>42
一桁間違えた!m9⎛´・ω・`⎞ドーン!

44:ドーンおじ
23/11/14 20:34:16.66 Ke6hoT4B.net
>>43
桁じゃなくて単位だろ!㍉㍑だ!m9⎛´・ω・`⎞ドーン!

45:ドーンおじ
23/11/14 20:38:57.48 Ke6hoT4B.net
>>44
㍉は単位じゃねーよ!㌔とか㌐とかはSI接頭語だ!
㍑が単位だ!ビール500㍍だったら単位間違いだ!死ねクソ文系!m9⎛´・ω・`⎞;y=ー(゚д゚)・・∵. ドーン!

46:ドーンおじ
23/11/14 20:40:20.04 Ke6hoT4B.net
>>45
ぐえーやられたんごー嘘んごーワイは元気んごーm9⎛´・ω・`⎞ドーン!

47:ドーンおじ
23/11/14 20:45:13.36 Ke6hoT4B.net
今日も元気だ暴飲暴食!サイゼリアで豪遊してきた!
ワンコインランチ!赤ワイン500㈱!これでたったの880円!m9⎛´・ω・`⎞ドーン!
URLリンク(i.imgur.com)

48:ドーンおじ
23/11/14 20:46:13.89 Ke6hoT4B.net
>>47
単位間違ってるんご!m9⎛´・ω・`⎞ドーン!

49:名前は開発中のものです。
23/11/14 21:12:27.45 q/DQWMma.net
>>44
あっなるほど
やっぱmlの間違いよねwちょっとビビったわwww

50:名前は開発中のものです。
23/11/14 21:15:48.83 0HRegDNH.net
このおっさんさぁ
一応サークルで作ってるらしいけど
毎回このコピペ貼って
多分糖質だから関わったらあかんよ
141 ドーンおじ sage 2023/10/08(日) 09:20:11.70 ID:FDh2RFJV
あーうぜぇ!製品レベルのもん見せたらサークルがバレんだろ!
このエロゲの作者は5chで初心者虐めてる嫌な奴って噂になったら売れなくなるだろ!m9?´・ω・`?ドーン!

51:ドーンおじ
23/11/14 22:07:11.63 Ke6hoT4B.net
マイゴジ観てきたんご!ネタバレするんご!m9⎛´・ω・`⎞ドーン!
ゴジラの口に特攻するんご!嘘ンゴ!元気ンゴ!m9⎛´・ω・`⎞ドーン!
放射熱線の爆風で死んだんご!嘘ンゴ!元気んご!m9⎛´・ω・`⎞ドーン!

52:名前は開発中のものです。
23/11/16 23:49:07.59 r6vj6ruD.net
テスト

53:名前は開発中のものです。
23/11/17 00:09:23.78 VMkKjppr.net
これから学ぶつもりのunity初心者です。
趣味でunityを使って2Dゲームを主に作るつもりです。
unity独特のアニメーション製作法があるのは知ってますが
質問させて下さい。
例えば、オブジェクトの状況の項目を列挙型で作り、
それぞれSwitch文で管理するとして、
現状態に合わせ表示する画像を選択するってこと可能ですか?
その時にフレーム管理で表示画像をパラパラ変えればアニメもさせられます。
つまり、unity備え付けのアニメ制作方法は一切使わずに
描画画像のアニメや推移をスクリプトでやれますか?という質問です。
プレハブ化した空のオブジェクトを作って、
それは可能ですか?

54:名前は開発中のものです。
23/11/17 01:07:27.02 D5/AizDq.net
>>53
できるよ
面倒くさいけどね

55:名前は開発中のものです。
23/11/17 01:19:37.62 RlX5wsw5.net
ユニティ備え付けのアニメのシステム嫌なら自分でクラス作ってシステム作っちゃえばいける

56:名前は開発中のものです。
23/11/17 02:10:18.93 VMkKjppr.net
>>54
めんどくさいができるんですね。ありがとうございます。
>>55
>自分でクラス作ってシステム作っちゃえばいける
すみません、そのクラスだけでいいんで1万円で考えてもらえませんか?
というか、unityでは>>53みたいなこと誰もやってないんで
参考にできるブログ等が見当たりません。
自分のイメージしていることをUnityに落とし込むのにそうとう苦労してまして
例えば、Sprite Editorで分けた画像があって、描画する名前をそれぞれに変更するだけで
パラパラ描画するってできそうなもんですが、
unityだとやれ毎回Sprite RendererをGetComponentして、そこの画像名を変更してやる?
感じでしょうか。ちょっとよくわからんのです。
Unityエンジンの考え方(unityでプログラミングするときにこういう流れになる、みたいな)、
というのを学びたいんですがいいページありませんか?
いろいろGetしたりインスタンスするものが多い気がして。

57:名前は開発中のものです。
23/11/17 02:14:36.31 VMkKjppr.net
あと個人的にですが、世界的にシェアされているはずのUnityの制作ブログ等
探してもどれも情報が古かったり、少なかったりの気がするんです。
日本人は今はもうUniyをあんま触ってない感じなんでしょうか。
もしかして今の流行りはもう別のゲームエンジンにいってます??

58:名前は開発中のものです。
23/11/17 03:19:26.07 RlX5wsw5.net
>毎回Sprite RendererをGetComponentして、そこの画像名を変更してやる?
それでいいと思う。ざっくり言うとこんなカンジ。
public class Player : MonoBehaviour
{
public Sprite[] sps; //スプライト画像の配列 インスペクタで要素数指定して画像をドラッグドロップ
SpriteRenderer spr; //スプライトレンダラーコンポネント取得変数
// Start is called before the first frame update
void Start()
{
spr = GetComponent<SpriteRenderer>(); //スプライトレンダラー取得
}
// Update is called once per frame
void Update()
{
//キーが押されたら画像変更
if (Input.GetKeyDown("a")) { spr.sprite = sps[0]; }
if (Input.GetKeyDown("d")) { spr.sprite = sps[1]; }
}
}

59:名前は開発中のものです。
23/11/17 03:33:30.03 VMkKjppr.net
>>58
ありがとうございます!
質問だけさせてください!
配列の宣言とこです、
public Sprite[] sps; //スプライト画像の配列
生成のnewも要素数指定もありませんが
インスペクタの項目のところで要素数指定することができるんですか?
画像をドラッグドロップで突っ込んだ数が要素数になる感じですかね?
要素数を決めることが可能ってことですか??
で、その要素数指定の場合は、生成のnewも宣言しなくていいということ??

60:名前は開発中のものです。
23/11/17 03:38:27.85 RlX5wsw5.net
インスペクタで要素指定できますよ。
スクリプトでnewしなくてもいけます。

61:名前は開発中のものです。
23/11/17 04:16:44.59 VMkKjppr.net
>>60
できました!!
すごい!これを改良して>>53を作ってみます!

62:ドーンおじ
23/11/17 07:19:34.01 uL2Qodvg.net
>>53 >>57
最低の回答してやるよ!回答者は反面教師として参考にしろ!m9⎛´・ω・`⎞ドーン!

・なんでUnity標準のアニメーション使わね-のかまず説明しろ!←はてなとか教えての回答者の9割9分がこれ!
・できるよ!面倒くさいけどね!←可能かどうか聞いてんじゃなくてやり方聞いてんだよ!
・UEはアフェカス!←忍者くん!

63:ドーンおじ
23/11/17 07:29:40.54 uL2Qodvg.net
>>57
ネットの情報が古い?そーなんだよー!
ブログやったこと有る?ない?ブログ更新するのってめんどくせえんだよ?
そのときの自分のやってたことをメモの意味でブログに残してるだけだからねー?
ブームが去ったら著者は興味失う、だから世の中には書きなぐりのゴミ情報が溢れてんだよ?
でもな?Unityは未だマシな方だぜ?UEなんて皆無に近い!基本のリターゲットすら古い情報しかねーんだよ!
そして紙の本はもっと酷いんだよ!紙の教科書持ってたら捨てろ!持ってても役に立たね-どころか邪魔だ!
犠牲者が増える前に出版禁止しろよ!焚書だ!教科書は燃えているか!?m9⎛´・ω・`⎞ドーン!

64:名前は開発中のものです。
23/11/17 07:41:04.76 woQh1Af/.net
>>53
初心者のくせになんでも知ってるじゃないか。

65:ドーンおじ
23/11/17 07:47:24.98 uL2Qodvg.net
>>64
これはひどい!回答しないどころか質問者を罵倒するクズ!
低クオリティなんてもんじゃねーぞ!?死ね!m9⎛´・ω・`⎞;y=ー(゚д゚)・・∵. ドーン!

66:名前は開発中のものです。
23/11/17 14:05:14.76 fOixlSew.net
ドット絵やアニメ絵ならむしろ既定画像のパラパラ漫画形式のほうが多そうだけどな
3Dでもアニメ調のものは口の動きとか、ちょっとした揺れなんかはGifアニメらしいし

67:名前は開発中のものです。
23/11/17 15:26:39.33 UbxmJ6RH.net
メカニックが走ってきて作業のドットアニメ作った時、スプライトマネージャー?使ったけど、簡単でしたよ。

68:名前は開発中のものです。
23/11/17 17:51:24.35 nRYHl31k.net
自前のスプライトアニメ制御クラスなんてのは登龍門だから
数万人ってレベルでみんなが自作してる
金は要るがアセットストアに現職のプロ製とかが売ってるから
自分で実装するのに限界を感じたらストアを覗いてみるといい
ソースも付いてるから改造できるし勉強にもなる

69:名前は開発中のものです。
23/11/17 18:46:45.31 o7sk0BCQ.net
unityの新展開が来たけどmuseってまだ使えるわけではないんだよね?

70:名前は開発中のものです。
23/11/17 21:04:48.25 VMkKjppr.net
>>64
Unityの初心者なんですが、プログラミングの初心者では無いというか
若い時代にC++かじったことがありましてその頃にゲーム作った経験がありまして。
今の時代ですからUnityで作りたいんで覚えたいんです。
ただあのアニメーションの作成方法はどうにも慣れません。
あとunityってメイン関数で回すって構築方法じゃ無いので
これまた覚えるのに時間を食ってる感じです。

>>68
>自前のスプライトアニメ制御クラスなんてのは登龍門だから
数万人ってレベルでみんなが自作してる
>金は要るがアセットストアに現職のプロ製とかが売ってるから
自分で実装するのに限界を感じたらストアを覗いてみるといい

すでに限界感じてるんで、ソースを見て覚えたい感じです。
クラスのアセットって売ってるんですね。
画像素材やオブジェクトの完成品(いじれや的な)ばかりかと思ってました。
おすすめのクラス、教えてくれませんか?

2Dゲーム制作
BGM &SEの制御クラス
スプライト描画の制御クラス

71:名前は開発中のものです。
23/11/18 00:56:15.52 H7HorgOX.net
高校で物理を学びまして一流大学の理系卒です。
Start()内でrigidbodyにAddForce()すれば物体は移動するけど
物理学的にはどうなってるの?
Start()が呼ばれるのは1回だけなので
物体に力が加わるのはほんの一瞬のはず。
重力のように恒常的に力が加わっているのではない。
これは力積が加わったということ?
どういう計算になるのですか?

72:名前は開発中のものです。
23/11/18 00:58:03.94 H7HorgOX.net
ちなみにわたしはUnityの映えある初心者です。
たとえばUpdate()内のrigidbodyにAddForce()すれば物体はどうなるんだろう?

73:名前は開発中のものです。
23/11/18 01:33:43.78 H7HorgOX.net
物理学とrigidbody、
物理学とcollider、
の関係をそれぞれ教えていただけませんか?
Unityでも出てくる用語のrigidbody, colliderが
物理学の力(と加速度)、はねかえり係数、力積、などとどう関係しているのかが知りたいです。
ある物体にComponentとしてrigidbodyやcolliderがついているかいないかによって2x2=4通りあると思いますが
2物体の衝突の場合どうなるかはさらに2倍の組み合わせがあります。
こういった概念を分かりやすく把握するためにはどう物理学的に理解するのがよろしいですか?

74:名前は開発中のものです。
23/11/18 02:00:48.43 H7HorgOX.net
isKinematicって
物理学でいうとどういう概念でしょうか?

75:名前は開発中のものです。
23/11/18 02:01:16.35 u9Gd6DYb.net
>>70
何を作るかわからないけど、とりあえず昔からの定番で
今50%Offセールしてる奴は以下がオススメかな。
・CorgiEngine(2D総合,サウンド制御含む?)
・MasterAudio(サウンド制御のみ)
ゲームエンジン無しでゲームを作りかけてた人なら
同梱のサンプルシーンでUnityの仕組みごと勉強が出来ると思う。
あとは必要に応じて金で時間を買う感じで。

76:名前は開発中のものです。
23/11/18 02:26:57.63 H7HorgOX.net
例えば双方の物体ともにrigidbodyがついていない場合
onCollisionEnter()が作動しないのはなぜでしょう?

77:名前は開発中のものです。
23/11/18 02:36:21.39 s1NK7waI.net
PC買い替えでUnityセットアップして作業してたプロジェクト開いて実行したら
12秒おきにGCで6フレームぐらいフリーズするようになったんで原因調べてたら
新規プロジェクト作成して何もないシーン実行してる状態でもGCUsedMemory増えていくし
GCでプチフリしてるっぽい… バージョンは2022.3.0f1 以前使ってたバージョンは覚えてない…
これって何なんですかね?

78:名前は開発中のものです。
23/11/18 06:40:37.70 2DKcfbLu.net
2022.3.0はだいぶ古いからとりあえず新しいので試してみたら?

79:名前は開発中のものです。
23/11/18 08:56:31.81 /QXT7ykg.net
1流大卒業してるなら
次はUDEMYでUnity習って卒業してこい

話はそれからだ

80:ドーンおじ
23/11/18 11:39:38.60 /tOWUc13.net
今日も元気だ暴飲暴食!サンポで豪遊してきた!
鬼おろし牛丼!豚汁!ビール500㍑!これでたったの1080円!m9⎛´・ω・`⎞ギュードーン!
URLリンク(i.imgur.com)

81:名前は開発中のものです。
23/11/18 12:09:30.34 E+9QAOuF.net
幸せの第一歩は丈夫な胃腸を持つことだ
っていうけど暴飲暴食者の幸福感は異常ってのは実感できる

82:名前は開発中のものです。
23/11/18 13:19:10.02 R3Sqy6aw.net
>>79
Udemyもよさそうだけど
これは物理学のことを理解できない頭がハゲた人向けに説明してることが予想できるきらあまり乗り気でない。
物理学を理解してる人向けにUnityを解説している本or動画はないでしょうか?
理系頭にとってちゃんと数式で説明してくれたほうがよっぽどよく分かる。
「文系でも分かる」と冠した本みたいなのは理系頭にとって分かりにくいことこの上なく大嫌い。

83:名前は開発中のものです。
23/11/18 16:05:36.16 E+9QAOuF.net
本格的にやりたいならRとかで物理シミュレーションやったほうがいいと思うが
Unityはあくまでそれっぽい挙動をグラフィックに変換するだけで正確な動作してるわけじゃないぞ

84:名前は開発中のものです。
23/11/18 17:53:26.57 s1NK7waI.net
>>78
PCと手持ちのノート2環境で色々試した。
昔使ってた古いUnityはGC頻度短めスパイク低めでそれ以降のUnityは
GCスパイク300msぐらいだった。
でincremental GCを有効にしたらスパイク減って快適になった。
(incremental GCが実験実装されたのが2019でincremental GCはデフォルトで
オンになっているが古いプロジェクトはオフになってる)
とりあえず解決しました。ありがとうございます

85:名前は開発中のものです。
23/11/18 18:18:33.65 2DKcfbLu.net
>>84
調査お疲れ様&情報共有ありがとう

86:名前は開発中のものです。
23/11/19 00:58:34.18 O7qPxWRo.net
Itchとか無料であげられるところに数うちゃ当たるでうpしまくって反応を見て、好感触なものを本格的に作って売る
ってのは嫌われるかね?

87:名前は開発中のものです。
23/11/19 01:01:17.50 BYVRHENG.net
>>75
ありがとうございます!なんか良さそうです!
解説動画もあるし、これは調べてみる価値あります!

あと初心者として皆さんに質問させてください。
まったく関係ない話なんですがオブジェクトの座標をupdate関数内で更新するのに
transform.position = new Vector2(transform.position.x - 1f, transform.position.y);
みたく、毎回毎回Vector2をnew(生成)しないといけないのはなぜですか???
例えばC言語とかだと、同じ様な更新でも座標にしてる変数を「pos-x -= 1;」だけでいいです。
そのイメージで考えると、毎回newまでするの「なんで?」って思ってしまって。
transformがオブジェクトの位置、座標の情報を付与するためのコンポネントだとして
座標をいじるのにそれをいじらなければならないとするなら
そのオブジェクトのupdate関数の中で「transform.position.x -= 1f,」でよくないですか?
それで変わってくれれば話早くないですか?
unityはなぜX座標を更新するだけのために毎回更新するときに
transform.position = new Vector2(transform.position.x - 1f, transform.position.y);まで
記載しなきゃ触れないんでしょう?
どなたか熟知されてる方、unityを理解したいので理由をわかりやすく教えてください。

88:名前は開発中のものです。
23/11/19 01:04:08.54 BYVRHENG.net
position.xだけを更新したいのに毎回引数でposition.yまで記載する理由がほんとわかりません。
x座標を更新するやり方、自分が頭が悪いやり方選んでるだけしょうか?

89:名前は開発中のものです。
23/11/19 02:04:40.22 9N6CQXeG.net
>>88
仮のvector3型を作っておいてそこのデータを常に更新して、描画の直前に反映するとか。
static vector3 実機座標,仮座標
------
仮座標.x = 仮座標.x + 1
実機座標 = 仮座標

90:名前は開発中のものです。
23/11/19 02:51:40.48 jh2cZ69b.net
構造体は値型だからね
UnityじゃなくてC#に詳しい人に聞いた方がいいと思う

91:名前は開発中のものです。
23/11/19 05:33:17.92 QVCHme1W.net
C#構造体は罠が多いから使うなとまで言う人もいるくらいだからなあ

>>87
C#の構造体は値型なのでヒープには作られず参照は使用されない。そのため構造体変数への代入は毎回全データのコピーが発生する

newがいるのはコンストラクタを呼び出すためで、コンストラクトが完了してない変数は使用できないという制限をクリアするため
Cの構造体のnewのようにメモリアロケートが発生しているわけではない

transform.positionはプロパティなので値を取得した時点で中身がコピーされた別データになる
このためxだけを変えても「コピーのxを変える」という操作にしかならない

92:名前は開発中のものです。
23/11/19 08:55:46.53 13N5nc91.net
>>91
構造体は16バイト以下ルールってまだあるの?

93:名前は開発中のものです。
23/11/19 09:14:01.95 WioH0Gev.net
START関数でNewしてそれ使っとけ

94:名前は開発中のものです。
23/11/19 18:45:49.80 GNJhXrWP.net
現役エンジニアを気取ってる人でも構造体のnewをヒープと勘違いしてる人がいるからね
公式ドキュメントにもさりげなくしか書かれてないから誤解してる人も少なくないだろうね
16バイトルールはまだ健在だった気がするけど速度測ったことないから良くわからん

95:名前は開発中のものです。
23/11/19 19:48:51.56 qyDIySTh.net
こんばんはいつもお世話になっております
質問ですけんど
Unityでライン描画はやれますか
たとえばキューブのワイヤフレームを空間に出すなどです
もしかしてマテリアルでやれますけ

96:名前は開発中のものです。
23/11/19 20:33:47.79 9N6CQXeG.net
アセットを購入すれば1番簡単です。

97:名前は開発中のものです。
23/11/19 21:16:11.40 WioH0Gev.net
ラインレンダラー

98:名前は開発中のものです。
23/11/19 21:22:50.49 lyGaFktw.net
いやマジでこの質問の答えはアセットが一番、で正解かもしれん・・・

99:名前は開発中のものです。
23/11/20 18:09:39.33 6j8Unkop.net
MethodImpl(MethodImplOptions.AggressiveInlining)で最適化した後のソースコードがどんな感じか知りたいんですけど
IL2CPPでビルドした時に生成されるBackUpThisFolder_ButDontShipItWithYourGameフォルダのAssembly-CSharp.dllを逆コンパイルしてソースコード確認したら最適化前の状態でした
最適化後のソースコードを見るなら同フォルダのcppファイルを目視確認するしかないですか?(C++クソザコ)

100:名前は開発中のものです。
23/11/21 01:47:53.08 TnJ2/nlr.net
>>89
>仮のvector3型を作っておいてそこのデータを常に更新して、描画の直前に反映するとか。
ありがとうございます。
その仮座標を変数で作っちゃじゃダメなんですかね。
例えば、変数pos.Xに座標にしたい値を入れといて、
最終的にその値をvectorに代入したらいいんじゃないかとか思うんですけど
仮の座標でもvectorを使わなきゃならないんだ、って感じがUnityなのかって感じです。
とにかく座標触るのが面倒っていうか、なんでこんな複雑なのって感じで(Unity触って間もないのもありますが)。
>>91
>newがいるのはコンストラクタを呼び出すためで、コンストラクトが完了してない変数は使用できないという制限をクリアするため
>Cの構造体のnewのようにメモリアロケートが発生しているわけではない
>transform.positionはプロパティなので値を取得した時点で中身がコピーされた別データになる
>このためxだけを変えても「コピーのxを変える」という操作にしかならない
説明ありがとうございます。
なんかこれは理解が深まった感じです。なんか掴めそうです。

101:名前は開発中のものです。
23/11/21 02:14:19.12 w6m3vvkL.net
>>100
C#には値型と参照型がある
値型とは構造体(struct)、参照型とはクラス(class)のこと
この2つの違いは変数の値がメモリのどこに配置されるかということ
値型はスタックという場所に、参照型はヒープという場所に配置される
スタックはC#実行時に予め確保されているメモリなので読み書きが速い
ヒープはnewする度にメモリを確保する(確保済みの未使用メモリがあればそこを使う、無ければ拡張する)ので読み書きが遅い
そして値型と参照型では「変数が何を持っているか」が違う
値型の変数は「値そのもの」を持っているので、変数Aに変数Bの値を移すと「値そのもの」が移されて、一見値が同じでもそれぞれメモリの違う場所に配置された値を見ることになる
参照型は「値が配置されてるメモリの場所(アドレス)」を持っているので、変数Aに変数Bの値を移しても「値が配置されてるメモリの場所」を移しただけなのでメモリの同じ場所の値を見ている
この説明でどのくらい分かるだろうか

102:名前は開発中のものです。
23/11/21 02:18:53.63 w6m3vvkL.net
>>101
最後のくだりはちょっと表現が紛らわしかったかも
 変数A = 変数B;
した時、値型は変数Aに変数Bの「値そのもの」を移している
一方で参照型は変数Aに変数Bの「値が配置されてるメモリの場所」を移している

103:名前は開発中のものです。
23/11/21 06:49:06.73 w6m3vvkL.net
>>102
寝て起きて読み返してみたらまだ紛らわしかった
場所って単語はアドレスに読み替えて

104:名前は開発中のものです。
23/11/21 06:56:26.50 TnJ2/nlr.net
自分で調べた結果、
transform.position = new Vector2(transform.position.x - 1f, transform.position.y);
とは別のアプローチで同じことができることがわかりました。
他人(ブログ)の受け売りなんですけども。。
transformを取得して、座標を取得、座標をいじって、座標を再設定
という流れです。
Transform myTransform = this.transform;// transformを取得
Vector2 pos = myTransform.position;// Vector2型で座標を取得
pos.x -= 1f * Time.deltaTime;// x座標に加算
myTransform.position = pos;// 座標を設定
こっちのほうが自分のイメージに近いですが
明らかに手間は増えてます。
エレガントなのは前者なのはわかりますが、
今後座標の更新を後者の記述で行っていくのはナンセンスですか?

105:名前は開発中のものです。
23/11/21 06:59:17.99 TnJ2/nlr.net
>>103
はい、確かに自分にはわかりにくい感じでしたが、
自分でもいろいろ調べながらなんとか理解深めました。
ありがとうございます<(_ _)>

106:名前は開発中のものです。
23/11/21 08:46:17.86 KhhZh2q7.net
手間増えてるとか時間掛かるとかは考えすぎ
0.001秒で出来るのが0.003秒、3倍もかかるだろ遅いだろって感じやで

107:名前は開発中のものです。
23/11/21 08:49:21.11 k77a/lwT.net
>>104
自分にわかりやすい方でやっていくのが良いと思います。簡略や高速化は理解が深まってからで問題ないです。

108:名前は開発中のものです。
23/11/21 08:51:04.72 UKnjSgkS.net
newしてGC出るのを恐れてんのかな
vector2とか3なら大量のオブジェクトで毎フレnewしてもほとんど影響ないんじゃないのかね

109:名前は開発中のものです。
23/11/21 09:16:36.74 TnJ2/nlr.net
すみません、>>58で教えてくれた
public Sprite[] sps;でスプライト画像の配列を作ってインスペクタの方で
要素を増やしながら画像をドラッグドロップして追加していく方法なんですけど
これ、Sprite Editorで分けた画像が100を超えて来る場合(Mapのチップとかなら有り得る状況です)
インスペクタの方に手作業で画像をドラッグするのってちょっと効率悪いと思うんです。
インスペクタに要素の項目が100並ぶのもイメージできないですし。。
多分、Sprite Editorで分けた画像をコードで配列に入れ込む方法あると思うんですが
教えて頂けませんか?
検索してもコードでSprite Editorで分けた画像を配列につっこむってこと誰もやってなくて。
教えてください、お願いします!

110:名前は開発中のものです。
23/11/21 09:16:49.84 INjw62PD.net
この辺が理解できない人用にunity scriptあったけどねぇ

111:名前は開発中のものです。
23/11/21 10:17:11.08 KhhZh2q7.net
インスペクタで登録できるって事はコードでも出来るやろ
まず簡単なint配列作ったSTARTで登録してみそ
それ出来たらSpriteにすりゃいい

112:名前は開発中のものです。
23/11/21 15:33:49.92 KEuaTtq8.net
>>109
1 Assetsフォルダ内にResourcesという名前のフォルダを作ります。
2 Resourcesフォルダの中にスプライトエディターで分割した画像を入れます。
3 スクリプトからスプライト型の配列としてロードします。
public class Player : MonoBehaviour
{
Sprite[] sps; //スプライト画像の配列
SpriteRenderer spr; //スプライトレンダラーコンポネント取得変数
// Start is called before the first frame update
void Start()
{
//スプライトレンダラー取得
spr = GetComponent<SpriteRenderer>(); 
//Resourcesフォルダ内のPlayer画像取得
sps = Resources.LoadAll<Sprite>("Player");
}
// Update is called once per frame
void Update()
{
//キーが押されたら画像変更
if (Input.GetKeyDown("a")) { spr.sprite = sps[0]; }
if (Input.GetKeyDown("d")) { spr.sprite = sps[1]; }
}
}

113:名前は開発中のものです。
23/11/21 18:57:49.67 B7H/FnQ3.net
>>109
ソレには関係ないけど、そこで質問をしてくるってことは
「Inspectorの配列内の順序を入れ換えたいのに全部手作業でD&Dやり直し」
なんて糞面倒な壁にぶち当たるだろう。
「Odin Inspector and Serializer」というInspectorの拡張アセットがあるから
プロジェクトに突っ込んでおくだけでもいい感じだよ。
配列の入れ替えはもちろん長い配列をページ分け表示したり
独自の表示形式にしたりできる。
あとUnity自体には実行中にInspector内のコンポーネントをコピーして
編集画面に戻って貼り付けるなんて小技もある。

114:名前は開発中のものです。
23/11/21 23:07:46.31 TnJ2/nlr.net
>>112
うおおお、まさにいい感じに配列入れて描画変更できました
ありがとうございます!Unity、楽しくなってきました!
>>113
ありがとうございます。まさにありえそうな未来です。
「Odin Inspector and Serializer」、調べてみます!

115:名前は開発中のものです。
23/11/22 07:23:31.62 lIvPxeSH.net
質問です。
自分のイメージすることがUnityで可能かどうか教えてください。
サウンド管理マネージャーみたく
シングルトンで画像管理マネージャーなるものを作りたいのです。
通常、敵などのオブジェクトは各々が画像も持っているわけですが
ゲームで使用する全画像データを数種類の配列に入れ込んで持っているクラスを作り
それはシングルトンで、どこからでも使える感じで。
それぞれのオブジェクトのほうで、その画像マネージャーの画像をどうしか指定して
描画するといった感じです。
これはC++ではよくある組み立て方なんですがUnityでは可能でしょうか?
unityのSpriteRendererという仕様がそれを不可能にさせてる気がするんですが
どうですか?
SpriteRendererは自分のオブジェクトに保持した画像しか扱えない気がして。

116:名前は開発中のものです。
23/11/22 07:27:08.32 lIvPxeSH.net
例えば他のオブジェクトで配列に入れている画像を
別のオブジェクト(のコード)で指定して自分に表示させられることができるのなら
可能かと思うんですがUnityってそんなことできますか?

117:名前は開発中のものです。
23/11/22 08:13:00.39 TMOtxA2v.net
Unityでのシングルトンはグーグル先生がよく知ってる
例えばこれ
URLリンク(qiita.com)
この例ならシーンのどこかにGameManagerコンポーネントがあればどこからでもGameManager.Instance.Test ();にアクセスできるようになるので、応用すれば十分可能かと

118:名前は開発中のものです。
23/11/22 08:29:49.06 WaHHcvaJ.net
SpriteRendererとSpriteは違う
画像自体はSprite

119:名前は開発中のものです。
23/11/22 09:00:53.26 lIvPxeSH.net
>>117
ありがとうございます!良い感じです!
>>118
了解です。Spriteは画像自体、
SpriteRendererは描画するコンポネントですね!

120:名前は開発中のものです。
23/11/22 12:34:17.51 9gCfMCQh.net
>>116
別のスクリプトにアクセスして変数操作したりするのと同じやりかたです

121:名前は開発中のものです。
23/11/22 22:11:13.84 NG9cR/uf.net
会社でUnityを使ってグループ会社の発達障害を受け入れる施設向けに
子供向けのアプリを作成して定期的に提供しようという案があるのですが、
Unityアプリ以外の会社の収益が過去12ヶ月間で2,965万5,991円以上あれば
開発用PC1台あたり、年間267,960円UnityProのライセンスが必要になるのでしょうか?
会社の規模的に収益が3000万円以上あると思うので
開発用に3台に、収益も生みだしていないうちに
267,960円×3の費用がかかるとなると
提案が却下されそうで悩んでいます。

122:名前は開発中のものです。
23/11/22 23:17:37.76 E2dGfoFk.net
なやんだってしゃーない。
unity 社へ会社間の話をすべきでは?
それで折り合いがつけるのが君の仕事になるの…かな。

123:名前は開発中のものです。
23/11/23 06:05:31.72 8565Xx/j.net
ここ技術者しかいないから経営の話をしてもトンチンカンな回答しか返ってこないよ
ここでの質問はおすすめしない

124:ドーンおじ
23/11/23 06:50:23.27 nDDRpgAx.net
>>121
なんでUnity関係ねえ収益までUnityに金払わねえとならねえと思うんだよ!?
お前が発達障害だろ!m9⎛´・ω・`⎞ドーン!

125:名前は開発中のものです。
23/11/23 06:52:36.21 cAxxJ+OJ.net
(´・ω・`)
mgっ  cgm

126:ドーンおじ
23/11/23 07:00:52.80 nDDRpgAx.net
このスレはクソガイジ>>121を虐めるスレに成ったんだぜ!ウエェーイ!!
 ⎛´・ω・`⎞
mgっ  cgmドーン!

127:名前は開発中のものです。
23/11/23 08:00:35.51 dk6/+dgu.net
流石にunity以外で得た収益は計算に入れないでしょ
toyotaだかどっかの企業もunity使かってなんかやったって記事みたけど全収益から取ったら恐ろしい額になるし頭おかしいでしょ

128:ドーンおじ
23/11/23 08:37:18.48 nDDRpgAx.net
彡 ⌒ ミ
(´・ω・) おらおら!池沼の分際でスレ汚した責任とれや?ドーン!
m9 / ,⌒l
| /`(_) グリグリ
(__)(´;ω;`) >>121

129:名前は開発中のものです。
23/11/23 09:29:46.27 1rXUya4d.net
ドーンおじの正体、自ら明かす
141 ドーンおじ sage 2023/10/08(日) 09:20:11.70 ID:FDh2RFJV
あーうぜぇ!製品レベルのもん見せたらサークルがバレんだろ!
このエロゲの作者は5chで初心者虐めてる嫌な奴って噂になったら売れなくなるだろ!m9?´・ω・`?ドーン!

130:名前は開発中のものです。
23/11/23 09:49:01.99 oKH3R9WW.net
>>124
これなw

131:名前は開発中のものです。
23/11/23 10:22:32.64 domwkp//.net
過去 12 か月の収益または調達資金が 20 万ドルを超える企業およびその企業と取引があるお客様は、Unity Pro または Unity Enterprise のプランにご加入いただく必要があります。

132:名前は開発中のものです。
23/11/23 11:02:54.59 54II3vzn.net
それあくまで加入でしょw
入り口はそこからってだけ

133:名前は開発中のものです。
23/11/23 12:50:51.91 lExN4hdU.net
こんにちはいつもお世話になっております
質問ですけんど
人さまのデータにあった、asset拡張子のメッシュデータを、ユニティ内にはちゃんと見えているのですが、
ちょこっとポリゴン頂点を編集したいのです
何らかのobjなりfbxなりの書き出しはやれますか

134:名前は開発中のものです。
23/11/23 13:02:21.19 lO0ruGHu.net
ナイショ

135:名前は開発中のものです。
23/11/23 16:49:02.51 lExN4hdU.net
133は自決しましたプロビルダーとかいう内蔵モデラーでやれました

136:ドーンおじ
23/11/23 17:12:02.79 U6Bg/sEz.net
    彡 ⌒ ミ
    (´・ω・`) 三島由紀夫が割腹自決したとき森田必勝が介錯したけど
    / y/  ヽ  下手くそで肩に当たったり頭部に当たったりで何度も失敗して三島は苦しんだんだよ!
 ━(m)二フ⊂[_ノ  結局剣道経験のあった別の人が一刀で頭部切断したんだよ!
   (ノノノ|||)  そしたら介錯した人は自殺幇助どころか殺人罪で逮捕されたんだよ!

137:名前は開発中のものです。
23/11/23 17:15:40.54 lExN4hdU.net
今から死ぬってことを先に伝えてあれば、市ヶ谷の連中も少しは話を聞いてくれただろうか

138:ドーンおじ
23/11/23 17:39:03.39 U6Bg/sEz.net
>>137
主力部隊は東富士演習場に移動していて残っていたのは後方支援だけで
三島由紀夫を知らないレベルの教養しか無かったのだよ!m9⎛´・ω・`⎞ドーン!

139:名前は開発中のものです。
23/11/24 03:10:35.20 A4Pmbux7.net
普通に収益あげてる企業なら使用料は払わんといかんでしょ
まあ内容が内容だからUnity公式のサポートに問い合わせれば
こっそり温情で使わせてくれると思うよ

140:ドーンおじ
23/11/24 08:32:04.40 x/X58WAI.net
なぞなぞです!
棒状でだんだん熱くなって先っちょを咥えると白いものが出てきて
出し終わると小さくなるものといえばナーニ?m9⎛´・ω・`⎞ドーン!

141:名前は開発中のものです。
23/11/24 09:08:47.69 6bk8iGG1.net
>>140
何が面白いの?

142:ドーンおじ
23/11/24 09:18:32.25 x/X58WAI.net
>>141
ナニが白いの?白いのは煙だよ!大ヒント出ました!( ´ー`)y-~~

143:名前は開発中のものです。
23/11/24 16:52:39.36 ZmH9ui2f.net
Unityのライセンス価格変更について今更調べたんだけど
・価格変更後はUnityPlusがUnityProに取り込まれる(=Plusは消えて1年後くらいにProの価格になる)
・2023LTS以降はUnityPersonalでスプラッシュスクリーンを非表示にできる
ということで、スプラッシュスクリーン非表示のためだけに有償ライセンスを検討してる場合は2023LTS以降なら無料プランでおkという認識でよろしいか?

144:名前は開発中のものです。
23/11/24 17:25:16.52 pg0cHsLN.net
Unity Personalで開発しているのですが
糞スプラッシュスクリーンを表示させない方法はありますか?

145:名前は開発中のものです。
23/11/24 17:26:14.93 pg0cHsLN.net
>>143
それは本当ですか?

146:名前は開発中のものです。
23/11/24 17:30:47.41 fVregRx2.net
スプラッシュスクリーンは変更できるようにできるならカッコいいUnityのスプラッシュスクリーンに変えたいな

147:名前は開発中のものです。
23/11/24 17:44:04.85 w6wK5eGP.net
URLリンク(gigazine.net)
◆Unity PersonalにおけるUnityスプラッシュスクリーンの使用義務を撤廃
Unity Personalではゲームの起動時にUnityのロゴを表示する必要がありましたが、表示義務が撤廃されました。
ここに書かれてない但し書きがなければ>>143の通り

148:名前は開発中のものです。
23/11/24 17:54:48.59 pg0cHsLN.net
よっしゃ!

149:名前は開発中のものです。
23/11/24 18:26:35.64 pg0cHsLN.net
いつからスプラッシュスクリーンが出ないUnity Personalを使えますか?

150:名前は開発中のものです。
23/11/24 19:26:47.94 HrfOyxD5.net
>>144
例えそれが技術的にできたとしても、それは改ざん行為になるので規約違反
そんなのここで教えられるわけがないw

151:名前は開発中のものです。
23/11/24 19:27:53.31 HrfOyxD5.net
あー強いて言うならスプラッシュスクリーンが出ないUnity Personalが出るまで待つことかな

152:名前は開発中のものです。
23/11/24 19:46:26.11 pg0cHsLN.net
>>151
いつまで?

153:名前は開発中のものです。
23/11/24 19:59:24.46 HrfOyxD5.net
>>152
Unity6が出る時期だから2024年内だね

154:名前は開発中のものです。
23/11/24 21:45:35.57 4YXTTpie.net
普通にUnity6使えば良いってことかサンクス

155:名前は開発中のものです。
23/11/24 21:51:01.85 DvD8d6Hr.net
リモートワーク制度が削減・廃止されたら「転職や別案件を探す」が4割--
「Offers」登録者調査
ITエンジニア/デザイナーの副業・転職サービス「Offers」を提供するoverflowは、
同社が運営する「Offersデジタル人材総研」にて「リモートワーク実態調査2023」
を公表した。
これによると、リモートワークになり、5人に1人が引っ越したと回答した。そのうち、
現職でリモートワーク制度が削減・廃止された場合、「転職や別案件を探す」という
回答が44.0%にものぼった。一方「会社と交渉する」という回答は40.0%、
「引っ越さず受け入れる」が12.0%となった。
さらにリモートワークを希望している理由として「通勤時間が無駄だと感じている」が
87.7%でトップとなった。このほか「個人の時間ができる」(62.3%)、「副業を続け
やすいから」(39.6%)、「子育てができる」(35.8%)と続いた。

156:名前は開発中のものです。
23/11/24 22:42:35.04 6bk8iGG1.net
っていうかunityのスプラッシュスクリーンそんなに嫌か?
俺オシャレでいいと思ってるんだが
自分であんなの作るの少し手間かかるだろ

157:名前は開発中のものです。
23/11/25 01:04:07.62 G6Qarke7.net
Unity製はどうこうみたいな風潮はあるけど実際Unityで作ってるわけだからなオレも隠す必要がないと思ってるよむしろUnityでこれだけのものを作ったぞと見せつけていけ

158:名前は開発中のものです。
23/11/25 01:56:22.73 VScWYipM.net
Unity使うのやめようかなって思うレベルでダサいよ
Unity6でUnityの個人ユーザーは間違いなく増えると思うわ

159:名前は開発中のものです。
23/11/25 02:24:39.79 6mVYgNka.net
本命は起動時間の短縮
スプラッシュスクリーンの裏でアセットバンドルのロードを走らせられるなら別にいいんだけど
そうもいかないだろうから

160:名前は開発中のものです。
23/11/25 02:39:21.12 CP8hzqFB.net
個人の開発者の人って有料Assetどれくらい買ってる?
初めての開発なんだけどAsset Storeがセールしてたから必要そうなAssetを見繕ってみたら円換算でかなりの額になってしまった
赤字の未来しか見えなくて買うのが怖い

161:名前は開発中のものです。
23/11/25 03:54:56.12 9rpRVGI9.net
前々からゲーム制作に興味あってそろそろ動きたいけど
PCは持ってない
どんなの買えばいい?
MacBook Airかproかで悩んでる
その中でも何種類かあるし
Airの13インチM1でも大丈夫かな?
メモリやSSDの容量もどれくらい必要?
今のところゲームは2DのRPG作りたい

162:名前は開発中のものです。
23/11/25 04:28:44.23 mCFIcOWr.net
パブリックでゲームオブジェクト変数を用意して、プレハブをドラッグ&ドロップしたんだけどなんか挙動がおかしい
同じゲームオブジェクト変数の用意のしかたで同じようにプレハブを入れても 最初に記述した4行のゲームオブジェクトは問題はないのに、それ以後に増やしたゲームオブジェクト変数は、プレハブのドラッグ&ドロップは問題ないのに、変数の中身を調べるとnullになっている(先に記述した4行の変数はプレハブが入っていると表示される)
現状自分では何も解らない状況です。

163:名前は開発中のものです。
23/11/25 08:14:12.34 DxkplgpG.net
>>160
廃課金者だから数十万行ってる気がする
もちろん赤字だが発注するよりは格安

>>161
UnityならMacBook Proかなー
M1でも2Dゲームくらいなら余裕
ただ、Airは発熱凄いからお勧めしない
SSDは自分だったら1TB欲しいかな

164:名前は開発中のものです。
23/11/25 08:23:41.08 75MeFtBw.net
>>160
めっちゃ買ってるで
糞アセットに当たる可能性もあるけど今では欠かせないものもある

165:名前は開発中のものです。
23/11/25 09:33:18.15 tUq1KY+K.net
>>161
どちらにせよ、16G以上にしないと辛いよ。

166:163
23/11/25 09:52:57.90 DxkplgpG.net
RAM言い忘れてた
上に同じく16GBあった方がいいな
Proならもっと上もあるが自分はM1&16GBで軽いゲームなら開発できてるので参考までに

167:名前は開発中のものです。
23/11/25 11:21:33.25 FGDWLLI7.net
すみません、2つ質問させてください。
1
乱数を返すRandom.Range();がありますよね?
これはこちらが最小値と最大値を決めて、返すわけですが
「0」が要らない場合、Random.Range(1,4);にすると
1,2,3のどれかを返す、という認識で間違い無いですか?
2
あと、最小値最大値の範囲ではなくて、
例えばこちらが数値をいくつか決めて
それのどれかを返す、みたいな関数ないですか?
例えば、「1か4を返す」とか「23か34か40を返す」とか
そんな感じです。
Random.Range(23,34,40);とかそんな感じの。

168:名前は開発中のものです。
23/11/25 11:28:32.02 6mVYgNka.net
1
 public static int Range(int minInclusive, int maxExclusive);
なのでint型はmin以上max以下だから1~3が欲しいならRandom.Range(1, 4)
ただしfloat型の場合
 public static float Range(float minInclusive, float maxInclusive);
なのでmin以上max未満だから1.0f~3.0fが欲しいならRandom.Range(1.0f, 3.0f)
2
特定の数値をList<int>にぶち込んでこれ呼び出せばランダムな値取ってきてくれる↓
public static T RandomPick<T>(IReadOnlyList<T> collection)
{
return collection[UnityEngine.Random.Range(0, collection.Count)];
}

169:名前は開発中のものです。
23/11/25 11:29:41.02 6mVYgNka.net
誤)int型はmin以上max以下
正)int型はmin以上max未満
誤)float型はmin以上max未満
正)float型はmin以上max以下

170:名前は開発中のものです。
23/11/25 12:21:04.16 FGDWLLI7.net
>>168
>特定の数値をList<int>にぶち込んでこれ呼び出せばランダムな値取ってきてくれる
おお、そのやり方があった、、、ありがとうございます。
あとひとつだけ質問させてください。
配列に入ってる各オブジェクトの中で、
自分の手前(自分より添え字が若い方)の情報を取りたいんですが
何かいい関数、または方法ってありますか?
オブジェクトの中で 配列[自分より一つ若い添字].ゲッター で変数の情報を見たいんです。
自分の現在の添え字を出す関数があれば、-1でひとつ若い添字が出せるかなと思ってるんですが
そんなのありますか?

171:名前は開発中のものです。
23/11/25 12:29:11.75 6mVYgNka.net
 for (int i = 0; i < 5; i++)
ならi-1で取れるとして、foreachなら1つ前の値を持つローカル変数を用意する
 string prevValue = null;
 foreach (string value in strList)
 {
  // 何か処理(ここでprevValueを参照すると1つ前の値が取れる)
  prevValue = value;
 }
あるいはIndexOfで自分の位置を特定してから-1する
 List<string> strList = new List<string>() { "あ", "い", "う" };
 int index = strList.IndexOf("う");
 string prevValue = index != -1 && index >= 1 ? strList[index - 1] : null;
スマートにしたいならこれ↑をやってくれる関数を自作するとか

172:名前は開発中のものです。
23/11/25 15:29:37.69 CP8hzqFB.net
>>163,164
ありがとう やっぱり必要なものは必要だから仕方がないってことですかね
めちゃめちゃ苦労して大赤字で終了って辛い現実すぎる
ちなみに今すぐ買っておけっていうおすすめのAssetがあれば教えてください

173:名前は開発中のものです。
23/11/25 16:17:25.50 PO4/Hp6H.net
おすすめなんかどんなの作りたいのか知らんのに無責任に勧められんやろ

174:名前は開発中のものです。
23/11/25 16:31:59.02 75MeFtBw.net
>>172
まず何はなくともdotween。これは無料
個人的に欠かせないのはAnimancer
アニメーションイベントの使い勝手がデフォルトのものよりいい
VeryAnimation
アニメは価格が高いので簡単なものは自分で作ったほうが早い
Arbor3
ゲームの仕様によってはどうしてもビジュアルプログラミングの
ほうが都合がいいケースがある
そのときに俺の見立てで一番いいビジュアルプログラミングシステムがこれ
自作スクリプトとの連携が圧倒的にいい
あと
URLリンク(assetstore.unity.com)
このデベロッパーのアーセナルシリーズ
とにかくエフェクトの質が高い

175:名前は開発中のものです。
23/11/25 17:04:09.42 FGDWLLI7.net
>>171
すみません、
 string prevValue = null;
 foreach (string value in strList)
 {
  // 何か処理(ここでprevValueを参照すると1つ前の値が取れる)
  prevValue = value;
 }
このコードって相手がlistじゃ無くて配列でも使えますか?
あと目的の変数はintで、それぞれの変数の値がかぶっていないわけではないので
IndexOfで自分の位置を割り出すのは無理かと思います。

176:名前は開発中のものです。
23/11/25 17:11:03.39 FGDWLLI7.net
あと今配列を勉強してて新たに疑問に思うことがあるんですが
Array01 = new GameObject[10];
Array02 = new GameObject[10];
GameObject obj = (GameObject)Resources.Load("prefab_obj");
for (int i = 0; i < Array01.Length; i++)
{
Instantiate(obj, new Vector2(0.0f, 0.0f), Quaternion.identity);
}
for (int i = 0; i < Array02.Length; i++)
{
Instantiate(obj, new Vector2(0.0f, 0.0f), Quaternion.identity);
}
これで、prefab_objが詰まった配列のArray01とArray02が出来上がるんですが
それぞれのfor文の処理に配列のArray01とArray02を指定するコードがありませんよね?
なのになぜArray01とArray02にちゃんと入ったのか、不思議なんです。
というのも「Array01」「Array02」という記載は長さを返す「.Length」にしか使っていません。
それで配列まで指定したfor文になっているということでしょうか?

177:名前は開発中のものです。
23/11/25 17:11:15.12 PO4/Hp6H.net
配列にしてダメだった時のエラー書きなよ

178:名前は開発中のものです。
23/11/25 17:14:02.70 6mVYgNka.net
>>175
foreachはIEnumerable<T>から継承されたクラス全てで使える(配列、List<T>など)
for文は配列の要素にインデックスで参照できるクラス全てで使える(これも配列、List<T>など)
確かに値が被ってるとIndexOfは無理ですね、そうなるとprevValueのやり方が一番まともかも
>>176
それで配列に入ってたらバケモン
 Array01[i] = Instantiate(...);
しないと入らないはず

179:名前は開発中のものです。
23/11/25 17:25:23.98 FGDWLLI7.net
>>178
ですよね???
でも入ってるんです、ほんとに。
実行して、ちゃんと理想通りになってるんで
「なんで?」って思って質問させてもらいました。
厳密に記載すると
最初に定義もしてます。
public GameObject[] Array01;
public GameObject[] Array02;
void Start()
{
 Array01 = new GameObject[10];
 Array02 = new GameObject[10];
 GameObject obj = (GameObject)Resources.Load("prefab_obj");
 for (int i = 0; i < Array01.Length; i++)
 {
  Instantiate(obj, new Vector2(0.0f, 0.0f), Quaternion.identity);
 }
 for (int i = 0; i < Array02.Length; i++)
 {
  Instantiate(obj, new Vector2(0.0f, 0.0f), Quaternion.identity);
 }
}
これです。
これでちゃんと入ってるんですよ。
なぜです????

180:名前は開発中のものです。
23/11/25 17:28:56.76 75MeFtBw.net
>>179
おかしい

181:名前は開発中のものです。
23/11/25 17:30:05.57 6mVYgNka.net
>>179
えぇ・・・
そのArray01とArray02に外部からアクセスしててそっちでオブジェクトを代入する処理をしてるとかかなあ
 public GameObject[] Array01;

 [SerializeField]
 private GameObject[] Array01;
でも同じ結果になったらお手上げ

182:名前は開発中のものです。
23/11/25 17:31:02.65 6mVYgNka.net
あ、この場合[SerializeField]はなくてもOK
InspectorタブをDebugに切り替えればprivate変数の中身も見れる

183:名前は開発中のものです。
23/11/25 17:34:09.68 PO4/Hp6H.net
そもそも入ってるかどうか何処でチェックしてる?
START関数の最後に確認したら?

184:名前は開発中のものです。
23/11/25 17:37:24.49 FGDWLLI7.net
>>180
おかしいって言われましても。。。
ちなみに片方のfor文コメントアウトすると
配列はひとつだけになりますし、、、機能してるとしか。。
>>182
中身も入ってます、といってもprefabオブジェクト内の変数は
すべてプレハブのスクリプトの方で初期化してるんで
こっちでは2つの配列にプレハブを生成して入れてるだけの処理です。
皆さんにおかしいおかしい言われて、非常に今不安なんですけど、、、
自分のやり方おかしいのかなって。

185:名前は開発中のものです。
23/11/25 17:39:31.35 PO4/Hp6H.net
それプレハブだけ見てて、配列見てないやろ
配列にあるか無いかのチェック入れてみろっての
for文終わったとこに

186:名前は開発中のものです。
23/11/25 17:40:43.49 FGDWLLI7.net
>>183
再生したら、配列に突っ込んだオブジェクトが
10個ずつ描画(実際はfor文内でVector2の座標を増加させながら入れるんで)されてるんで、
これは全部ちゃんと入ってるってことじゃないですか?
そんなにおかしい状態ですか。。どういうことですか?

187:名前は開発中のものです。
23/11/25 17:43:34.87 CP8hzqFB.net
>>173
それはたしかに
色々あるけどまずは3Dのダンジョンゲーを作りたい
>>174
ありがとう助かります
AnimancerとVeryAnimationはちょうど買おうか迷っていたところでした
特にVeryAnimationはUMotionというのもあって両方カートに入れてました
下二つは初めて知りました よく調べてみます

188:名前は開発中のものです。
23/11/25 17:44:12.12 PO4/Hp6H.net
だから
for文の後にチェックコード書きなさい
それで分かるから

189:名前は開発中のものです。
23/11/25 17:44:46.17 FGDWLLI7.net
>>185
すみません、そのfor文のあとに
Debug.Logはなんて記載すればいいですか?
Debug.Log(ここに何書けばいいですか?);

190:名前は開発中のものです。
23/11/25 17:45:32.79 PO4/Hp6H.net
>>186
描画してんのはただ単にインスタントエイトしてるからやろ

191:名前は開発中のものです。
23/11/25 17:47:15.11 PO4/Hp6H.net
array01の最初はプレハブですか?ヌルですか
あとはChatGPTに聴け

192:名前は開発中のものです。
23/11/25 17:53:33.30 PO4/Hp6H.net
>>189

Debug.Log(array01[0].name);

これで何出るか
楽しもうか

193:名前は開発中のものです。
23/11/25 17:53:48.93 FGDWLLI7.net
>>191
あああああああああああああああああ
None、すなわちnullでした。。。
でもどういうことですか、、、
入ってないなら入ってないで、
なぜ座標がちゃんと入った
プレハブオブジェクトが配列の添字の数だけ並ぶんです?

194:名前は開発中のものです。
23/11/25 18:00:39.82 6mVYgNka.net
ちょっと待ってDebug.Log(array01[0].name);でヌルポじゃなくてNullなの・・・?
まぁ見なかったことにしよう

Instantiate(obj);はobjを複製してシーンに配置する関数
つまり、複製されたやつが画面上に配置されてたのを見ただけ
Array01にぶち込んだところまでは確認できていなかったということ

195:名前は開発中のものです。
23/11/25 18:02:22.81 FGDWLLI7.net
でも、なんか納得できません。
for文の両方をコメントアウトして再生押すと
プレハブのオブジェクト自体の存在も無くなります。

for文の処理はプレハブを配列数分作るカギになってると思います。
どういうことでしょうか。。。。。。。

196:名前は開発中のものです。
23/11/25 18:06:36.44 FGDWLLI7.net
>>194
Debug.Log(array01[0].name);は
オブジェクト参照がオブジェクトのインスタンスに設定されていません
のエラーが出ました。

197:名前は開発中のものです。
23/11/25 18:08:56.88 6mVYgNka.net
// ログに10回「うんち」と表示する
 for (int i = 0; i < Array01.Length; i++)
 {
  Debug.Log("うんち");
 }

// ログに10回「うんち」と表示して、うんちの末尾に0~9を割り振る
 for (int i = 0; i < Array01.Length; i++)
 {
  Debug.Log("うんち" + i);
 }
 // ログ「うんち0」
 // ログ「うんち1」
 // ログ「うんち2」
 // 以下略

198:名前は開発中のものです。
23/11/25 18:09:09.19 FGDWLLI7.net
Debug.Log(array01[0]);だと
Nullでした。

199:名前は開発中のものです。
23/11/25 18:09:10.13 6mVYgNka.net
// 画面にobjの複製オブジェクトを10個作る(全部同じ座標)
 for (int i = 0; i < Array01.Length; i++)
 {
  Instantiate(obj, new Vector2(0.0f, 0.0f), Quaternion.identity);
 }

// 画面にobjの複製オブジェクトを10個作る(少しずつ座標を変える)
 for (int i = 0; i < Array01.Length; i++)
 {
  Instantiate(obj, new Vector2(i, 0.0f), Quaternion.identity);
 }


// 画面にobjの複製オブジェクトを10個作って配列にぶち込み、複製オブジェクトの名前を「うんち&添え字」に変えて結果を確認する
 for (int i = 0; i < Array01.Length; i++)
 {
  Array01[i] = Instantiate(obj, new Vector2(i, 0.0f), Quaternion.identity);
  Array01[i].name = "うんち" + i;
 }
 
 Debug.Log(Array01[4].name); // ログ「うんち4」

200:名前は開発中のものです。
23/11/25 18:11:54.26 PO4/Hp6H.net
ID:6mVYgNkaさん優しい
惚れそう

ドーンおじもこれくらいやれたらなぁ

201:名前は開発中のものです。
23/11/25 18:13:23.28 PO4/Hp6H.net
まぁそもそも配列にぶち込むのと
生成処理を一緒にやろーなど
初心者にはラベルが高かったんや

202:名前は開発中のものです。
23/11/25 18:15:56.11 3GSRLZ8G.net
言語自体をもう少し勉強したほうがいいレベルだな

203:名前は開発中のものです。
23/11/25 18:19:16.69 FGDWLLI7.net
とりあえず、これで↓配列内にはプレハブが入ってくれました。
記述からして当然なんですけど。。。
public GameObject[] Array01;
public GameObject[] Array02;
void Start()
{
 Array01 = new GameObject[10];
 Array02 = new GameObject[10];
 GameObject obj = (GameObject)Resources.Load("prefab_obj");

 for (int i = 0; i < Array01.Length; i++)
 {
  Array01[i]=Instantiate(obj, new Vector2(0.0f, 0.0f), Quaternion.identity);
 }
 for (int i = 0; i < Array02.Length; i++)
 {
  Array02[i]=Instantiate(obj, new Vector2(0.0f, 0.0f), Quaternion.identity);
 }
}

ただ、自分が知りたかったのは
Array01,Array02を指定しなくても座標が変わりながらの
ちゃんとArray01,Array02の添字分、
プレハブオブジェクトが並んだことです。。
for文を消せば、それぞれのプレハブも存在しないんです。

204:名前は開発中のものです。
23/11/25 18:20:31.48 FGDWLLI7.net
あ、それぞれVector2(i, 0.0f)です。座標変えながらです。

205:名前は開発中のものです。
23/11/25 18:21:55.95 Og5vMXyN.net
unityでファミコンのスプライトオーバーの再現やった人いますか

206:名前は開発中のものです。
23/11/25 18:22:49.76 6mVYgNka.net
>>203
Instantiate(obj, new Vector2(i, 0.0f), Quaternion.identity);
↑これだけ
これだけで、「座標(0, 0)にobjを複製してシーンに配置する」までやってくれる
for文を消すというか、Instantiateしなければプレハブオブジェクトはシーンに生成・配置されないから並ばんよ

207:名前は開発中のものです。
23/11/25 18:27:17.96 FGDWLLI7.net
>>206
ああ、つまり配列には入れないけど、
プレハブオブジェクトの生成はしてるってことですね。
ありがとうございます。

相手してくださった皆さまもありがとうございました。
これからも勉強します。

208:名前は開発中のものです。
23/11/25 18:31:44.66 PO4/Hp6H.net
もし気になるなら

 for (int i = 0; i < Array01.Length; i++)
 {
  Array01[i]=Instantiate(obj, new Vector2(0.0f, 0.0f), Quaternion.identity);
 }
 ちゃんとArray01,Array02の添字分、
プレハブオブジェクトが並んだことです。。

このfor文のArray01.Lengthを9にしたり、11にしたりして再生すりゃいい
それぞれ何処までも配列入るかみりゃわかるよ

209:名前は開発中のものです。
23/11/25 18:33:31.35 PO4/Hp6H.net
ま配列やる場合、テスト的には少ないのでやるのが最初はオススメやね最低の数で

210:名前は開発中のものです。
23/11/25 19:28:39.77 dzXcaoGO.net
PS1のテクスチャとかSFCのドット絵くらいの解像度の画像をローポリ3Dモデルにタイリングで貼りたいんだけど、
タイルを一枚一枚を別の画像として取り込むのと、一枚の画像に詰め込んでシェーダー側で座標を指定して表示するのとでは、どっちのほうが動作時のパフォーマン良いですか?

staticを適用するモデルが99%になる予定で、タイリングはモデル側のUV展開で実装します

211:名前は開発中のものです。
23/11/25 19:30:09.75 dzXcaoGO.net
>>210
staticを適用するのはシェーダーで座標指定をしない場合の話です
staticにするとシェーダーによる座標していが効かなくなるので

212:名前は開発中のものです。
23/11/25 19:31:29.25 tUq1KY+K.net
作られたオブジェクトのスクショが有ればすぐ判明したことでは?

213:名前は開発中のものです。
23/11/25 20:16:45.79 c7/JKC6p.net
こんにちは。
今まで一つのプロジェクトにマテリアルやらスクリプトを詰め込んで、複数のゲーム素材を一緒にしてたんですが
プロジェクトを分けようと思って、新規プロジェクトを開いてそこにスクリプトを移したらスクリプトクラスが見つからなくなってしまいました
原因は恐らくどこかでスクリプトクラス名が被っているファイルが点在しているからだと思うんですけど
別プロジェクトでも同じ名前のスクリプトは使えないのでしょうか?
unity側で被っているのか、VisualStudio側で被っているのかも検討つきません
今からまた調べますが何か対処法ありませんでしょうか

214:名前は開発中のものです。
23/11/25 20:30:31.32 c7/JKC6p.net
>>213
スクリプトクラスが見つかってないのは新規プロジェクト側でして
スクリプトの名前を変えるのは根本的な解決というか理解に至らないので出来ればやめようと思ってるんですけど。
ファイルがある場所をunityハブのプロジェクト名の横の3点リーダー…からファイルを開いて、新規プロジェクトのアセットのとこに直接ぶち込んだんですよね。

215:名前は開発中のものです。
23/11/25 20:38:13.49 6mVYgNka.net
>>213
(なんかわいのぶち込むって言い回しがこのスレ内で伝染してるな・・・)
UnityプロジェクトのAssetsフォルダ内に資産一式を配置することになると思うけど、この中でクラス名の重複は認められない
実質的にスクリプトファイル名の重複も認められてない
一応C#のnamespaceっていう仕組みを利用すれば重複可能になるけど、C#の理解が浅いうちは無暗に首ツッコまないほうがいいかも
ということでAssetsフォルダ内の全csファイルのクラス重複確認をすれば解決する・・・はず

216:名前は開発中のものです。
23/11/25 20:48:46.18 c7/JKC6p.net
>>215
返信ありがとうございます!
一応アセット内での被りは無さそうなんですよね。unityのウィンドウ内で出来る範囲とは別に、PC側のファイルの保存フォルダ側に問題あるのかなって気もしてます
ちなみにこのスレを開くのは初めてなので言い回しは残念ながら偶々です。

217:名前は開発中のものです。
23/11/25 21:04:25.66 9rpRVGI9.net
>>166
SSDはどれくらいあればいいの?
何とかも初心者やから分からんけど
ゲーム作るのにSSD容量は結構大事なの?

218:名前は開発中のものです。
23/11/25 21:22:04.21 tUq1KY+K.net
>>217
SSDは持ち運びする&iPhoneなどのバックアップ入れるなら大目に。そうでなけりゃできれば512もあればよろし。
256にするとどうなるかはわかんないけど、最近のアプリを見るとちょっと心許なく。

219:名前は開発中のものです。
23/11/25 21:24:36.25 tUq1KY+K.net
プロとしてやっていくなら、もりもりでw
最初ちょろちょろ、あとモリモリでもいいけどそれが良いかは結果の後にわかる事なので、最初からモリモリなら本気度マックス、とか形からでw

220:名前は開発中のものです。
23/11/25 21:28:38.36 c7/JKC6p.net
>>216
PC側のファイルフォルダを見てみたら2つのプロジェクトファイルが作成されてて同じスクリプトファイルが生成されてます
でもそれ以外に不審な点は見つからないですね。これがダメならプロジェクト別でもスクリプトクラスが被ったらダメってことなんですかね…?
VisualStudio側でプロジェクトが分けられていない?とかネットに書いてあったのでVisualStudioも見てみようかな…初心者だし手探りで頭が痛いよ…

221:名前は開発中のものです。
23/11/25 21:33:14.98 6mVYgNka.net
>>220
Everythingっていうソフトおすすめ
「"C:\aaa" .cs」って検索するとC:\aaaフォルダの下にいる拡張子が.csのファイルを全部一覧表示してくれる
それで特定のプロジェクトフォルダ配下に名前ソートかけて同名のcsファイルが2ついないか見るとか

222:名前は開発中のものです。
23/11/25 21:53:05.91 c7/JKC6p.net
>>221
ありがとうございます!他に手立てがないんで一旦試してみようかと思います。
ちなみにVisualStudio側はプロジェクト分けられてるっぽいですね。じゃあ何がダメなんだろう

223:名前は開発中のものです。
23/11/25 22:15:04.00 c7/JKC6p.net
>>221
検索かけてみましたら、先述したファイルに被りがあるのみ。これ以上時間もかけたくないのでスクリプトクラス名を新しくしようと思います。笑
ありがとうございました!

224:名前は開発中のものです。
23/11/25 22:19:21.88 9rpRVGI9.net
>>218
色々調べてるけど
新型の情報はないのかな?
まあ新型出ても初めは高いだろうし
MacBook AirM2かMacBook ProM3かで悩む
14インチと15インチ、16インチの違いはどう?

225:名前は開発中のものです。
23/11/25 23:40:04.33 PO4/Hp6H.net
SSD?
君たちまだストレージ保管してんの?

そんなンクラウドでええやん

226:名前は開発中のものです。
23/11/26 00:32:27.32 m41MARBn.net
どこのクラウドがいいの?

227:名前は開発中のものです。
23/11/26 05:23:57.71 ZwpA0qEM.net
やめなよ

228:名前は開発中のものです。
23/11/26 06:44:39.83 m41MARBn.net
>>227
このハゲ!

229:名前は開発中のものです。
23/11/26 07:27:15.33 J5rQpI/4.net
完全につまずいてしまいました。どうかお知恵を貸してください。
配列[10]に詰め込んだオブジェクトの中に変数aがあります。
ゲームマネージャーの方で毎回for文で配列の要素内の変数aを確認して、
該当した場合にそのオブジェクトの変数bにtureを代入する。
ということをやりたいです。
文字で説明するとしごく単純な作業なんですが、これがうまくいきません。
自分の考え方としては、ゲームマネージャーの方で配列内を確認するために
for (int i = 0; i < 10; i++)
{
if(配列[i].変数A < 2)
   {
配列[i].変数B = true;
   }
   }
してやるだけなはずなんですが、、、、
この配列はゲームマネージャーで最初宣言したもので、
配列内の変数は各オブジェクトがもっているものです。
各オブジェクトには読み書きできるメソッドは作ってます。
public int 変数A{ get { return 変数a; } set { 変数a = value; } }
public bool 変数B{ get { return 変数b; } set { 変数b = value; } }
でも、下記のままでは「GameObject」には「変数A」の定義が含まれておらず〜」とエラーが出ます。
for (int i = 0; i < 10; i++)
{
if(配列[i].変数A < 2)
   {
配列[i].変数B = true;
   }
   }
これが機能するようにするために、何が足りないのか、教えてください。

230:名前は開発中のものです。
23/11/26 07:46:45.71 ap8K17/p.net
文面から配列にはGameObjectが入っているものと推測する
それで変数Aや変数Bを定義してるコンポーネントはHogehogeクラスとする
この場合、配列はGameObject[]ではなくHogehoge[]でないといけない
あるいはGameObjectの配列の要素に対してGetComponentしてHogehogeを取得する
 Hogehoge hooo = 配列[i].GetComponent<Hogehoge>();
GameObjectはGameObjectの情報しか持ってないので、Hogehogeの変数を参照しないとHogehogeの情報にはアクセスできない

231:名前は開発中のものです。
23/11/26 08:27:07.96 m7xu9wcS.net
エラー本文とコード見てないからわからんけど、書き方的にGameObjectからそのまま参照しようとしてそうだね

232:名前は開発中のものです。
23/11/26 09:05:47.93 J5rQpI/4.net
>>230
>文面から配列にはGameObjectが入っているものと推測する
その通りです。
>それで変数Aや変数Bを定義してるコンポーネントはHogehogeクラスとする
Hogehogeクラスとします。
>この場合、配列はGameObject[]ではなくHogehoge[]でないといけない
ここの意味が理解できません。
ゲームマネージャークラス内で宣言した配列に、オブジェクトを入れています。
Hogehogeという名の配列はどこにも存在していません。
それでもHogehoge[]を記述できるんですか?
でも
for (int i = 0; i < 28; i++)
{
if(Hogehoge[i].変数A < 2){
Hogehoge[i].変数B = true;
}
}
ではエラーになりました。
「「Hogehoge」はタイプです。指定されたコンテキストでは無効です」というエラーです。
Hogehoge hooo = 配列[i].GetComponent<Hogehoge>();を使う場合だと
「型または名前空間名 'Hogehoge' が見つかりませんでした」とエラーになります。
>GameObjectはGameObjectの情報しか持ってないので、
>Hogehogeの変数を参照しないとHogehogeの情報にはアクセスできない
ここの理屈は理解できます。。。
記述するとき「配列[1].Hogehoge.変数A」見たくなる感じですか?

233:名前は開発中のものです。
23/11/26 09:27:49.83 qtPMCWA8.net
独自クラスをchatGPTで、聞いてね

234:名前は開発中のものです。
23/11/26 09:29:50.22 qtPMCWA8.net
変数Aを定義したC#よファイルに名前付けたでしょ?
それな、クラス名やぞ

235:名前は開発中のものです。
23/11/26 09:47:00.82 J5rQpI/4.net
>>234
理解しています。
ここではHogehogeと記載してますが
ちゃんと変数Aを記載しているクラス名を
コードの方では書いてるんです。
それでも>>232に書いたエラーになります。
シングルトンしてないとダメとか、
ゲームマネージャーのスクリプトのusingに記載しないといけないとか
別にないですよね??

236:名前は開発中のものです。
23/11/26 10:01:19.86 J5rQpI/4.net
<gamemanager.cs>←空のオブジェクトにくっつけてます
public GameObject[] Array01;
void Start(){
Array01 = new GameObject[10];
GameObject obj = (GameObject)Resources.Load("プレハブ名");
for (int i = 0; i < Array01.Length; i++)
{Array0[i] = Instantiate(obj, new Vector2(i,0.0f), Quaternion.identity);}
}

<prefab_object.cs>←プレハブ化したオブジェクトにくっつけてます
public int variable_a = 0;
public int Variable_a{ get { return variable_a; } set { variable_a = value; } }

簡易版で説明しますと、↑この状況なだけです。
これで、<gamemanager.cs>のvoid Update()の中で<prefab_object.cs>のVariable_aを利用したいんです。
<gamemanager.cs>内に
「Debug.Log(Array01[0].Variable_a);」と記載したらエラーが出ます。
「Debug.Log(prefab_object[0].Variable_a);」と記載したらエラーが出ます。
「Debug.Log(Array01[0]);」と記載してもエラーが出ます。
「Debug.Log(prefab_object[0]);」と記載してもエラーが出ます。

237:名前は開発中のものです。
23/11/26 10:02:55.92 ap8K17/p.net
// Hogehoge.cs
public class Hogehoge : MonoBehaviour
{
 public int 変数A{ get { return 変数a; } set { 変数a = value; } }
 public bool 変数B{ get { return 変数b; } set { 変数b = value; } }
}

// GameManager.cs
public class GameManager : MonoBehaviour
{
 public GameObject[] objects;

 // ?

 private void Start()
 {
  int aaa = this.objects[0].変数A; // ?
  int bbb = this.objects[0].GetComponent<Hogehoge>().変数A; // ?
 }
}

GameManagerの?はthis.objects[0]を見ている=GameObjectクラスを見ているので、GameObjectに変数Aがなくてエラーになる
?はthis.objects[0](GameObject)からHogehogeクラスを取得してHogehogeクラスを見ているので、Hogehogeの変数Aを見てエラーにならない

ただしGetComponentはコストが高い処理なので、毎フレーム実行する必要がある場合などはクラス変数(?)にHogehogeの変数を定義しておきそれにアクセスするほうが低コスト
 public Hogehoge[] hogehoges;

238:名前は開発中のものです。
23/11/26 10:30:50.60 sKe5WX7u.net
>>235
理解してないからGameobjectの配列作ってるんでしょ、と書こうとしたら
>>237さんが、答え
イケメン

手取り足取りでみんな優しい
これで理解もしないクソプログラマーが生まれる

239:名前は開発中のものです。
23/11/26 10:32:30.63 ap8K17/p.net
教えすぎないほうがいいのかなあ

240:名前は開発中のものです。
23/11/26 10:39:04.38 J5rQpI/4.net
>>239
>教えすぎないほうがいいのかなあ

そんなことありません。
正解を教えて頂いたあと理解するため自分で何度も理解する様努めますし。
もちろん、理解しないままでいいやって人もいるでしょうけど
自分は次から自分のものにしないと意味がないとわかっているので
答えを知ったら終わりのつもりありません。
ただ、自力で答えにたどり着くには独学や人の限られたブログなどでは
行き着けない場合もあるんです。
そんな時、あなたの様にスパッと答えを教えて頂けるのは非常にありがたいと思っています。
ありがとうございます。

すみません、
>Hogehogeの変数を定義しておきそれにアクセスするほうが低コスト
>public Hogehoge[] hogehoges;
について、もう少し具体的に解説お願いできないでしょうか。

241:名前は開発中のものです。
23/11/26 10:48:37.62 J5rQpI/4.net
>毎フレーム実行する必要がある場合などは
>GameManager.csのクラス変数に
>Hogehogeの変数を定義

public Hogehoge[] hogehoges;
これでHogehoge型の配列を作っても
hogehogesはまだ空の状態ですよね?
hogehoges = new Hogehoge[10];みたいなのやんないと
アクセスできませんか?

242:名前は開発中のものです。
23/11/26 10:59:45.33 ap8K17/p.net
>>240
C#というかUnityと付き合っていけばいずれパフォーマンスの最適化という壁にぶち当たる日が来る
そうなった時、というかそうなった時には大抵手遅れだから、同じ結果が得られるならコストが低い処理を極力使ったほうがいい

GameObject obj1; という変数があるとして、このobj1にアタッチされたHogehogeコンポーネントにアクセスしたい場合
 Hogehoge hooo1 = obj1.GetComponent<Hogehoge>();
でアクセスすることは可能

ただしGetComponentを1回実行すると、GC.Allocというメモリ上のゴミが発生する上にこれ自体の所要時間も結構なものだから、GetComponentはコストが高い
「私1フレーム内でGetComponentを10回使ってるんですよ~」とか言ったら吐き気を催される
なのでGetComponentの使用回数は最小限に減らさなければいけない
1つのプレハブを複製するというのが要件にあるようだから、それを加味したうえでGetCompoenentの使用回数を最小限に減らすと

243:名前は開発中のものです。
23/11/26 11:00:07.84 ap8K17/p.net
こうなる↓

public class GameManager : MonoBehaviour
{
 GameObject prefab;
 Hogehoge[] hogehoges;

 private void Start()
 {
  hogehoges = new Hogehoge[10];
  for (int i = 0; i < hogehoges.Length; i++)
  {
   GameObject obj = Instantiate(prefab); // プレハブから複製オブジェクトを生成・配置する
   hogehoges[i] = obj.GetComponent<Hogehoge>(); // 複製オブジェクトからHogehogeコンポーネントを取得して、配列hogehogesにぶち込む
   obj.localPosition = new Vector3(i, 0f, 0f); // 位置を変更
   obj.localPosition = Quaternion.identity; // 角度を変更
  }
 }

 private void Update()
 {
  for (int i = 0; i < hogehoges.Length; i++)
  {
   hogehoges[i].変数A = hogehoges[i].変数A + 1; // 【A】
  }
 }
}

こうすれば毎フレームのHogehogeのアクセスはクラス変数にキャッシュした値へのアクセスになるので、パフォーマンスは最適化されたことになる
GetComponentもそうだしInstantiateもそうだけど、UnityEngine傘下で定義された変数や関数は高コストという認識でおk
Hogehoge[] hogehoges; みたいに自分で作成したコンポーネントやクラスの傘下に定義された変数や関数なら低コスト

244:名前は開発中のものです。
23/11/26 11:18:12.87 ap8K17/p.net
あ、>>243
   obj.localPosition = new Vector3(i, 0f, 0f); // 位置を変更
   obj.localPosition = Quaternion.identity; // 角度を変更

   obj.transform.localPosition = new Vector3(i, 0f, 0f); // 位置を変更
   obj.transform.localPosition = Quaternion.identity; // 角度を変更
が正しい
でも、このobj.transformもUnityEngine傘下の変数なので・・・あとは分かるだろうか

245:名前は開発中のものです。
23/11/26 11:24:49.94 sKe5WX7u.net
ホビーストクリエイターならコストとか処理遅いとか気にしなくてもいいよ
ここに来るのはそういうのが大半でしょ
本格的な売り物なら別にだけどね

246:名前は開発中のものです。
23/11/26 12:29:20.67 RHrCXnE8.net
ホビー云々関係なく、気になる問題は潰した方が将来のためだよ
不要なAPIコール抑えるのはプログラミングの基本
処理負荷気にしないプログラマは仕事でも品質悪いコードを書く

247:名前は開発中のものです。
23/11/26 12:33:35.93 RHrCXnE8.net
>>242
GetComponentはGC発生しないよ
発生するのはGetComponentsなどの配列返すほう
あと、GetComponentは意外とそこまで遅くない
プロファイラを見るとわかる

248:名前は開発中のものです。
23/11/26 12:39:02.58 ap8K17/p.net
あああ配列を生成するためのGCが発生してんのか
nameとかtagみたいにアクセスするだけでGCが発生する組だと思ってた
UpdateでGetComponentするなは割とよく言われてる気がする
URLリンク(www.google.com)

249:名前は開発中のものです。
23/11/26 12:44:50.43 sKe5WX7u.net
それの一発目のテラのやつは問題ありませんキリッって、書いてるが
まぁ大してとかある程度とかの体感記事などほとんどがスペック、時間という物を提示しないで、遅いとか重いとか言ってるとこのをベースに広まってるよね
所詮ハードが1年進化するだけでも重さなんか気にするほどじゃねーよ

250:名前は開発中のものです。
23/11/26 13:06:00.31 RHrCXnE8.net
まじで他人の意見を鵜呑みにしてはいけないとはこのことw
自分はプロファイラ載せてる記事だけ見るようにしてる
ただ、UpdateでGetComponentは無駄なので、キャッシュするに越したことはないとは思ってる
Componentなんてほぼ静的だし

251:名前は開発中のものです。
23/11/26 13:13:11.53 kOB5vzh5.net
要するに他のスクリプトにアクセスするのにGetComponent使わないと
いけないことを知らないだけだな

252:名前は開発中のものです。
23/11/26 13:33:35.58 ap8K17/p.net
2022/8/15 サイバーエージェントのパフォーマンスチューニングバイブル
URLリンク(github.com)
9.3 コンポーネントの取得
同じ GameObject にアタッチされている他のコンポーネントを取得する GetComponent() も注意が必要な 1 つです。
前節の tag プロパティや name プロパティ同様にネイティブコードで実装された処理を呼び出していることもそうですが、指定した型のコンポーネントを「検索する」コストがかかることにも気をつけなければなりません。
下記サンプルコードでは毎フレーム Rigidbody コンポーネントを検索するコストがかかることになります。頻繁にアクセスする場合は、あらかじめキャッシュしたものを使い回すようにしましょう。
毎フレーム GetComponent() するコード
void Update()
{
 Rigidbody rb = GetComponent<Rigidbody>();
 rb.AddForce(Vector3.up * 10f);
}


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch