【ゲームエンジン】Unityなんでも質問スレpart12at GAMEDEV
【ゲームエンジン】Unityなんでも質問スレpart12 - 暇つぶし2ch200:名前は開発中のものです。
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);
}

253:名前は開発中のものです。
23/11/26 13:35:36.82 ap8K17/p.net
ついでに2022.3.10f1で検証してきた
URLリンク(i.imgur.com)
この差を気にするか気にしないかはきのこたけのこ張りの宗教戦争なので、きのこが好きかたけのこが好きかによって意見が真っ二つやね

254:名前は開発中のものです。
23/11/26 13:49:05.74 sKe5WX7u.net
まぁ初心者のときにやることとして
アップデートでprintするとメチャログ埋まるやん
それを見て、あっやべーアップデートでそういう事しちゃあかんなと思えればいいんでねーかな
printですらこんなに沢山なんだから他の処理やったら大変だ!と思えればキャッシュしてやろーって思わないなら向いてね~ってことで(笑)

255:名前は開発中のものです。
23/11/26 14:08:31.06 kOB5vzh5.net
俺がGetComponetするのはStartかAwakeの中
それと何かと衝突した時とかの特定のイベント時くらいかな
Updateの中で常時使わないね

256:名前は開発中のものです。
23/11/26 14:13:45.97 J5rQpI/4.net
神々が言い争ってるみたいですが、
結局、私はupdate()内でGetComponent() を記載しまくっても
さほど問題にはならないということでしょうか?

257:名前は開発中のものです。
23/11/26 14:17:57.98 RHrCXnE8.net
例えどんなにマシンのスペックが上がったとしても
要求される表現のハードルが上がるだけなので宗教もクソもない
無駄な負荷のかからない「当たり前」のコードを書く習慣をつけておけばいいだけ
PS5やPCゲーム主流の現在でも、何故パフォーマンスチューニングなるものが必要なのか考えればわかる話

258:名前は開発中のものです。
23/11/26 14:21:07.35 ap8K17/p.net
その当たり前の物差しが万人共通であればの話ね

259:名前は開発中のものです。
23/11/26 14:24:26.35 aCF9jYUz.net
GCのスパイクは塵積だし、いざ原因を探そうって時に心当たりが山盛りあったら手に負えなくね?

260:名前は開発中のものです。
23/11/26 14:29:32.88 J5rQpI/4.net
現状、
<GameManager.cs>
void Update()
{
 for (int i = 0; i < Array01.Length; i++)
 {
    if(i == 10){
     this.objects[0].GetComponent<Hogehoge>().変数B = this.objects[I].GetComponent<Hogehoge>().変数A;
 }else{
this.objects[i+1].GetComponent<Hogehoge>().変数B = this.objects[I].GetComponent<Hogehoge>().変数A;
 }
}
で正しく動いてくれました。
で、>>243さんのご指摘にある「GetComponentをupload()に書くのは好ましくない」というご意見から
今、>>243さんの記述してくれたコードを理解して
それを実装して、これと同じことを再現しようとしています。
ただ、this.objects[添字].GetComponent<Hogehoge>().変数名;という1文だけで
済んでいる現状で問題ないなら分かりやすいこの記述方法で行きたいなあというのが正直なところです。

261:名前は開発中のものです。
23/11/26 14:33:47.06 RHrCXnE8.net
少なくとも関数コールの結果をキャッシュして無駄な計算を減らすと良いのは
プログラミングとして当たり前の概念
たとえばsin,cosなどの関数は引数に対して結果が同じだから、
キャッシュしておくと高速化できる
可読性を落としてまでGetComponentケチれとは言わないが
Updateで毎回コールするくらいなら変数にキャッシュすれば済むので手間じゃないだろう
あと、
GetComponent<Hoge>.Fuga();
GetComponent<Hoge>.Piyo();
みたいに続けざまに書くのもヤメレw

262:名前は開発中のものです。
23/11/26 14:38:54.57 ap8K17/p.net
まあ今はUnity勉強中で動けばなんでもOKだろうから毎フレームGetComponentでも別に問題ないよ
ただ259みたいな宗派もいることは頭の片隅に置いといてね

263:名前は開発中のものです。
23/11/26 14:43:48.07 RHrCXnE8.net
UpdateでGetComponentはまだわかるがUpdateでGCは流石にないw
過去にこう言うコード書く奴が居て >>259 のような悪夢が襲って大変な目に遭ったことがあったんよ
プレイしてると何故か引っかかった動きをするんだもん
Incremental GCもフレーム分散するだけだからUpdateでGCには効果なし

264:名前は開発中のものです。
23/11/26 14:48:03.88 J5rQpI/4.net
>動けばなんでもOKだろうから
いや、そこまで妥協したいというわけでも無いです。。。
その、>>243にあるコードって、
現在自分が書いてる<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);}
}
で、いうと、
GameObject型の配列じゃなく、prefabのクラス型で配列を宣言して、
あとは同じことをしてその配列に突っ込みなさいって感じですか?
で、prefabのクラス型で配列で作ったら、いちいちGetComponentしなくてもいいよって
理解で正しいですか?

265:名前は開発中のものです。
23/11/26 14:57:45.07 o5cSag8H.net
いつになくスレがまともだ。。。

266:名前は開発中のものです。
23/11/26 14:58:57.43 ap8K17/p.net
>>264
それで大丈夫
ちなみに今ここには《動けばいい派 >>245》《コードに無駄が無ければいい派 >>261》《可読性を落としてでも速度を最重視したい派 ワイ》がおるでな
Unityへの理解が深まれば宗派も二転三転すると思うけど頑張って

267:名前は開発中のものです。
23/11/26 15:05:48.10 uqB1fo0P.net
GetComponentをUpdateの中で呼ぶにしても先にnullチェックするだけで効率化されるのにUpdate毎にGetComponent呼ぶのは流石にアホのすること

268:名前は開発中のものです。
23/11/26 15:10:57.38 RHrCXnE8.net
そんな時はTryGetComponentを使うのがおすすめ
nullチェック相当も全部これで間に合う

269:名前は開発中のものです。
23/11/26 15:15:03.57 RHrCXnE8.net
ああ間違ったキャッシュ変数のnullチェックのことね
それならどっち道必要だわごめん

270:名前は開発中のものです。
23/11/26 15:25:20.80 ap8K17/p.net
Unity2019辺りで
 GameObject obj = Instantiate(prefab);
 DestroyImmediate(obj);
 Debug.Log(obj?.name);
みたいなコード書いたらヌルポだったんだけど、Unity2022辺りは改善されたのかな
こういう細かい仕様って今日みたいな機会でもないとわざわざ調べる気にならんのよね・・・

271:名前は開発中のものです。
23/11/26 15:33:06.23 J5rQpI/4.net
>>266
ありがとうございます。がんばります!!
絶対Unityから逃げません!
今作ってる処女作が完成したら、ここで皆さんに配布させてください!
絶対「面白い」って言わせてみせます!
(それまでに何度かまた障害にぶつかると思うんでまた相談させてください)

272:名前は開発中のものです。
23/11/26 16:00:34.31 sKe5WX7u.net
宗派かぁ
癌になるから肉食わない
ビーガンなので肉食わない
ビールも酒も飲む
宗教で禁止されてるから飲まない
どれもすんげー長生きするとかしてないじゃん、これで二百年生きますならそれすればいいけど、二百年生きてヨボヨボじゃね
パソコンもソフトも変わらんよ
OSはますます肥大化してるんだし
いくらアプリの細かいところをやったところでね
処女作ならサクッと完成品作って動く喜び味わうのがいいよ
動かしてみて引っかかるとかの現象が起きればそれは改良するチャンス
次に活かせばいいだけや
まずは完成品やで

273:名前は開発中のものです。
23/11/26 17:30:21.75 J5rQpI/4.net
すみません、
>>243さんのコード試してみてるのですが
GameObject obj = Instantiate(prefab); // プレハブから複製オブジェクトを生成・配置する
で、
「インスタンス化したいオブジェクトが null です」とエラーが出ます。

自分もコードみてて気になってたんですが、
自分が書いてたコードの時でいうところの
GameObject obj = (GameObject)Resources.Load("プレハブの名前");みたいに
どこかでプレハブ化しているオブジェクトの名前を記述しなければならない気がするんですが
違いますか?
例えば、
public GameObject prefab;
void Start()
{ GameObject obj = Instantiate(prefab); }
これでは、prefabにはなにも入っていません。
記述漏れかな?とか。

274:名前は開発中のものです。
23/11/26 17:37:44.06 sKe5WX7u.net
パブリックなんだからインスペクタで指定してるんでしょきっと

