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

■ このスレッドは過去ログ倉庫に格納されています
2023/11/06(月) 16:50:23.83ID:aWH6Xwln
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。 プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他

■注意事項
質問と答え以外は禁止
■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
http://www24.atwiki.jp/unity2ch/
●リンク
・Unity(日本公式サイト)
http://unity3d.com/jp
・マニュアル
 http://docs.unity3d.com/ja/current/Manual/index.html
・チュートリアル
 http://unity3d.com/jp/learn/tutorials
・スクリプトリファレンス
 http://docs.unity3d.com/ja/current/ScriptReference/index.html
・FAQ
 http://unity3d.com/jp/unity/faq
・MSDN
 http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。

■前スレ
【ゲームエンジン】Unityなんでも質問スレpart11
https://mevius.5ch.net/test/read.cgi/gamedev/1691129256/l50
2023/11/10(金) 13:21:25.79ID:Trn7O450
UNITYでキー入力ってどこに実装するのがベターですか?
キャラに直でコードなすりつけるのが普通なんですか?
カラのオブジェクトを作成してそこにキー入力コード用意して
そこからキャラクターに命令するのが普通なんですか?
UEでは分けてたと思うんですが
15名前は開発中のものです。
垢版 |
2023/11/10(金) 13:25:09.23ID:vBS1KEXH
>>8
このハゲ!
2023/11/10(金) 13:41:55.19ID:IFn4/mqu
>>13
後者だね
複数のオブジェクトから同時にInputを呼ぶとプラットフォームによっては激烈に重くなる
2023/11/10(金) 13:42:23.48ID:EHV5CH90
男でスカート履くのは普通なんですか?
女でジーンズ履くのは普通なんですか?

ラーメンをフォークで食べるのは普通なんですか?
寿司に醤油掛けるのは普通なんですか?

フツウって何?
2023/11/10(金) 13:50:04.69ID:Trn7O450
>>16
やっぱそれか。返答ありがとうございます!
2023/11/10(金) 17:48:02.09ID:dssjpw/U
今日も元気だ暴飲暴食!サンボで豪遊してきた!
焼き牛丼!牛皿!ビール500㍑!これでたったの1180円!m9⎛´・ω・`⎞ドーン!
ttps://i.imgur.com/Ur28YYE.jpeg
20名前は開発中のものです。
垢版 |
2023/11/10(金) 19:50:11.90ID:vBS1KEXH
>>19
このハゲ!
2023/11/10(金) 20:10:55.03ID:dssjpw/U
  彡 ⌒ ミ   
 ( ´・ω・`)  禿げてね-よ!
  /⌒ヽ_.ィ、  しゃぶれよ!
 ( r.     )
  ヽノノー二二つ <ドーン! >>20
   |__/_/
   └一'一
22名前は開発中のものです。
垢版 |
2023/11/10(金) 20:16:02.41ID:0Pn1la5N
500ℓは酒豪にも程があるな
2023/11/10(金) 20:17:05.01ID:dssjpw/U
>>22
一桁間違えた!m9⎛´・ω・`⎞ドーン!
2023/11/10(金) 20:55:18.30ID:EHV5CH90
86 名前は開発中のものです。 sage 2023/09/07(木) 10:29:43.16 ID:84ac0SK7
そんなんwikiに載ってるだろ?ワイの総資産US$15億(2007年)だってよ!ワイすげー!m9⎛´・ω・`⎞ドーン!


これサークルだったんだぁ凄いなぁワラワラワラ

別に製品そのままじゃのーてリギングだけりゃいのに

