【ゲームエンジン】Unityなんでも質問スレpart15 (383レス)
1-

14
(1): 11/02(土)20:59 ID:9uK62gI3(1) AAS
はぁ
必ず両手動かすのかい
障害者差別やめよ
15: 11/02(土)21:01 ID:hJHl9MJP(2/2) AAS
>>14
ん?>>13へのレスですか意味不明
16: 11/02(土)21:14 ID:lMnr2jcF(1) AAS
一言で理屈を説明するとすれば「数学だから」
オレは2Dしかやらんけど、この回答がわかりやすかったぞ

外部リンク:stackoverflow.com
17
(1): 11/03(日)09:25 ID:PT+Z5R0i(1/10) AAS
>>2
正確な答えじゃないかもしれないけど、positionはTransformのプロパティでVector3という値型だから
値型はインスタンスが複製されるんで複製したものに対してxを書き換えても意味ないからエラーになった気がする
複製したインスタンスに対して代入する必要があるからわざわざ変数作って書き換えて再びpositionに代入する感じだった気がする
18
(1): 11/03(日)09:45 ID:PT+Z5R0i(2/10) AAS
ところで質問なんですが、Unityでゲームの一時停止をする時って皆さんはどう実装してますか?
ググるとTime.timeScale = 0にする記事がヒットするんですが、そういうのは色んな処理に悪影響出るので辞めたいです
やっぱり一つ一つスクリプトでちまちま止める処理を追加するしかないんでしょうか?
19
(5): 11/03(日)11:22 ID:etQ2u8I9(1/4) AAS
>>17
でも
Vector3 pos=new Vector3(1,0,0);
pos.x++;
go.transform.position += pos;
というのが正しく

go.transform.position.x++;
は正しくないらしい。

その考えではこれは説明できなくない?
20: 11/03(日)11:38 ID:PT+Z5R0i(3/10) AAS
>>19
xはpublicなフィールド
+=はオーバーロードされてるメソッド
++は純粋にpublicなxをインクリメントするだけ

つまり一時的にコピーされたインスタンスに対して操作(代入とかインクリメント)とかして放置がダメっていう意味だけど分かりますかね?
+=は内部的にメソッド読んでるけど、++はオーバーロードされてないんでpublic xを操作するだけ

>go.transform.position.x++;

これはつまり、
Vector3 pos = go.transform.position;
pos.x++;
省1
21
(1): 11/03(日)11:39 ID:69yBOCa6(1/2) AAS
プラスイコールは正しくないやろ
22: 11/03(日)11:49 ID:PT+Z5R0i(4/10) AAS
>>21
やるなら
go.transform.position += new Vector3(1,0,0);
だね
23: 11/03(日)11:55 ID:dogTRd67(1) AAS
公式レファレンス読めとは言わないけど
せめてC#の入門書読んでから開発始めればいいのに、とはこういうやりとり見る度に思うことだ
24: 11/03(日)12:01 ID:PT+Z5R0i(5/10) AAS
一応俺は公式リファレンス読みながら答えてますけどね
外部リンク[html]:docs.unity3d.com
外部リンク:learn.microsoft.com
この辺とか
それが出来る人ならわざわざこのスレで質問しないんじゃないかな?
25
(1): 11/03(日)12:08 ID:PT+Z5R0i(6/10) AAS
>>19
とか言いつつ俺もここで質問してたw
こっちは自己解決したのでもういいです
26: 11/03(日)12:08 ID:PT+Z5R0i(7/10) AAS
>>25
まちがった
>>18です
27: 11/03(日)12:18 ID:Ue61tWJP(1) AAS
質問スレいうからさぞかし答えたい人が居るとおもて頑張って質問しとるんやぞ
28: 11/03(日)13:14 ID:eHLtABV7(1) AAS
またお前か
29
(1): 19 11/03(日)19:05 ID:etQ2u8I9(2/4) AAS
いえ、わたしがメインで疑問に思ってることは

pos.x++;

これでちゃんと変数posが更新されるの?ということなのですが。
30
(1): 11/03(日)20:01 ID:PT+Z5R0i(8/10) AAS
>>29
更新されますよ
さっき試したらちゃんとx座標が1加算されてた
不安なら自分で実行して確かめてみてもらえれば
31
(1): 19 11/03(日)20:18 ID:etQ2u8I9(3/4) AAS
>>30
いえ、タワシが疑問に思ってるのは
更新されないはずなのに更新されるのはなぜか、ということなのですが
32: 19 11/03(日)20:20 ID:etQ2u8I9(4/4) AAS
pos.xと書いた時点でこの値用にメモリが確保されてそこには加算されるけど元のpos自体は影響されないはずじゃないの?
33: 11/03(日)20:25 ID:PT+Z5R0i(9/10) AAS
>>31
それはインクリメント演算子の仕様としか言いようがないんじゃないですかね
「更新されないはず」とはどういうことでしょう?
そもそも「何が」更新されないはずなの?
posという変数?
C#の文法的には更新されるので、「更新されないはず」という前提がおかしい気がするけど
1-
あと 350 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.011s