275:名前は開発中のものです。
23/11/26 17:49:39.47 ap8K17/p.net
>>273
MonoBehaviourを継承したスクリプトがアタッチされたオブジェクトが予めシーンのどこかに配置されてる前提になるけど、このオブジェクトを選択するとInspectorにpublicの変数が表示されてそこにオブジェクトを指定したりできるようになる
243はその前提のコードになってる

276:名前は開発中のものです。
23/11/26 17:56:54.74 wJ4Ewbd+.net
(0,0,0)にあるオブジェクトの情報を取得する方法が知りたいんですが、
レイを飛ばすのとコライダーを使う以外に手っ取り早い方法ってないのでしょうか?
オブジェクトを(0,0,0)ちょうどに置くので余計なことをしないでgameobject関数に入れたいのですが…

277:名前は開発中のものです。
23/11/26 18:17:53.87 J5rQpI/4.net
>>275
ほんとだ、ゲームマネージャーのスクリプトのインスペクタに
prefabの枠ができてました!
初歩的なことかもしれませんが
プレハブ化したオブジェクトをその枠にドラッグしようとしたら
プレハブクリックしたらプレハブのインスペクタに切り替わっちゃうんですが
これ、どうすればいいんですか?^^;

278:名前は開発中のものです。
23/11/26 18:19:48.20 J5rQpI/4.net
あー、すみません。
ドラッグじゃなくて、枠のほうで選べるんですね
すみません。解決しました。

279:名前は開発中のものです。
23/11/26 18:21:25.49 nqSny9Yy.net
みんなはどんなPCでゲーム制作してるの?
MacBookかWindowsPCかで悩むわ
どっちにしてもデスクトップは置き場ないから
ノートPCになる

280:名前は開発中のものです。
23/11/26 18:21:35.61 sKe5WX7u.net
>>276
シーンにあるobjectを一覧にしてそのトランスフォームが原点か否か見ればよくね?

281:名前は開発中のものです。
23/11/26 18:32:14.78 J5rQpI/4.net
うおおおおおおおおおおおおお!!!
すごいっす!!!!
>>243さん、すごいっす!!!
update()内にGetComponent無しで
完全に一緒の状況になりました!!!
これで前より軽くなってるってことですよね!
すごいっす!感動です!

282:ドーンおじ
23/11/26 18:42:25.15 vo5TLBjQ.net
ID:J5rQpI/4のおかげでこのスレのレベルが格段に上がった!褒めて使わす!m9⎛´・ω・`⎞ドーン!

ID:sKe5WX7uのせいで低クオリティになってる!消えろ!死ね!m9⎛´・ω・`⎞;y=ー(゚д゚)・・∵. ドーン!

283:名前は開発中のものです。
23/11/26 18:52:37.05 kOB5vzh5.net
>>279
ノートpc は向いてない
デスクトップで4Kテレビにつなげて製作してる

284:名前は開発中のものです。
23/11/26 19:21:28.97 wJ4Ewbd+.net
>>280
すいません、スクリプトで取得したいんです
gameobject関数に入れた自作変数に(0,0,0)にあるオブジェクトはこれだよってしたいんですよね
(0,0,0)は実際には動かすんですけどややこしいので説明省きました

285:名前は開発中のものです。
23/11/26 20:04:29.42 wJ4Ewbd+.net
>>284
chatGPTに聞いてもPhysics.OverlapSphereかRaycast使えって言われるんですよね
指定された座標のオブジェクト情報を取得したいだけなんで「そんなことせなあかんか?」って思ったんですけど、調べてもそれしか無さそう?

286:名前は開発中のものです。
23/11/26 20:13:44.84 uqB1fo0P.net
シーンに直置きしてるならシリアライズフィールド使うかStartで自分から登録されに行けばよくないか?

287:名前は開発中のものです。
23/11/26 20:25:02.75 nqSny9Yy.net
>>283
まじかあ
絶対にノートPCはダメってワケじゃないでしょ?
TVに繋げる方法あるの初めて聴いたわ

288:名前は開発中のものです。
23/11/26 20:29:11.75 YEGARdnY.net
いわゆるグリッド移動ならインデックス管理しておいて、そのインデックスにオブジェクトを格納しておけばいいけど
指定したグローバル座標にあるオブジェクトを取得するのはRayかOverlap~しかないんじゃないかな
いや、これらが取得するのは厳密にはColliderだからObjectに変換する必要あるけど
タグかレイヤーで目的以外は弾けば無駄が少ない

289:名前は開発中のものです。
23/11/26 20:39:15.05 ap8K17/p.net
Physics.Raycastを嫌う理由がGC発生によるパフォーマンスの低下だとするなら、Physics.RaycastNonAllocを使えばいい
使ったことないけどOverlapSphereも同様らしい
GC発生を嫌ってるわけではないとなると目的が不明瞭なので適切な提案ができない

290:名前は開発中のものです。
23/11/26 21:06:45.28 wJ4Ewbd+.net
>>286,288,289
まとめての返信で失礼します
288さんの言うようにグリッド移動ですね。語彙力無くてすいません
GCとか後々のことを意識してのことではありました。初心者知識ですがわざわざ余計な処理を走るのを避けたかったんです。
なんか、もうちょい軽い処理でいけそうだなぁ…って考えたんですけどね…
インデックス管理もなんとなくやることは分かってる程度で実行したことないんで…例えば10×10×10の立体的な碁盤を用意したりしたらそれはそれで全て管理したら処理が重そうだし
とりあえず教えていただいた関数使ってみます!ありがとうございます

291:名前は開発中のものです。
23/11/26 21:12:43.41 sKe5WX7u.net
>>284
スクリプトだよそれくらい調べろや
シーンにいるobject一覧なんかすぐ取れるから

>>287
今ならミニデスクトップあるから
モニターにぶら下げられるよ
でもマック使いならマックブックでええやん
>>289
パフォーマンス低下?
どれほど低下するのか知らん奴らが、その言葉で騒いでるだけやね

292:名前は開発中のものです。
23/11/26 21:14:07.82 sKe5WX7u.net
>>290
10×10×10
それぐらいで遅くなるほど今のパソコン舐めるなよ

293:ドーンおじ
23/11/26 21:25:02.28 vo5TLBjQ.net
>>291-292
なんだその回答は!?低クオリティすぎんだろ!?死ねよ!m9⎛´・ω・`⎞;y=ー(゚д゚)・・∵. ドーン!

294:名前は開発中のものです。
23/11/26 21:27:08.12 wJ4Ewbd+.net
>>292
舐めてました?すいません。笑
まぁ軽く出来るならやっとこうぐらいの精神ですかね。出来ないなら出来ないってきっぱり分かっときたかったんですよね。自分で調べる分だと悪魔の証明になっちゃいそうだったんで
プレイヤーが1,0,1にいるなら正面の1,0,2のオブジェクトは何か?ってのをやりたかった。でもまぁ後は自分で試行します。

295:名前は開発中のものです。
23/11/26 22:08:54.91 kOB5vzh5.net
>>287
ディスプレイなんて何でもいいけど小さいと使いにくいだけ

296:名前は開発中のものです。
23/11/26 22:24:40.93 uqB1fo0P.net
そういうのはアルゴリズム組んだほうがええんちゃうか
物理空間上でうにゃうにゃするとUnityの癖に悩まされたりバグの温床になったりする

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

298:ドーンおじ
23/11/26 23:05:24.43 vo5TLBjQ.net
>>297
やっぱりお前が低クオリティ野郎じゃねーか!コテ外すなや!m9⎛´・ω・`⎞ドーン!

299:名前は開発中のものです。
23/11/27 02:36:36.68 BoRbbeFq.net
ID:sKe5WX7u
あれだけ宗派云々で盛り上がった後なのに
世界には俺以外の宗派は存在しないし認めないと思ってるアホやね

300:名前は開発中のものです。
23/11/27 09:04:30.48 jh8FMahn.net
ドーンおじとやらもきっと、最初は真面目に質問に答えてたけど、292みたいなのがいるからマジレスするのがアホらしくなって荒らしに転向したんだろうなあ
そう考えるとなんか可哀想

301:名前は開発中のものです。
23/11/27 11:41:20.00 wHJ3vaA9.net
URPで2Dのレンダラーを使用中に3Dのライトを表示する方法、
もしくは複数のレンダラーを同事に使用する方法はありますか?
2D Lightと普通のライトを合成して使いたいです

302:名前は開発中のものです。
23/11/27 11:56:05.86 aMnFU6g7.net
>>294
指定座標からraycast出してhitしたオブジェクトをGetComponentしたらいいよ