えっ?それできないの?
まさかねぇ(笑)
2023/11/10(金) 21:54:28.00ID:EHV5CH90
141 ドーンおじ sage 2023/10/08(日) 09:20:11.70 ID:FDh2RFJV
あーうぜぇ!製品レベルのもん見せたらサークルがバレんだろ!
このエロゲの作者は5chで初心者虐めてる嫌な奴って噂になったら売れなくなるだろ!m9?´・ω・`?ドーン!
2023/11/11(土) 04:26:30.59ID:zyErZvzz
>>25
お前は低クオリティのコテハンつけろよ!m9⎛´・ω・`⎞ドーン!
27名前は開発中のものです。
垢版 |
2023/11/11(土) 04:33:08.60ID:p1u7OEyM
>>26
このハゲ!
2023/11/11(土) 04:53:55.22ID:zyErZvzz
>>27
Sikiは同じレスは3度目から見えなくなるんだよ!もう少し工夫してくれよ!m9⎛´・ω・`⎞ドーン!
29名前は開発中のものです。
垢版 |
2023/11/11(土) 06:50:22.62ID:p1u7OEyM
>>28
ハゲ!
2023/11/12(日) 01:40:46.43ID:DdQ8rzW3
>>29
お前が涌いてくるとスレが止まるんだけど?
みんなキチガイが居るスレなんて避けるんだよ!お前は消えろ!m9⎛´・ω・`⎞ドーン!
31名前は開発中のものです。
垢版 |
2023/11/12(日) 02:14:35.63ID:9399exlr
>>30
ツルぴか
NGNG
あぼーん
2023/11/12(日) 08:44:04.71ID:qMf7T3ET
>>32
時価総額40兆円企業の大盤振る舞い
2023/11/12(日) 09:02:38.72ID:oOtXnGOq
ステマ禁止法ってこういうのもひっかかるのかな?
2023/11/12(日) 12:18:44.98ID:DdQ8rzW3
Unityとあんま関係ない話で悪いんだけどさ?
某喫煙所に貼ってあったこれな?こいつらJKじゃないん?m9⎛´・ω・`⎞ドーン!
ttps://i.imgur.com/zW7sr3L.jpeg
2023/11/12(日) 12:26:39.36ID:n5fa42Fa
141 ドーンおじ sage 2023/10/08(日) 09:20:11.70 ID:FDh2RFJV
あーうぜぇ!製品レベルのもん見せたらサークルがバレんだろ!
このエロゲの作者は5chで初心者虐めてる嫌な奴って噂になったら売れなくなるだろ!m9?´・ω・`?ドーン!
2023/11/12(日) 12:47:22.99ID:CYBr1Coc
>>32
あっという間にポイントが増えていく
2023/11/12(日) 13:10:34.66ID:DdQ8rzW3
今日も元気だ暴飲暴食!大阪で豪遊してきた!
肉吸い定食!ビール500㍑!これでたったの1192円!m9⎛´・ω・`⎞ドーン!
ttps://i.imgur.com/uzdjTjf.jpeg
2023/11/12(日) 20:58:47.46ID:I0ed5/Cl
味方のAIを組んでるんだけど、特定の味方を攻撃してる敵を優先的に狙うってどうすればいいのかな
近接敵なら味方の周囲の敵を狙えばいいんだろうが、遠隔だとそうもいかない
AIのスクリプトに自分が狙ってるTargetを保存しておいて、対象検索時にはTargetが特定の味方であればそいつを狙う
というのが楽かな?
2023/11/12(日) 21:44:53.51ID:n5fa42Fa
味方が攻撃受けてるプラグだけやん
2023/11/12(日) 22:27:16.32ID:xhIsv8fD
>>39
ゲームによって変わるからそれだけでは何とも…

敵のアルゴリズムにターゲットを入れてるはずなので、それを見て判断すればよろし?
42名前は開発中のものです。
垢版 |
2023/11/14(火) 15:47:34.84ID:LdD5f5QN
>>38
ビール500リットルは流石に飲みすぎやろwwww
2023/11/14(火) 20:32:40.65ID:Ke6hoT4B
>>42
一桁間違えた!m9⎛´・ω・`⎞ドーン!
2023/11/14(火) 20:34:16.66ID:Ke6hoT4B
>>43
桁じゃなくて単位だろ!㍉㍑だ!m9⎛´・ω・`⎞ドーン!
2023/11/14(火) 20:38:57.48ID:Ke6hoT4B
>>44
㍉は単位じゃねーよ!㌔とか㌐とかはSI接頭語だ!
㍑が単位だ!ビール500㍍だったら単位間違いだ!死ねクソ文系!m9⎛´・ω・`⎞;y=ー(゚д゚)・・∵. ドーン!
2023/11/14(火) 20:40:20.04ID:Ke6hoT4B
>>45
ぐえーやられたんごー嘘んごーワイは元気んごーm9⎛´・ω・`⎞ドーン!
2023/11/14(火) 20:45:13.36ID:Ke6hoT4B
今日も元気だ暴飲暴食!サイゼリアで豪遊してきた!
ワンコインランチ!赤ワイン500㈱!これでたったの880円!m9⎛´・ω・`⎞ドーン!
ttps://i.imgur.com/dAs2doN.jpeg
2023/11/14(火) 20:46:13.89ID:Ke6hoT4B
>>47
単位間違ってるんご!m9⎛´・ω・`⎞ドーン!
49名前は開発中のものです。
垢版 |
2023/11/14(火) 21:12:27.45ID:q/DQWMma
>>44
あっなるほど
やっぱmlの間違いよねwちょっとビビったわwww
2023/11/14(火) 21:15:48.83ID:0HRegDNH
このおっさんさぁ
一応サークルで作ってるらしいけど
毎回このコピペ貼って

多分糖質だから関わったらあかんよ

141 ドーンおじ sage 2023/10/08(日) 09:20:11.70 ID:FDh2RFJV
あーうぜぇ!製品レベルのもん見せたらサークルがバレんだろ!
このエロゲの作者は5chで初心者虐めてる嫌な奴って噂になったら売れなくなるだろ!m9?´・ω・`?ドーン!
2023/11/14(火) 22:07:11.63ID:Ke6hoT4B
マイゴジ観てきたんご!ネタバレするんご!m9⎛´・ω・`⎞ドーン!
ゴジラの口に特攻するんご!嘘ンゴ!元気ンゴ!m9⎛´・ω・`⎞ドーン!
放射熱線の爆風で死んだんご!嘘ンゴ!元気んご!m9⎛´・ω・`⎞ドーン!
52名前は開発中のものです。
垢版 |
2023/11/16(木) 23:49:07.59ID:r6vj6ruD
テスト
53名前は開発中のものです。
垢版 |
2023/11/17(金) 00:09:23.78ID:VMkKjppr
これから学ぶつもりのunity初心者です。
趣味でunityを使って2Dゲームを主に作るつもりです。
unity独特のアニメーション製作法があるのは知ってますが
質問させて下さい。
例えば、オブジェクトの状況の項目を列挙型で作り、
それぞれSwitch文で管理するとして、
現状態に合わせ表示する画像を選択するってこと可能ですか?
その時にフレーム管理で表示画像をパラパラ変えればアニメもさせられます。
つまり、unity備え付けのアニメ制作方法は一切使わずに
描画画像のアニメや推移をスクリプトでやれますか?という質問です。

プレハブ化した空のオブジェクトを作って、
それは可能ですか?
2023/11/17(金) 01:07:27.02ID:D5/AizDq
>>53
できるよ
面倒くさいけどね
2023/11/17(金) 01:19:37.62ID:RlX5wsw5
ユニティ備え付けのアニメのシステム嫌なら自分でクラス作ってシステム作っちゃえばいける
56名前は開発中のものです。
垢版 |
2023/11/17(金) 02:10:18.93ID:VMkKjppr
>>54
めんどくさいができるんですね。ありがとうございます。

>>55
>自分でクラス作ってシステム作っちゃえばいける

すみません、そのクラスだけでいいんで1万円で考えてもらえませんか?
というか、unityでは>>53みたいなこと誰もやってないんで
参考にできるブログ等が見当たりません。
自分のイメージしていることをUnityに落とし込むのにそうとう苦労してまして
例えば、Sprite Editorで分けた画像があって、描画する名前をそれぞれに変更するだけで
パラパラ描画するってできそうなもんですが、
unityだとやれ毎回Sprite RendererをGetComponentして、そこの画像名を変更してやる?
感じでしょうか。ちょっとよくわからんのです。

Unityエンジンの考え方(unityでプログラミングするときにこういう流れになる、みたいな)、
というのを学びたいんですがいいページありませんか?
いろいろGetしたりインスタンスするものが多い気がして。
57名前は開発中のものです。
垢版 |
2023/11/17(金) 02:14:36.31ID:VMkKjppr
あと個人的にですが、世界的にシェアされているはずのUnityの制作ブログ等
探してもどれも情報が古かったり、少なかったりの気がするんです。
日本人は今はもうUniyをあんま触ってない感じなんでしょうか。
もしかして今の流行りはもう別のゲームエンジンにいってます??
2023/11/17(金) 03:19:26.07ID:RlX5wsw5
>毎回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名前は開発中のものです。
垢版 |
2023/11/17(金) 03:33:30.03ID:VMkKjppr
>>58
ありがとうございます!
質問だけさせてください!
配列の宣言とこです、
public Sprite[] sps; //スプライト画像の配列
生成のnewも要素数指定もありませんが
インスペクタの項目のところで要素数指定することができるんですか?
画像をドラッグドロップで突っ込んだ数が要素数になる感じですかね?
要素数を決めることが可能ってことですか??
で、その要素数指定の場合は、生成のnewも宣言しなくていいということ??
2023/11/17(金) 03:38:27.85ID:RlX5wsw5
インスペクタで要素指定できますよ。
スクリプトでnewしなくてもいけます。
61名前は開発中のものです。
垢版 |
2023/11/17(金) 04:16:44.59ID:VMkKjppr
>>60
できました!!
すごい!これを改良して>>53を作ってみます!
2023/11/17(金) 07:19:34.01ID:uL2Qodvg
>>53 >>57
最低の回答してやるよ!回答者は反面教師として参考にしろ!m9⎛´・ω・`⎞ドーン!