303:名前は開発中のものです。
23/11/27 12:09:35.21 noS+cgi4.net
こんにちは質問です。
プレハブにアニメーションをつけて、いくつかの状態を切り替えて使おうとしました。
たとえばトイレ便器のフタがしまった状態から、フタが開くアニメ、フタ開いた状態、便座も開いた状態、というようにキーフレームが作ってあります
で、再生時の初期状態として欲しい状態が60フレームにあるとして
ロード後に自動で60フレームにするにはどうしたらよいでしょうか
かってに全フレーム再生してラストで止まるか、何も再生されず1フレームのままか、の2パターンはやれるのですが。

304:名前は開発中のものです。
23/11/27 12:26:46.66 aMnFU6g7.net
>>303
Startに
Animator animator;
AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0);
animator.Play(stateInfo.fullPathHash, 0, 1);
1のところが0~1でどこらへんから再生させるか調整するって感じです?
60フレーム目とかで判別できないので
小数点いれて調整してみてねってことで

305:名前は開発中のものです。
23/11/27 12:29:51.25 KkPr08oo.net
次の質問する前に回答してくれてる人には最低限のマナーとして返信はしましょう

306:名前は開発中のものです。
23/11/27 12:42:50.33 jh8FMahn.net
>>303
URLリンク(qiita.com)
AnimationClipの最初から再生するのはこれでできるとして、この第3引数で再生位置を指定できる
再生中のAnimationClipが変数clipで、0.5秒の位置から再生したければ第3引数は 0.5f / clip.length

307:名前は開発中のものです。
23/11/27 13:24:07.06 noS+cgi4.net
>>304-306
うーん、実は外部スクリプトはassset書き出しのときに排除されてしまうんです
セキュリテの都合ですね
後出しでこんな言ってすみません
インスペクターでの設定は動作します

308:名前は開発中のものです。
23/11/27 13:43:13.65 FJPYb+2K.net
>>252
いいねこのバイブル
今まで疑問だったことがいろいろ解消したり、知らなかったこともたくさんあって勉強になったわ
貼ってくれてありがとう

309:名前は開発中のものです。
23/11/27 14:01:23.70 /j0+2mxV.net
>>303
そういう時はそれぞれ別のアニメーションクリップで作るのがunityの作法だよ

310:名前は開発中のものです。
23/11/27 16:23:02.57 HmVHwFbH.net
すみません、駄目元でお尋ねします。
Random.Range( 最小値, 最大値 )の乱数関数なんですが
例えば、「0〜10までのどれかが出るが、0は出にくい」
って感じの設定はできませんか?
もし出来るなら大変ありがたいんですが
んな都合の良い乱数まではできませんよね?

311:名前は開発中のものです。
23/11/27 16:29:23.99 vSro46YA.net
 Random.Range(0, 100)
なら出る数字は0~99のどれか(100は含まれない)で、0が出る確率は1%になるけど、これの応用だと無理?

312:名前は開発中のものです。
23/11/27 16:32:22.43 vSro46YA.net
if (rand == 0)
{
 // 1%の確率で発生する処理
}
else if (10 <= rand && rand < 20)
{
 // 10%の確率で発生する処理
}
else if (20 <= rand && rand < 30)
{
 // 10%の確率で発生する処理
}
……(以下略)
馬鹿正直に書くとこうなる
もっとスマートにできそうだね

313:名前は開発中のものです。
23/11/27 16:37:07.06 /j0+2mxV.net
>>310
返すのがintならできる
if(Randam.Range(0.0f,1f)>0を出したい確率){
Return Randam.Range(1,11);
}else{
Return 0;
}
実際にゲームを作るとfloat返しでやりたくなるはずだと思うんだけど
それはややこしいな

314:名前は開発中のものです。
23/11/27 16:53:02.98 noS+cgi4.net
>>309
わかりましたプレハブを小分けにしてやってみますありがとうございます

315:名前は開発中のものです。
23/11/27 17:16:14.23 /j0+2mxV.net
>>314
プレハブ?
アニメーションクリップファイルはアニメーションクリップファイルだが

316:名前は開発中のものです。
23/11/27 17:22:55.31 HmVHwFbH.net
>>311,312,313
皆さま、ありがとうございます。確かにそれらの工夫次第で
0だけの確率を下げることを知りました、勉強になります!

317:名前は開発中のものです。
23/11/27 18:39:13.12 noS+cgi4.net
>>315
うーむ、ロード時にどのanimが再生されるかの、あの線で繋ぐUIのやつ、あれってどこに保存されてるんですかね?シーンファイル?

318:名前は開発中のものです。
23/11/27 19:18:54.48 BkO9IT7E.net
>>302,296
回答ありがとうございます。アルゴリズム組むのも都合が悪そうなので結果レイキャストで処理しました。

319:名前は開発中のものです。
23/11/27 19:50:17.45 /j0+2mxV.net
>>317
それはアニメーションコントローラーファイル

320:名前は開発中のものです。
23/11/28 00:31:52.76 hSn23D6b.net
>>319
なんとか計画通りに作れました皆さんありがとうございます

321:名前は開発中のものです。
23/11/28 21:44:10.27 +pwcdcfH.net
プログラマーとアーティストのための新しいUIツールキットのデモ | Unityブログ
URLリンク(blog.unity.com)

322:名前は開発中のものです。
23/11/29 09:07:08.53 8Z5oyTA+.net
すみません、rigidbody 2dについて教えて欲しいのですが
例えば、ファミコンのスーパーマリオやロックマンで
崖ギリギリでも1ドットさえ乗っていれば
プレイヤーは立ったりすることできるんですが
現状、半分くらい崖から身を乗り出すとプレイヤーが傾いて
落ちてしまいます。
rigidbody 2dの設定で済む話なのかわかりませんが
どこかのチェックや数値の問題なのでしょうか?
あと、その落ちる時にもドット絵のオブジェクトが物理法則に則って
前のめりに回転して落ちるんですが角度がついたときに
ご丁寧に斜め状態のドット絵を強制的に作ってしまうんですが
これもSprite Rendererとかのどこかのチェックの有無で解決しそうですが
違いますか?

323:名前は開発中のものです。
23/11/29 09:14:12.75 oA7FsBQ7.net
>>322
URLリンク(futabazemi.net)
これ3Dの記事だけど2Dでも大体同じだから

324:名前は開発中のものです。
23/11/29 09:33:25.13 8Z5oyTA+.net
>>323
ありがとうございます!Unity、すごいですね!
知識をつけてってるんですが楽しいです!

325:名前は開発中のものです。
23/11/30 00:19:57.27 toSL22aW.net
Yokohara_h(@Hirokazu Yokohara)さんがポストしました:
え?Unityが以前買収したweta全員解雇するの?出すって言ってたツールは?同じく買収されてるZivaとかspeedtreeはどうなるんだろ?
URLリンク(x.com)
うっわ...Unity完全にオワタやんこれ
wetaは虎の子やったんちゃうんかwあんだけ喧伝しといてもうゲームエンジンはUE一強やんけこれじゃ

326:名前は開発中のものです。
23/11/30 00:22:03.65 toSL22aW.net
Weta Digital閉鎖とか冗談にもなってないわ

327:名前は開発中のものです。
23/11/30 00:25:28.15 toSL22aW.net
更にまだ色々と削減するつもりみたいやな

328:名前は開発中のものです。
23/11/30 10:50:42.51 CMyAP9YG.net
質問です。2Dゲーム制作においてですが
オブジェクト自体の当たり判定とは別にトリガー用の判定エリアも設けたい場合
ひとつのオブジェクトにBox Collider 2Dを2個つけるということをしている人がいます。
これはなんら普通のことでしょうか?それともあまりお勧めできることではない感じですか?

329:ドーンおじ
23/11/30 11:13:55.62 VyxU6IGx.net
複数コライダーは索敵の基本だよ!敵が近くに居たら撃つ!弾が近くにきたら避ける!そのためのコライダーだね!m9⎛´・ω・`⎞ドーン!

330:名前は開発中のものです。
23/11/30 11:22:10.62 2rFXTlkJ.net
>>328
普通によく使うかな
CompositeCollider2Dという専用機能もあるくらい
MeshColliderよりもこっちの方が捗ることも多い

331:名前は開発中のものです。
23/11/30 11:29:53.09 CMyAP9YG.net
>>329 >>328
そうなんですか、2つどころか複数つけても問題ないのですね
わかりました。遠慮なくつけようと思います。
ちなみに、今、Box Collider 2Dを2個つけてみたんですが
両方ともBox Collider 2Dという名前のままなんで
区別がついてないですよね?
名前の変更もできない感じですが
これ、スクリプトの方で
bc = GetComponent<BoxCollider2D>();とかする場合に
<BoxCollider2D>ではどう区別して指定するのですか?

332:名前は開発中のものです。
23/11/30 11:39:41.86 CMyAP9YG.net
え?あれ?
自分今勘違いしているかもです。
これは、追加するBoxCollider2Dにはそれ用のオブジェクトを作って
そこに貼り付けたスプライトで管理するのか?
それなら確かに、BoxCollider2Dは区別しなくてもいいわけですが。。。
ひとつのオブジェクトのスプライトの中で2つのBoxCollider2Dを管理できると思ってるんですが。。。

333:名前は開発中のものです。
23/11/30 11:44:29.52 CMyAP9YG.net
つまり、ひとつのオブジェクトに
当たり判定とトリガー判定のためのBoxCollider2Dが必要だと思ったら
そのオブジェクトでは当たり判定のBoxCollider2Dをつけて、
もうひとつはトリガー用のBoxCollider2Dを貼り付けたオブジェクトを別につくって
そのふたつのオブジェクトをいちいち合わせて考えるってことですかね?
自分のイメージだとぜんぜん違うんですが。効率悪そう。。。
普通に、ひとつのオブジェクトに2つBoxCollider2Dをくっつけて
スプライトの中で、それぞれのBoxCollider2Dから反応の関数をもらえると思ってました。

334:名前は開発中のものです。
23/11/30 11:53:58.64 CMyAP9YG.net
あー、ついに来たか。
親オブジェクト、子オブジェクトとか、それかー。それ使うんですね。
鬼門じゃないんですか、これは。理解できるかなー。

335:名前は開発中のものです。
23/11/30 12:01:32.79 CMyAP9YG.net
ゲームオブジェクトには複数のコライダーを配置できますが、
その場合、個別にどのコライダーがヒットしたかを検出することができません
しかし、解決策はあります
ゲームオブジェクトの子オブジェクトを作成してそこに各コライダーをアタッチすること、
コライダーがアタッチされているゲームオブジェクトにさらに検出用のスクリプトをアタッチすることで実現することができます

これですよね?
コレダーに名前つけてそれぞれを区別したらいいだけだと思うんですけど
Unityはそれを採用してないってことですよね

336:名前は開発中のものです。
23/11/30 12:32:21.42 kx/hSsho.net
>>335
unityのバージョンが新しいとlayeroverrideという機能ついてるから
複数つけてそれぞれに
除外レイヤーと有効レイヤー設定できるので
それでどれにあたるか変えればいけるよ。

337:名前は開発中のものです。
23/11/30 12:54:18.87 CMyAP9YG.net
>>336
>Unity2022.2からCollision Layer Overrideという
>オブジェクトごとに特定のレイヤーと衝突するかの設定が出来る機能が追加
うおおおおおおおおおおおおおおおお!!
自分osの問題で2021なんです、、、泣きます!!!!!

338:低クオリティでごめんねごめんね
23/11/30 13:10:24.45 Iy36Ltve.net
これでどのコライダーがぶつかったかはとれるよ
URLリンク(i.gyazo.com)
例えばこの時
URLリンク(i.gyazo.com)
これは3が返る
この時
URLリンク(i.gyazo.com)
これは2が返る
動きはこんな感じ
URLリンク(i.gyazo.com)
入れ替えて見ると
ちゃんとぶつかりも反応してる

339:低クオリティでごめんねごめんね
23/11/30 13:14:39.04 Iy36Ltve.net
入替えた場合
URLリンク(i.gyazo.com)
URLリンク(i.gyazo.com)

340:名前は開発中のものです。
23/11/30 13:42:59.93 CMyAP9YG.net
>>338
ありがとうございます。
複数のコライダーを順番に配列にいれといて管理するんですね?
foreachで回してカウントしてトリガーを返してきたカウントからどのコライダーか判別すると。
これ、配列に入るコライダーの順番は、インスペクタの並び順ですか?
つまり、例えば、一部のコライダーのインスペクタを触りたいときは
c2ds[1].isTrigger = true;とかでいけますよね?

341:名前は開発中のものです。
23/11/30 13:56:27.19 CMyAP9YG.net
というのも、自分の作ってるゲームでは
オブジェクトのBoxCollider2DのisTriggerのon,off
ちょくちょく切り替えるようにしてるんで
>>338さんのを導入するとしたら
今のBoxCollider2Dを配列入れ込む話になるんで
ちょっとどうなるんだろう、って。
今はBoxCollider2Dひとつだけなんで、BoxCollider2D bc;で
void Start()内でbc = GetComponent<BoxCollider2D>();やってるんですよ。
それを変えるわけですよね

342:名前は開発中のものです。
23/11/30 14:12:00.62 n4imjDK6.net
インスペクタで触る?
コードでやるならenableでいけるでしょ

343:名前は開発中のものです。
23/11/30 14:34:34.68 CMyAP9YG.net
enableてオブジェクトのアクティブ、非アクティブ化にだけ使用してるみたいです。
例えば「Unity isTrigger 切り替え enable」でぐぐってみましたが
enableでBoxColliderのisTriggerを切り替えてるケースが見当たらず
みんな、だいたいGetComponent<Collider>().isTrigger = false;的なことやってるみたいです。

344:名前は開発中のものです。
23/11/30 14:40:55.06 CMyAP9YG.net
自分で調べた感じですがenableはGetComponent<Renderer>().enabled = false;とか見るに
コンポーネントまるごとチェックをはずしたり、したい場合に使うんじゃないでしょうか
BoxCollider2Dのアクティブのチェックを外したい場合とか。
自分はBoxCollider2Dの、isTriggerのチェックを外したいとかなんで
enableは使わない感じじゃないでしょうか

345:名前は開発中のものです。
23/11/30 14:48:45.12 CMyAP9YG.net
あと、>>338のコードを読み解こうと頑張っているんですが
ContactFilter2Dってどんなものなのか、どなたか教えて頂けないでしょうか。
なにが返ってくるのか検索してもぜんぜん解説が無いのです
利用しているコードはあるんですが、どういうものなのかの説明がされてなくて
リファレンスも英語のものだけ?しか見当たらず、ちょっとなんなのかわからず
検索結果からしても、これマニアックなんですかね、使うの。

346:低クオリティでごめんねごめんね
23/11/30 14:52:15.27 Iy36Ltve.net
簡単なのなので、自分でテストするだけ
URLリンク(i.gyazo.com)
c2ds[2].isTrigger = false;
c2ds[2].enabled = false;
片方をコメントアウトしてどちらが機能するかみればいいだけだよ
10秒あればできるから、わざわざぐぐるとか無駄じゃね?

347:名前は開発中のものです。
23/11/30 14:54:45.69 n4imjDK6.net
>>345
マニアックというか英語で使い方分からないから広まってないだけだよね
んでとにかく出来るやり方が広く広まってそれを真似て、、
自分で確認しない風潮だよね

348:低クオリティでごめんねごめんね
23/11/30 14:57:08.73 Iy36Ltve.net
>自分はBoxCollider2Dの、isTriggerのチェックを外したい
という事は、ぶつかりは取りたいという事?
であればenableは不要になるけど
isTriggerのチェックを外すことがどういうことなのか分からんので、なんとも・・・

349:名前は開発中のものです。
23/11/30 15:17:19.00 n4imjDK6.net
元々、どのコライダーが当たったのか?
が欲しかったんだよね?
なら読み解くとかいらんことしないで使えばいいんじゃね?
その内わかるようになるでしょ

350:名前は開発中のものです。
23/11/30 18:16:16.06 CMyAP9YG.net
>>349
>元々、どのコライダーが当たったのか?
>が欲しかったんだよね?
>なら読み解くとかいらんことしないで使えばいいんじゃね?
そうです。しかし、読み解けない状態、つまりはブラックボックス状態だと
うまく機能しない場合自分でどういう状況かわからないので、使わせて頂いても危険なんですよね。
例えば、現在記載してもらった>>338のコードを導入して
動いているですが、思った結果を吐いてくれてなくて、
「これは、なぜだ?」状態で悩ませています。
なるべく検索して調べているんですが、やはり解説がないので。
>>338のOnTriggerEnter2Dですが、
どのBoxCollider2Dのtriggerに触れたかわかるってことですよね?
例えば、print(_count );で毎回「1」と「2」が必ず同時にコンソールに表示されます。
でも、BoxCollider2Dの2個目のtriggerにしかチェック入れてないんですよ。
自分のイメージでは、コンソールには「2」だけが表示されなきゃならないイメージなんですが
毎回「1」と「2」が必ず同時にコンソールに表示されます。
なぜ?ってなってます。

351:名前は開発中のものです。
23/11/30 18:31:12.78 CMyAP9YG.net
_countは、どのBoxCollider2Dかを教えてくれる役割ですよね?
if(_bc1.IsTouching(_bc2)){
print(_count );
}
print();をココだけに記述している状態。
で、地面のオブジェクトにはふたつのBoxCollider2Dのつけており
上部のBoxCollider2Dはtriggerにチェックを入れていて通り抜ける。
下部のBoxCollider2Dは当たり判定有りなので、プレイヤーは上から落ちてきたら
まず上部のBoxCollider2Dを通過します。
自分のイメージでは、print();は上部のBoxCollider2Dに接触した時だけ
コンソールに表示されるべきなんですが、その時の_countの値で
どちらのBoxCollider2Dか判別できるんですよね?
ですが、現状、地面に降り立った時には
print();が2度表示されます。1、2と。

352:名前は開発中のものです。
23/11/30 18:38:03.93 n4imjDK6.net
相手もいずトリガー状態やろ

353:名前は開発中のものです。
23/11/30 18:39:20.39 n4imjDK6.net
せめて画面のSSとか出そうよ
相手に伝えたいならさ

354:名前は開発中のものです。
23/11/30 18:44:33.81 n4imjDK6.net
でもまぁそのコードならぶつかった相手のいずトリガーが付いてるか否かで判定できそーだけど
今風呂だし此の後酒飲むから検証はできん
あとコライダーのoffsetトル手もあるよ
まどんなプロパティあるか見て、何があなたのゲームに使えるか取捨選択すりゃいい

355:名前は開発中のものです。
23/11/30 18:50:48.84 kx/hSsho.net
なんだか、ややこしくなってるので
やりたいこと書いたほうがいいかもせれませんね。
自分ならBoxcastとかunity platform effector 2dとか使いますかねえ。

356:名前は開発中のものです。
23/11/30 20:00:59.02 gX6pmMx6.net
作ってる画面とどうしたいか出すだけで、すぐ解決する問題だろうね。

357:名前は開発中のものです。
23/11/30 20:06:03.76 CMyAP9YG.net
>>352
>相手もいずトリガー状態やろ
いいえ、違います。
そんな見落としは致しません。。。

>あとコライダーのoffsetトル手もあるよ
Offsetから判断させるってことですね?
最悪その方法ですよね。。

>>355
>やりたいこと書いたほうがいいかもせれませんね。

やりたいこと自体は2Dアクションではよくあることで、、、
地面のオブジェクトが並んでて、プレイヤーが一部の地面の上を歩くと
アイテムが下からせり出してくるって、だけです。。。
そのせり出してくるトリガーとして、地面のオブジェクトには
プレイヤーとの当たり判定とは別にBoxCollider2Dで見えない判定枠を作りたいのです。
それがイズトリガーにチェックしているすり抜ける当たり判定です。

358:名前は開発中のものです。
23/11/30 20:13:38.87 n4imjDK6.net
それ地面にスイッチ置くだけやない?

359:名前は開発中のものです。
23/11/30 20:18:10.12 kx/hSsho.net
>>357
地面のオブジェクトとは別に透明な当たり判定つけて踏んだらInstatiateもしくはsetactiveでインスペクターから紐づけるのはダメです?

360:名前は開発中のものです。
23/11/30 20:25:34.02 CMyAP9YG.net
>>358
そうです。そのスイッチとして地面の当たり判定とは別に
もう一個BoxCollider2Dをつけようかと。
地面のオブジェクトにこのスイッチをつけとくのは大前提です。
>>359
>地面のオブジェクトとは別に透明な当たり判定つけて
はい。当初は調べる中で、
別の透明な当たり判定を作って子オブジェクトにして
くっつけるつもりでしたが
>>338さんが、そんことせんでもこれでいける、と
案を出してくださったんで、>>338でいこうとしているところです。
で、詰まったと。が、自分にとってはブラックボックスなので
対処ができずにいる、と。
素直に、別オブジェクトを作ってくっつけるほうがいいのですかね。

361:名前は開発中のものです。
23/11/30 20:28:56.84 kx/hSsho.net
>>360
自分ならそれでプレハブ作っちゃうと
置いて出したいアイテム選ぶだけで
使い回しがきくので普通にInststiateさせるほうほオススメします

362:名前は開発中のものです。
23/11/30 20:45:29.48 CMyAP9YG.net
>>361
そうですよね。素直にそうします。
>>338さんのコード、なんか画期的っぽくて
解読したかったのですが。

363:名前は開発中のものです。
23/11/30 20:47:02.50 gX6pmMx6.net
例のプログラムを解析する気ならそれをしてから。
やりたい事進めたいなら解析などせずオブジェクト追加で。
指南はすでに示されてるのでお好きな方で。

364:名前は開発中のものです。
23/12/01 00:20:46.54 gKngTs7T.net
すみません!
ゲーム中に発生するプレハブ化オブジェクトに子オブジェクトをつけたい場合
なにか普段の流れと違うことをしてないとダメですか?
生成させるときのコードが違うとか。
というのも、なんかヒエラルキーのとこでプレハブのオブジェクトに子オブジェクトくっつけといても
ゲーム中に発生するそのプレハブのオブジェクトには子オブジェクトがついてくれてないんです。

365:名前は開発中のものです。
23/12/01 00:26:48.46 gKngTs7T.net
ちなみにその子オブジェクトもプレハブ化してます。
癖でプレハブ化しましたが、もしかしてプレハブ化してる親オブジェクトに
つけたい子オブジェクトはプレハブ化しないほうがいい感じですか?

366:名前は開発中のものです。
23/12/01 00:42:50.51 gKngTs7T.net
んー、オブジェクトのプレハブ化を最初からやり直し、
その時に子オブジェクト(プレハブ化していない)をつけてから
プレハブ化したら、そのオブジェクトを複製しても子オブジェクトがついている。。。
これで正解なのですか?
ややこしすぎ、、、

367:名前は開発中のものです。
23/12/01 00:59:31.92 gKngTs7T.net
いや、やっぱり再生してからの
親オブジェクト生成後には子オブジェクトはくっついてないです。
scene上でオブジェクトに子オブジェクトつけてても意味ないってことですか?

368:名前は開発中のものです。
23/12/01 02:50:27.01 602WDQfP.net
>>367
出したオブジェクトを親オブジェクトにsetparentしてあげるだけだと思うけど

369:名前は開発中のものです。
23/12/01 02:55:16.30 602WDQfP.net
var obj=Instantiate(出したいゲームオブジェクト);
obj.transform.SetParent(親にしたいオブジェクト);

370:名前は開発中のものです。
23/12/01 03:06:43.96 gKngTs7T.net
>>369
親オブジェクトのスクリプトの中でそれ書いちゃダメですか?
自分のイメージでは各親オブジェクトが生まれた時に
各オブジェクトが子オブジェクトを生成して自分の子オブジェクトにする、
みたいなのが理想なんですが。。。

それともゲームマネージャーの中で親オブジェクトを生成するとして
同時にそこに書くもんなんですか?

371:名前は開発中のものです。
23/12/01 03:19:23.71 gKngTs7T.net
ていうか、そもそも
子オブジェクトつきの親オブジェクトをプレハブ化した場合
そのプレハブを生成するときは毎度一緒に子プレハブが生成されてもいいと思いませんか
意味がわからない。。

372:名前は開発中のものです。
23/12/01 03:19:52.70 602WDQfP.net
>>370
なら生成されたオブジェクトにStartでそれを記述すればいいのでは

373:名前は開発中のものです。
23/12/01 03:21:11.38 gKngTs7T.net
なんども視聴してるけど、死ぬほどややこしい。。。。

プレハブの親子関係
URLリンク(www.youtube.com)

374:名前は開発中のものです。
23/12/01 03:21:32.39 602WDQfP.net
>>371
子オブジェクトつきの親オブジェクト生成したら子も入ってるよ。
シーン上で編集してオーバーライドしていないのでは

375:名前は開発中のものです。
23/12/01 03:22:35.45 gKngTs7T.net
>>372
ですよね??
それ、いけますよね??

明日やってみます
もう今夜は寝ます
ありがとうございます!

376:名前は開発中のものです。
23/12/01 03:25:20.78 gKngTs7T.net
>>374
>子オブジェクトつきの親オブジェクト生成したら子も入ってるよ。

まじですか!?!?!?それだと嬉しいです!!!!!!!!

>シーン上で編集してオーバーライドしていないのでは

オーバーライド??知らないのでやってないと思います!
明日、調べてやってみます!!やったああ!!

ていうか、
>子オブジェクトつきの親オブジェクト生成したら子も入ってるよ。
これが正しいなら、その動画の長々しい解説なんなんでしょう!!
ややこしすぎる!!

377:名前は開発中のものです。
23/12/02 14:56:54.67 cw6ywShe.net
質問させてください。開発環境はMacです
mac book pro メモリ16G
グラフィックボード Radeon Pro 560 4096 MB,Intel HD Graphics 630 1536 MB

Unityで再生ボタンを押したあとゲームが実行されるまで
15秒から20秒くらいかかります。
実行されるまでの間のReload Script Assembliesポップにて
虹色グルグルが出ます。それが15秒くらい続くわけです。

プロジェクト自体にはまだほとんど素材もありません。
コードでなにか負荷をかける様なミスもあるかもしれないので
file→new sceneで真っさらなsceneにして再生してみましたが
やはり実行されるまで同じ状況になるので、
コードやプロジェクトのせいでは無さそうです。

どの様な原因が考えられますか?
ちなみに、スプリクトエディタには
軽いという理由でVS Codeを選んでいます。

同じ様に再生ボタン押してからゲームが実行されるまで
ロード時間が長くて解決できた方とかいますか?
早い人だと実行されるまで1秒とか言ってるので、どうにかしたいです。

378:名前は開発中のものです。
23/12/02 15:56:24.27 5XLPJcoQ.net
いらねーパッケージやらPlug-inやら最近のUnityはプロジェクト作った段階で入るから消せばよくね

379:名前は開発中のものです。
23/12/02 15:57:12.00 5XLPJcoQ.net
>>377
ちなみに、その早い人は君と同じ開発環境なのかな?
その人と同じ機種にればもっとよくね?

380:名前は開発中のものです。
23/12/02 16:07:58.99 mbmOr3Q/.net
まさかいまどきHDD使ってるとか

381:名前は開発中のものです。
23/12/02 16:54:04.00 kzQwpgnK.net
Unity関連のハウツー本の中で昔あったFlashゲー的なモノを題材にしたものって何かありますかね?

382:名前は開発中のものです。
23/12/02 16:54:04.18 NpDR7C5p.net
最近のunityはパッケージまみれで空のプロジェクトでも2G弱あるからな起動から何から全部遅くなってる
さすがに耐えられなくて2020に戻したわ

383:名前は開発中のものです。
23/12/02 17:02:05.44 uXSz+3ZC.net
unityパッケージ多すぎてどれが必要でどれが不要なのかもわかりません

384:名前は開発中のものです。
23/12/02 17:07:08.30 HAQXIv4J.net
>>161
Mac買うのやめた方がいいと思う
普通にRTX搭載のBTOゲーミングPC買ってみてはどうかな
生成AI使うのはこれから必須になっていくし3060VRAM 12GB搭載機はそんなに高くない、そもそもMacだと同じ性能比のWinと比べてコスパ激高になる上にやれる事が凄く減る
Apple Vision Proという次世代プラットフォームになり得るものが控えてるけど、それでも開発機はWinでApple Vision Pro向けにリリースする時に安いMacでStore登録有れば事足りるんじゃないかな

385:ドーンおじ
23/12/02 17:48:15.84 Gozfv42z.net
>>384
VisionProがプラットフォームになるわけねーだろwww50万だぞ!50万!誰が買うんだよ!
生成AIがどーこーとか見当違いなこともどーでもいーだろ!
AppStoreに出すときにXcode環境は必須だからMacは必要って云っときゃいいんだよ!
ど素人がわざわざ遅レスしてまで初心者にクソみたいなアドバイスしてんじゃねーぞコラ!m9⎛´・ω・`⎞ドーン!