・なんでUnity標準のアニメーション使わね-のかまず説明しろ!←はてなとか教えての回答者の9割9分がこれ!
・できるよ!面倒くさいけどね!←可能かどうか聞いてんじゃなくてやり方聞いてんだよ!
・UEはアフェカス!←忍者くん!
2023/11/17(金) 07:29:40.54ID:uL2Qodvg
>>57
ネットの情報が古い?そーなんだよー!
ブログやったこと有る?ない?ブログ更新するのってめんどくせえんだよ?
そのときの自分のやってたことをメモの意味でブログに残してるだけだからねー?
ブームが去ったら著者は興味失う、だから世の中には書きなぐりのゴミ情報が溢れてんだよ?
でもな?Unityは未だマシな方だぜ?UEなんて皆無に近い!基本のリターゲットすら古い情報しかねーんだよ!
そして紙の本はもっと酷いんだよ!紙の教科書持ってたら捨てろ!持ってても役に立たね-どころか邪魔だ!
犠牲者が増える前に出版禁止しろよ!焚書だ!教科書は燃えているか!?m9⎛´・ω・`⎞ドーン!
64名前は開発中のものです。
垢版 |
2023/11/17(金) 07:41:04.76ID:woQh1Af/
>>53
初心者のくせになんでも知ってるじゃないか。
2023/11/17(金) 07:47:24.98ID:uL2Qodvg
>>64
これはひどい!回答しないどころか質問者を罵倒するクズ!
低クオリティなんてもんじゃねーぞ!?死ね!m9⎛´・ω・`⎞;y=ー(゚д゚)・・∵. ドーン!
2023/11/17(金) 14:05:14.76ID:fOixlSew
ドット絵やアニメ絵ならむしろ既定画像のパラパラ漫画形式のほうが多そうだけどな
3Dでもアニメ調のものは口の動きとか、ちょっとした揺れなんかはGifアニメらしいし
2023/11/17(金) 15:26:39.33ID:UbxmJ6RH
メカニックが走ってきて作業のドットアニメ作った時、スプライトマネージャー?使ったけど、簡単でしたよ。
2023/11/17(金) 17:51:24.35ID:nRYHl31k
自前のスプライトアニメ制御クラスなんてのは登龍門だから
数万人ってレベルでみんなが自作してる
金は要るがアセットストアに現職のプロ製とかが売ってるから
自分で実装するのに限界を感じたらストアを覗いてみるといい
ソースも付いてるから改造できるし勉強にもなる
69名前は開発中のものです。
垢版 |
2023/11/17(金) 18:46:45.31ID:o7sk0BCQ
unityの新展開が来たけどmuseってまだ使えるわけではないんだよね?
70名前は開発中のものです。
垢版 |
2023/11/17(金) 21:04:48.25ID:VMkKjppr
>>64
Unityの初心者なんですが、プログラミングの初心者では無いというか
若い時代にC++かじったことがありましてその頃にゲーム作った経験がありまして。
今の時代ですからUnityで作りたいんで覚えたいんです。
ただあのアニメーションの作成方法はどうにも慣れません。
あとunityってメイン関数で回すって構築方法じゃ無いので
これまた覚えるのに時間を食ってる感じです。

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

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