386:名前は開発中のものです。
23/12/02 18:42:24.34 HAQXIv4J.net
>>385
空間コンピューティングは間違いなくスマホの次のプラットフォームになると確信してる
そこでどのようなコンテンツが来るのか、まずはゲームだろうがどのようなゲームが最初に大ヒットするのか、空間コンピューティングのパズドラやモンストとは何なのか、いちクリエイターとして問い続けたい

387:ドーンおじ
23/12/02 19:11:05.84 Gozfv42z.net
>>386
はい絶対無理でーす!
スマホが爆発的に普及して今の地位を確立したのは電話、カメラ、TV、本、ゲーム端末、PC、音楽プレイヤー、財布、地図などなどの置き換えになったからなのだよ!
ヘッドマウントディスプレイで何が出来る?実用的なのはエロゲだけ!Appleはエロコンテンツと無縁!すなわちこれ普及しない!
スマホと同等の価格でメガネと同等の重量にならない限り普及はあり得ないのだよ!m9⎛´・ω・`⎞ドーン!

388:名前は開発中のものです。
23/12/02 19:51:56.51 HAQXIv4J.net
《空間コンピューティング》はインターネットを立体化し、現実世界をコンピューティングが認識できるようにし、現実と仮想の世界をデジタル化する
そういう次元の世界いまののAI革命が真価を発揮する世界

389:名前は開発中のものです。
23/12/02 19:55:00.39 HAQXIv4J.net
まっiPhoneの時も同じような論調>>387で否定する老害が大半だったけどね
次はモバイルインターネット?無理無理wwwってさ

390:名前は開発中のものです。
23/12/02 20:17:41.19 vrgnKHDx.net
いや、ドーンおじいちゃんが言ってるのはデバイスとしてHMDがスマホに置き換わるのは無理って話でしょ
競合がスマホとメガネだったら、それらに張り合える価格と同等以上の機能、携帯性、信頼性などを実現しないと普及は難しい

391:名前は開発中のものです。
23/12/02 20:21:16.41 HAQXIv4J.net
携帯電話もHMDもあらゆる人間へ情報を享受するデバイスは網膜から直接情報を参照できるデバイスへの過渡に過ぎない
この過渡のどれか一つでも否定することは全てを否定する事になるのが分からないのは残念なところ
まるで大昔ショルダーがけしないと持ち運び出来なかった携帯電話を馬鹿にしてた老害と一緒

392:名前は開発中のものです。
23/12/02 20:26:08.76 c6tk9wkW.net
>>391
確かにその指摘は合理的に感じる。いや科学や技術の進化ってそういうものなんだよな全て積み重ね。
肩がけしてた大きな電話機を見て固定電話が置き換えられるわけねえだろwwwって大草原生やしてた奴らとドーン馬鹿は何も変わらないってわけだ。
そうなると>>390もドーン馬鹿と同列だな。連綿と続く連鎖を理解できるオムツ(理解力)がないということ。

393:名前は開発中のものです。
23/12/02 20:26:44.49 FEsqTOS1.net
空間コンピューティングは市民権得ると思うけど、どんな技術で浸透するかが分からないなぁ。
HMDではちょっと抵抗あるし。でもあの空間は夢あるよね。延髄差しはちょっと行き過ぎてて現実感ないしw

394:名前は開発中のものです。
23/12/02 20:28:32.12 HAQXIv4J.net
>>392
まあそんなところかな
とかくスマホは必ず置き換えられるよ、というよりHCDの観点からもこんな不便で不健康極まりないデバイスがいつまでも有り続けるわけないでしょ

395:名前は開発中のものです。
23/12/02 20:29:53.15 vrgnKHDx.net
だからそのショルダーがけしないと持ち運び出来なかった携帯電話が普及したのは軽くなって誰でも持ち運べるようになった(+庶民が購入できる価格が実現した)からでしょ
別にHMDを否定しているわけじゃなくて、普及のためには克服しないといけない課題があるって指摘しただけ
そうやってすぐ人を馬鹿だとか老害だとか罵る態度の方がよっぽど非進歩的だと思うぞ

396:名前は開発中のものです。
23/12/02 20:31:30.57 c6tk9wkW.net
HMDもどんどん進化してんじゃんw
いずれもっと小型化してそれこそお洒落メガネと遜色ないAR端末とかすぐになるだろうし、コンタクト型になるだろうし最終的に脳と直接繋がった新しいBMIへと繋がっていくだろう。

397:名前は開発中のものです。
23/12/02 20:33:31.23 c6tk9wkW.net
Apple Vision Proも廉価版出たら普通に普及していくのだろうな。そしてまだ同じようにドーン馬鹿や>>395みたいなの屁理屈家が赤っ恥をかく歴史は繰り返すわけだ。

398:名前は開発中のものです。
23/12/02 20:36:39.55 HAQXIv4J.net
>>397
そゆこと、愚かな者はHMDがすごいスピードで改良され進化してきてる事を知らないし調べもしないでただ否定するだけ
それこそ今の携帯電話を凌駕するスピードでね、ちなみにスマホはもうほぼ進化止まってると言われてるからね

399:名前は開発中のものです。
23/12/02 20:43:12.96 vrgnKHDx.net
>Apple Vision Proも廉価版出たら
だから最初からスマホ、メガネと張り合える価格や携帯性、信頼性を実現できたら普及はある、って言ってるだろ
現在全く普及してないんだから、少なくとも現時点で課題があるってことは認めろよ

400:名前は開発中のものです。
23/12/02 20:45:02.77 vrgnKHDx.net
>>398
ふーん、じゃあ具体的にはいつHMDがスマホ並みに普及するの?

401:名前は開発中のものです。
23/12/02 20:49:48.01 6Gn1cojT.net
>>384
最近のMacは言うほど性能悪くないしコスパも悪くないぞ
M1以降のMac使ったことある?
体感速度はWinのBTOより良いと感じることもあるくらい
VisionProとかApple製品の開発できる
UEでゴリゴリ3Dするならともかく、そうでないならMacで十分

402:名前は開発中のものです。
23/12/02 21:02:20.48 5XLPJcoQ.net
はい
次の質問どうぞ

403:ドーンおじ
23/12/02 21:11:57.31 Gozfv42z.net
>ID:c6tk9wkW
何だテメー?池沼は黙ってろ!消えろ!死ね!m9⎛´・ω・`⎞;y=ー(゚д゚)・・∵. ドーン!