2Dゲーム制作
BGM &SEの制御クラス
スプライト描画の制御クラス
71名前は開発中のものです。
垢版 |
2023/11/18(土) 00:56:15.52ID:H7HorgOX
高校で物理を学びまして一流大学の理系卒です。

Start()内でrigidbodyにAddForce()すれば物体は移動するけど
物理学的にはどうなってるの?

Start()が呼ばれるのは1回だけなので
物体に力が加わるのはほんの一瞬のはず。
重力のように恒常的に力が加わっているのではない。
これは力積が加わったということ?
どういう計算になるのですか?
72名前は開発中のものです。
垢版 |
2023/11/18(土) 00:58:03.94ID:H7HorgOX
ちなみにわたしはUnityの映えある初心者です。

たとえばUpdate()内のrigidbodyにAddForce()すれば物体はどうなるんだろう?
73名前は開発中のものです。
垢版 |
2023/11/18(土) 01:33:43.78ID:H7HorgOX
物理学とrigidbody、
物理学とcollider、
の関係をそれぞれ教えていただけませんか?

Unityでも出てくる用語のrigidbody, colliderが
物理学の力(と加速度)、はねかえり係数、力積、などとどう関係しているのかが知りたいです。

ある物体にComponentとしてrigidbodyやcolliderがついているかいないかによって2x2=4通りあると思いますが
2物体の衝突の場合どうなるかはさらに2倍の組み合わせがあります。
こういった概念を分かりやすく把握するためにはどう物理学的に理解するのがよろしいですか?
74名前は開発中のものです。
垢版 |
2023/11/18(土) 02:00:48.43ID:H7HorgOX
isKinematicって
物理学でいうとどういう概念でしょうか?
2023/11/18(土) 02:01:16.35ID:u9Gd6DYb
>>70
何を作るかわからないけど、とりあえず昔からの定番で
今50%Offセールしてる奴は以下がオススメかな。