404:名前は開発中のものです。
23/12/02 21:34:46.05 GBLSONLe.net
>>401
macコスパ悪すぎるわw

405:名前は開発中のものです。
23/12/02 21:35:09.08 MR1RataH.net
いや、HMDも進化止まってるだろ
外見もコントローラーも初代と変わらん
機能そのままでメガネぐらい気軽に脱着できんとなぁ

406:名前は開発中のものです。
23/12/02 21:35:59.43 GBLSONLe.net
しかも生成AIとの相性というか性能もRTXと比較するべくもなく良くないし流石にmac進めるのはどうかと思う

407:名前は開発中のものです。
23/12/02 21:37:53.89 GRNqvlJF.net
_kzr(@Keijiro Takahashi)さんがポストしました:
Custom HLSL code sample for Unity VFX Graph. I'd like to add more complex ones later.
URLリンク(x.com)

408:名前は開発中のものです。
23/12/02 22:18:08.46 6Gn1cojT.net
>>404
それいうとWinのSurfaceとかラップトップ系はもっとコスパ悪いぞ
あと元の質問者は生成AIじゃなくて2Dゲームなどの簡単なゲーム制作な
性能に対するコスパ求めるなら中古で型落ちPC買えば良いだけなので

409:名前は開発中のものです。
23/12/02 22:20:21.42 cw6ywShe.net
なんか言い合いになってますけども
結局、自分のunityの再生から実行まで遅いのは
パッケージでいろんなものが入ってるからってことですかね?
確かにunity2021なんですが存在だけでメモリ2G弱食ってますが

410:名前は開発中のものです。
23/12/02 22:28:41.82 FEsqTOS1.net
>>409
まさかと思うけど、設定で毎回全部コンパイルしてない?

411:名前は開発中のものです。
23/12/02 23:09:03.03 5XLPJcoQ.net
>>409
てかここで聴くよりその1秒でできる2とにきいたほうが早いよ
同じ環境にしなよ

412:名前は開発中のものです。
23/12/03 01:45:02.67 SOtcu8Nj.net
>>408
横からすまんがSurfaceとか持ち出しても意味ねえべw
今の時代ゲーム開発やCG制作でMacはコスパ悪すぎるってのは周知の業界やと思うしMacで開発してるなんてとこ聞いたことない
それに2Dだろうが3Dだろうがあらゆるクリエイティブ制作において生成AIをワークフローに取り入れるのはもう当たり前の時代、効率と生産性を高める上でも
生成AI使わずただのカジュアルな2Dゲーム制作でも俺ならMacはオススメしないかな、GPU性能がNVIDIAと比較してコスパ悪杉内
>>409
お前に対してじゃないと思う

413:名前は開発中のものです。
23/12/03 01:50:48.57 SOtcu8Nj.net
MacがNVIDIA搭載したWin機に対してコスパ性能ともに本当に優位あるのか数値で比較しないとね
例えばグラフィック性能を比較したサイトなんて海外ではいっぱいある
それを参考にメモリやSSD容量など決めていくととてもじゃないかコスパや性能ともにMacという選択肢は除外されるかな、少なくとも俺的には有り得ないとなる

414:名前は開発中のものです。
23/12/03 02:00:16.89 XpHLS9tc.net
比較するまでもなくあらゆるDCCがNVIDIAへの最適化を最重要最優先事項として対応してるんだからmacなんて考慮することすらないやろw
mac進めてる奴は単純にそれしか知らないってだけやから一々思考停止マカーを相手にするなスレが荒れる

415:名前は開発中のものです。
23/12/03 02:44:08.63 +3ntwQIg.net
NVIDIA、Open AI、Epic、イーロン マスク(Tesla、SpaceX、Neuralink、The Boring Company)
これらがAI革命で勃興する新たな空間、メタバースや宇宙の新たな覇権候補たちである

416:名前は開発中のものです。
23/12/03 02:49:40.41 +3ntwQIg.net
>>400
iPhoneが出た頃によく見かけた発言で🌱
あの頃も「iPhoneがガラケー並みに普及するのいつなん?ん?ガラケー超えなんてあるわけねえだろwwww」みたいな老害達多かった記憶

417:名前は開発中のものです。
23/12/03 07:58:25.23 Yi+hD/GT.net
>>416
だから具体的にはいつ普及すんの?来年?再来年?
誤魔化してないでまともに答えてよ
あとiPhoneが普及したのは価格、機能その他でガラケーと同等かそれ以上になったからでしょ
何度も書くが別にHMDやら発展中の技術やらを何も否定してない
普及のためには価格、機能、信頼性などで競合に匹敵する必要があると言っただけ
そうやって論点ずらしてまで他人を誹謗するのはむしろID:+3ntwQIgが言うところの
「老害」的な閉鎖的で非進歩的な態度だから改めた方がいいよ

418:ドーンおじ
23/12/03 08:57:26.70 uvRYltrM.net
パズドラやモンストやるためにスマホ買った奴なんてこの世に一人も居ねーよwww
お前は正真正銘本物の莫迦だから死んだほうがいいよwwwm9⎛´・ω・`⎞;y=ー(゚д゚)・・∵. ドーン!>>386

419:ドーンおじ
23/12/03 09:01:02.83 uvRYltrM.net
偉い人曰くメタバースはオワコン!
お前らもUnityでVRゲーム開発だけは手を出すなよ!
市場が小さく将来性も無い!待っているのは緩やかな死!m9⎛´・ω・`⎞ドーン!
URLリンク(www.youtube.com)

420:名前は開発中のものです。
23/12/03 09:50:34.41 +3ntwQIg.net
>>417
iPhoneが出たときの同じ反応で🌱

421:名前は開発中のものです。
23/12/03 09:51:54.83 lH/6yEbm.net
荒れてるな
マカーが暴れてるのか

422:名前は開発中のものです。
23/12/03 10:28:35.54 lNmj5+pi.net
相変わらずスレチだと何故か元気になるなお前らも質問の答のコード位だせよ

423:名前は開発中のものです。
23/12/03 10:36:18.68 twd3xOyI.net
>>412
そう言う意味じゃないんだよな
話通じないからもういいや
WinもMacも普通に仕事で使えてるし周りも使ってる人は多いよ
コンシューマーはツールの都合上でWin一択だけど
あとサーバーサイドの開発も含むならWinは不安定で論外
要は用途に応じて使い分ければ良いだけ

424:名前は開発中のものです。
23/12/03 10:37:51.74 twd3xOyI.net
>>421
自分はWinもMacも同じくらい使ってるユーザーよ
暴れてるのはアンチマカーのほうだと思う

425:名前は開発中のものです。
23/12/03 10:52:33.44 8Y1VAc1H.net
秩序が無くなるとこうなるんだな