・CorgiEngine(2D総合,サウンド制御含む?)
・MasterAudio(サウンド制御のみ)

ゲームエンジン無しでゲームを作りかけてた人なら
同梱のサンプルシーンでUnityの仕組みごと勉強が出来ると思う。
あとは必要に応じて金で時間を買う感じで。
76名前は開発中のものです。
垢版 |
2023/11/18(土) 02:26:57.63ID:H7HorgOX
例えば双方の物体ともにrigidbodyがついていない場合
onCollisionEnter()が作動しないのはなぜでしょう?
2023/11/18(土) 02:36:21.39ID:s1NK7waI
PC買い替えでUnityセットアップして作業してたプロジェクト開いて実行したら
12秒おきにGCで6フレームぐらいフリーズするようになったんで原因調べてたら
新規プロジェクト作成して何もないシーン実行してる状態でもGCUsedMemory増えていくし
GCでプチフリしてるっぽい… バージョンは2022.3.0f1 以前使ってたバージョンは覚えてない…
これって何なんですかね?
2023/11/18(土) 06:40:37.70ID:2DKcfbLu
2022.3.0はだいぶ古いからとりあえず新しいので試してみたら?
2023/11/18(土) 08:56:31.81ID:/QXT7ykg
1流大卒業してるなら
次はUDEMYでUnity習って卒業してこい

話はそれからだ
2023/11/18(土) 11:39:38.60ID:/tOWUc13
今日も元気だ暴飲暴食!サンポで豪遊してきた!
鬼おろし牛丼!豚汁!ビール500㍑!これでたったの1080円!m9⎛´・ω・`⎞ギュードーン!
ttps://i.imgur.com/QM8uX2i.jpeg
2023/11/18(土) 12:09:30.34ID:E+9QAOuF
幸せの第一歩は丈夫な胃腸を持つことだ
っていうけど暴飲暴食者の幸福感は異常ってのは実感できる
82名前は開発中のものです。
垢版 |
2023/11/18(土) 13:19:10.02ID:R3Sqy6aw
>>79
Udemyもよさそうだけど
これは物理学のことを理解できない頭がハゲた人向けに説明してることが予想できるきらあまり乗り気でない。

物理学を理解してる人向けにUnityを解説している本or動画はないでしょうか?
理系頭にとってちゃんと数式で説明してくれたほうがよっぽどよく分かる。
「文系でも分かる」と冠した本みたいなのは理系頭にとって分かりにくいことこの上なく大嫌い。
2023/11/18(土) 16:05:36.16ID:E+9QAOuF
本格的にやりたいならRとかで物理シミュレーションやったほうがいいと思うが
Unityはあくまでそれっぽい挙動をグラフィックに変換するだけで正確な動作してるわけじゃないぞ
2023/11/18(土) 17:53:26.57ID:s1NK7waI
>>78
PCと手持ちのノート2環境で色々試した。
昔使ってた古いUnityはGC頻度短めスパイク低めでそれ以降のUnityは
GCスパイク300msぐらいだった。
でincremental GCを有効にしたらスパイク減って快適になった。
(incremental GCが実験実装されたのが2019でincremental GCはデフォルトで
オンになっているが古いプロジェクトはオフになってる)
とりあえず解決しました。ありがとうございます
2023/11/18(土) 18:18:33.65ID:2DKcfbLu
>>84
調査お疲れ様&情報共有ありがとう
2023/11/19(日) 00:58:34.18ID:O7qPxWRo
Itchとか無料であげられるところに数うちゃ当たるでうpしまくって反応を見て、好感触なものを本格的に作って売る
ってのは嫌われるかね?
87名前は開発中のものです。
垢版 |
2023/11/19(日) 01:01:17.50ID:BYVRHENG
>>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名前は開発中のものです。
垢版 |
2023/11/19(日) 01:04:08.54ID:BYVRHENG
position.xだけを更新したいのに毎回引数でposition.yまで記載する理由がほんとわかりません。

x座標を更新するやり方、自分が頭が悪いやり方選んでるだけしょうか?
2023/11/19(日) 02:04:40.22ID:9N6CQXeG
>>88
仮のvector3型を作っておいてそこのデータを常に更新して、描画の直前に反映するとか。

static vector3 実機座標,仮座標
------
仮座標.x = 仮座標.x + 1
実機座標 = 仮座標
2023/11/19(日) 02:51:40.48ID:jh2cZ69b
構造体は値型だからね
UnityじゃなくてC#に詳しい人に聞いた方がいいと思う
2023/11/19(日) 05:33:17.92ID:QVCHme1W
C#構造体は罠が多いから使うなとまで言う人もいるくらいだからなあ

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

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

transform.positionはプロパティなので値を取得した時点で中身がコピーされた別データになる
このためxだけを変えても「コピーのxを変える」という操作にしかならない
2023/11/19(日) 08:55:46.53ID:13N5nc91
>>91
構造体は16バイト以下ルールってまだあるの?
2023/11/19(日) 09:14:01.95ID:WioH0Gev
START関数でNewしてそれ使っとけ
2023/11/19(日) 18:45:49.80ID:GNJhXrWP
現役エンジニアを気取ってる人でも構造体のnewをヒープと勘違いしてる人がいるからね
公式ドキュメントにもさりげなくしか書かれてないから誤解してる人も少なくないだろうね
16バイトルールはまだ健在だった気がするけど速度測ったことないから良くわからん
95名前は開発中のものです。
垢版 |
2023/11/19(日) 19:48:51.56ID:qyDIySTh
こんばんはいつもお世話になっております
質問ですけんど
Unityでライン描画はやれますか
たとえばキューブのワイヤフレームを空間に出すなどです
もしかしてマテリアルでやれますけ
2023/11/19(日) 20:33:47.79ID:9N6CQXeG
アセットを購入すれば1番簡単です。
2023/11/19(日) 21:16:11.40ID:WioH0Gev
ラインレンダラー
2023/11/19(日) 21:22:50.49ID:lyGaFktw
いやマジでこの質問の答えはアセットが一番、で正解かもしれん・・・
2023/11/20(月) 18:09:39.33ID:6j8Unkop
MethodImpl(MethodImplOptions.AggressiveInlining)で最適化した後のソースコードがどんな感じか知りたいんですけど
IL2CPPでビルドした時に生成されるBackUpThisFolder_ButDontShipItWithYourGameフォルダのAssembly-CSharp.dllを逆コンパイルしてソースコード確認したら最適化前の状態でした
最適化後のソースコードを見るなら同フォルダのcppファイルを目視確認するしかないですか?(C++クソザコ)
100名前は開発中のものです。
垢版 |
2023/11/21(火) 01:47:53.08ID:TnJ2/nlr
>>89
>仮のvector3型を作っておいてそこのデータを常に更新して、描画の直前に反映するとか。

ありがとうございます。
その仮座標を変数で作っちゃじゃダメなんですかね。
例えば、変数pos.Xに座標にしたい値を入れといて、
最終的にその値をvectorに代入したらいいんじゃないかとか思うんですけど
仮の座標でもvectorを使わなきゃならないんだ、って感じがUnityなのかって感じです。
とにかく座標触るのが面倒っていうか、なんでこんな複雑なのって感じで(Unity触って間もないのもありますが)。

>>91
>newがいるのはコンストラクタを呼び出すためで、コンストラクトが完了してない変数は使用できないという制限をクリアするため
>Cの構造体のnewのようにメモリアロケートが発生しているわけではない
>transform.positionはプロパティなので値を取得した時点で中身がコピーされた別データになる
>このためxだけを変えても「コピーのxを変える」という操作にしかならない

説明ありがとうございます。
なんかこれは理解が深まった感じです。なんか掴めそうです。
2023/11/21(火) 02:14:19.12ID:w6m3vvkL
>>100

C#には値型と参照型がある
値型とは構造体(struct)、参照型とはクラス(class)のこと
この2つの違いは変数の値がメモリのどこに配置されるかということ
値型はスタックという場所に、参照型はヒープという場所に配置される

スタックはC#実行時に予め確保されているメモリなので読み書きが速い
ヒープはnewする度にメモリを確保する(確保済みの未使用メモリがあればそこを使う、無ければ拡張する)ので読み書きが遅い

そして値型と参照型では「変数が何を持っているか」が違う
値型の変数は「値そのもの」を持っているので、変数Aに変数Bの値を移すと「値そのもの」が移されて、一見値が同じでもそれぞれメモリの違う場所に配置された値を見ることになる
参照型は「値が配置されてるメモリの場所(アドレス)」を持っているので、変数Aに変数Bの値を移しても「値が配置されてるメモリの場所」を移しただけなのでメモリの同じ場所の値を見ている

この説明でどのくらい分かるだろうか
2023/11/21(火) 02:18:53.63ID:w6m3vvkL
>>101
最後のくだりはちょっと表現が紛らわしかったかも

 変数A = 変数B;
した時、値型は変数Aに変数Bの「値そのもの」を移している
一方で参照型は変数Aに変数Bの「値が配置されてるメモリの場所」を移している
2023/11/21(火) 06:49:06.73ID:w6m3vvkL
>>102
寝て起きて読み返してみたらまだ紛らわしかった
場所って単語はアドレスに読み替えて
104名前は開発中のものです。
垢版 |
2023/11/21(火) 06:56:26.50ID:TnJ2/nlr
自分で調べた結果、
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名前は開発中のものです。
垢版 |
2023/11/21(火) 06:59:17.99ID:TnJ2/nlr
>>103
はい、確かに自分にはわかりにくい感じでしたが、
自分でもいろいろ調べながらなんとか理解深めました。
ありがとうございます<(_ _)>
2023/11/21(火) 08:46:17.86ID:KhhZh2q7
手間増えてるとか時間掛かるとかは考えすぎ
0.001秒で出来るのが0.003秒、3倍もかかるだろ遅いだろって感じやで
2023/11/21(火) 08:49:21.11ID:k77a/lwT
>>104
自分にわかりやすい方でやっていくのが良いと思います。簡略や高速化は理解が深まってからで問題ないです。
108名前は開発中のものです。
垢版 |
2023/11/21(火) 08:51:04.72ID:UKnjSgkS
newしてGC出るのを恐れてんのかな
vector2とか3なら大量のオブジェクトで毎フレnewしてもほとんど影響ないんじゃないのかね
109名前は開発中のものです。
垢版 |
2023/11/21(火) 09:16:36.74ID:TnJ2/nlr
すみません、>>58で教えてくれた
public Sprite[] sps;でスプライト画像の配列を作ってインスペクタの方で
要素を増やしながら画像をドラッグドロップして追加していく方法なんですけど

これ、Sprite Editorで分けた画像が100を超えて来る場合(Mapのチップとかなら有り得る状況です)
インスペクタの方に手作業で画像をドラッグするのってちょっと効率悪いと思うんです。
インスペクタに要素の項目が100並ぶのもイメージできないですし。。
多分、Sprite Editorで分けた画像をコードで配列に入れ込む方法あると思うんですが
教えて頂けませんか?
検索してもコードでSprite Editorで分けた画像を配列につっこむってこと誰もやってなくて。

教えてください、お願いします!
2023/11/21(火) 09:16:49.84ID:INjw62PD
この辺が理解できない人用にunity scriptあったけどねぇ
2023/11/21(火) 10:17:11.08ID:KhhZh2q7
インスペクタで登録できるって事はコードでも出来るやろ
まず簡単なint配列作ったSTARTで登録してみそ
それ出来たらSpriteにすりゃいい
2023/11/21(火) 15:33:49.92ID:KEuaTtq8
>>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]; }
}
}
2023/11/21(火) 18:57:49.67ID:B7H/FnQ3
>>109
ソレには関係ないけど、そこで質問をしてくるってことは
「Inspectorの配列内の順序を入れ換えたいのに全部手作業でD&Dやり直し」
なんて糞面倒な壁にぶち当たるだろう。
「Odin Inspector and Serializer」というInspectorの拡張アセットがあるから
プロジェクトに突っ込んでおくだけでもいい感じだよ。
配列の入れ替えはもちろん長い配列をページ分け表示したり
独自の表示形式にしたりできる。

あとUnity自体には実行中にInspector内のコンポーネントをコピーして
編集画面に戻って貼り付けるなんて小技もある。
114名前は開発中のものです。
垢版 |
2023/11/21(火) 23:07:46.31ID:TnJ2/nlr
>>112
うおおお、まさにいい感じに配列入れて描画変更できました
ありがとうございます!Unity、楽しくなってきました!

>>113
ありがとうございます。まさにありえそうな未来です。
「Odin Inspector and Serializer」、調べてみます!
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況