426:ドーンおじ
23/12/03 11:13:46.58 uvRYltrM.net
  彡 ⌒ ミ   文句があったらテメーでネタ振れや!
 ⎛´・ω・`⎞  
  /⌒ヽ_.ィ、~;y=ー(゚д゚)・・∵. ドーン!>>425
( r.     )^  / )
 ヽノノーーl      //
   |__/_/
   └一'一

427:名前は開発中のものです。
23/12/03 12:10:50.39 Yi+hD/GT.net
>>420
話をそらさずにちゃんと答えようよ
思考停止で草しか生やさなくなったら人間としておしまいだよ?

428:名前は開発中のものです。
23/12/03 12:59:39.83 lH/6yEbm.net
マカーはどこ行っても害悪だな
まーだ暴れてやがる

429:名前は開発中のものです。
23/12/03 13:43:45.78 2wXT/u6D.net
XRは駄目だろうな。VisionProもパッとしない
値段が高すぎるし、安くなったとしても重すぎるので話にならない。
モニタを見ながらキーボードとマウスでビジネスワーク、
ゲームパッドでゴロ寝しながら遊べるゲームプレイの習慣は数十年の蓄積によるもの。
それを糞重のヘッドセットで置き換えられると思うのはXRでワンチャン夢見てる馬鹿だけ

430:名前は開発中のものです。
23/12/03 14:03:43.75 4jIxuslz.net
なんかだんだん俺もiPhoneが出た頃のガラケー信者と同じ反応に見えてきたw

431:名前は開発中のものです。
23/12/03 14:12:59.16 2wXT/u6D.net
新しいもの全てが優れていると思うのは幻想である

432:名前は開発中のものです。
23/12/03 14:53:04.87 kPbtdKh0.net
>>410
>設定で毎回全部コンパイルしてない?
EnterPlay Mode Optionsのことですか?
確かにそれにチェックを入れると実行までに1秒もかからなくなるんですが
「staticフィールドの初期化が行われなくなるので前回の実行したときの値を引き継いでしまう」
のデメリットのほうが気になって。。

433:名前は開発中のものです。
23/12/03 15:08:05.18 4jIxuslz.net
え?HMDとかxRとか新しいの?w

434:名前は開発中のものです。
23/12/03 15:22:45.70 Mfsx7cVp.net
歴史あるバーチャルボーイには敬意を払うべき

435:名前は開発中のものです。
23/12/03 15:38:54.57 iVBic+wk.net
iPhoneが発表されたとき、ああこれはガラケー駆逐してメインストリームになるわ!って革新持てた人たちって、iPhoneもPDAの積み重ねの上に成り立っていると一瞬で本能的に理解したんだと思う
自分も初代iPhone見たときに瞬間的にガラケーオワタって思ったもんだよ、モバイルインターネットの時代くるって。世間の大人(笑)たちには、ほぼほぼ否定されたけどねw
現実とデジタルを融合するSpatial Computingがメインストリームになるのも当然の如く確信してるよ

436:名前は開発中のものです。
23/12/03 16:28:32.76 Mfsx7cVp.net
iPhone見通しときながらそれに貢献したり利益あるポジションに立ててないならちょっと色々残念なんじゃないかなぁ…とは思う

437:ドーンおじ
23/12/03 16:39:08.34 p54NeshK.net
お主らがアーリーアダプターであろうとも所詮はただのコンシューマ!
ワイの様なクリエイター様とは格が違うのだよ!頭が高い!控えおろう!m9⎛´・ω・`⎞ドーン!

438:名前は開発中のものです。
23/12/03 17:00:05.28 Yi+hD/GT.net
>>435
ID変わってるけど>>420だよね?
VisionProを見た時もスマホ終わたって思ったの?
Spatial Computingは知らんけど、HMDがスマホに取って代わると確信している根拠を知りたい

439:ドーンおじ
23/12/03 17:12:23.97 p54NeshK.net
スマホは消えてHMDをみんな使うのだよ!もうすぐこーゆー世界になるのだよ!m9⎛´・ω・`⎞ドーン!
URLリンク(livedoor.blogimg.jp)

440:名前は開発中のものです。
23/12/03 17:18:20.48 QPNRDRKW.net
普通に次の日プラットフォームは空間コンピューティングなのは確定じゃね?
ここにAIや3DCGやweb3などの技術が掛け合わさってリアルとアンリアルの境界を曖昧にしていくと思うわ
既にAIと3DCG技術を使ってデジタルツインやメタバースは構築されていってるんだし、web3はまだNFTやクリプト辺りの金目当ての嵌め込みポジショントークが殆どだけど、この流れを止めるのはもう無理でしょ
資本の流れ=現実化される未来やから

441:名前は開発中のものです。
23/12/03 17:23:18.08 QPNRDRKW.net
生成AIやChatGPTの登場でさらに強力に推進加速されてる
デジタル経済圏がリアル経済圏を包含し、AIがよりこの世界をリーダブル出来るようにインターネットが3次元化・空間コンピューティングしていくのは避けられないよ
AI革命は人類史上最も革新的な人類革命、AIファーストの時代到来の否定しても意味ない

442:名前は開発中のものです。
23/12/03 17:29:35.29 QPNRDRKW.net
IoTやモビリティ革命や宇宙開発からくる大航海時代や衛生技術も全部パーツとして繋がっているんよ
バイオ革命からのBMIとかもね、基盤は人工知能がリーダブルするインターネットの3次元化(空間コンピューティング)

443:ドーンおじ
23/12/03 17:29:40.14 p54NeshK.net
新聞→ラジオ→TV→インターネット→スマホ
メディアの変化の歴史を考えれば次はHMDで確定だよ!普及は2027年ぐらい!リニア新幹線開業と同じぐらいだよ!
その次はいよいよ電脳化だよ!攻殻機動隊の世界が2035年に来るから準備しとけ!
その前にシンギュラリティでお前ら全員死ぬけどな!m9⎛´・ω・`⎞ドーン!

444:名前は開発中のものです。
23/12/03 17:53:42.94 QPNRDRKW.net
「テクノロジーに耳を傾ければ未来が分かる」
byケヴィン・ケリー

445:名前は開発中のものです。
23/12/03 18:00:27.04 Yi+hD/GT.net
>>440
でも次発売のVisionProは普及しないだろうし、廉価版は価格次第で多少売れたとしてもスマホを駆逐なんて無理でしょ?
最初から言ってるけど空間コンピューティング云々じゃなくて、デバイスとしてHMDがスマホに取って代わるのは現状課題があるって話をしてるから

446:名前は開発中のものです。
23/12/03 18:15:06.38 kPbtdKh0.net
Unityの話じゃないなら、他所でやってくれませんか?
いいかげん、長いです。
発端となったのが私の開発環境がmac〜の発言だったので
私もスレの皆さんに申し訳ない気持ちなんで。

447:名前は開発中のものです。
23/12/03 18:15:41.22 QPNRDRKW.net
インターネット革命やモバイル革命で学んだ教訓は、外野の思考停止な人たちが批判すればするほど、そのテクノロジーは本物だろうということ
そして資本の流れやその成功者たちの行動こそが根拠になり得るということ、脊髄反射な批判者たちから学べるものは多い反面教師として

448:名前は開発中のものです。
23/12/03 18:17:24.87 XpHLS9tc.net
>>445
iPhoneの時と同じような論調でデジャブったw

449:名前は開発中のものです。
23/12/03 18:19:33.28 XpHLS9tc.net
>>446
発端は>>161でしょ
そこからマカーが食い付いて今に至る

450:名前は開発中のものです。
23/12/03 18:31:38.37 QPNRDRKW.net
今の連続が未来であり
未来とは今である

451:名前は開発中のものです。
23/12/03 18:31:39.87 lNmj5+pi.net
>>446
気にすんな
土日だったから伸びてるだけ

452:名前は開発中のものです。
23/12/03 18:40:16.07 Yi+hD/GT.net
>>447
相変わらずまともには答えられないんだね・・・
まあ未来の話だから今何を言っても白黒はつかない
取りあえず来年発売のVisionProとその廉価版はスマホを駆逐しない、とそれだけはっきり予想しておこう
(またiPhoneガーって言われそうだけど)

453:名前は開発中のものです。
23/12/03 18:42:20.24 M4nsa8yd.net
自分はマカーでもなくWinもガチで使ってる開発者だけどMacを頑なに否定する人がいたからマサカリ入れただけ
Macオンリーなんて一言も言ってないのに食いついてくる人がいてびっくりしたよ

まあ最終的に適切かはその人自身が考えることだから気にするな
UnityはWinもMacも隔たりなく(もちろん物による)開発できるようになって良い時代になったと思うよ

454:名前は開発中のものです。
23/12/03 18:59:42.85 XpHLS9tc.net
ただのホビイストやWeb系なら分かるが、3DCGやゲーム開発企業でmac使ってるなんて殆ど聞いたことないというかそもそも無理←この無理の理由が分からない奴はホビイストや門外漢な奴ら

455:名前は開発中のものです。
23/12/03 19:02:07.60 QPNRDRKW.net
>>448
iPhoneの時もこうやってしつこく絡まれた思い出あるw
インターネット空間は立体化し空間コンピューティングのフェーズに移ると確信してるけど、否定したい人はご勝手にどうぞって感じかな

456:名前は開発中のものです。
23/12/03 19:13:27.60 Yi+hD/GT.net
>>455
しつこく絡まれたって・・・ID:QPNRDRKWがまともに答えればすぐ終わる話だよ
答えやすいように質問をよりシンプルにするよ
来年発売のVisionPro(かその廉価版は)スマホを駆逐する?しない?
ご勝手にとか誤魔化さないではっきり答えてね


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