[過去ログ] 【ゲームエンジン】Unityなんでも質問スレpart15 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
17(1): 2024/11/03(日)09:25 ID:PT+Z5R0i(1/10) AAS
>>2
正確な答えじゃないかもしれないけど、positionはTransformのプロパティでVector3という値型だから
値型はインスタンスが複製されるんで複製したものに対してxを書き換えても意味ないからエラーになった気がする
複製したインスタンスに対して代入する必要があるからわざわざ変数作って書き換えて再びpositionに代入する感じだった気がする
18(1): 2024/11/03(日)09:45 ID:PT+Z5R0i(2/10) AAS
ところで質問なんですが、Unityでゲームの一時停止をする時って皆さんはどう実装してますか?
ググるとTime.timeScale = 0にする記事がヒットするんですが、そういうのは色んな処理に悪影響出るので辞めたいです
やっぱり一つ一つスクリプトでちまちま止める処理を追加するしかないんでしょうか?
20: 2024/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
22: 2024/11/03(日)11:49 ID:PT+Z5R0i(4/10) AAS
>>21
やるなら
go.transform.position += new Vector3(1,0,0);
だね
24: 2024/11/03(日)12:01 ID:PT+Z5R0i(5/10) AAS
一応俺は公式リファレンス読みながら答えてますけどね
外部リンク[html]:docs.unity3d.com
外部リンク:learn.microsoft.com
この辺とか
それが出来る人ならわざわざこのスレで質問しないんじゃないかな?
25(1): 2024/11/03(日)12:08 ID:PT+Z5R0i(6/10) AAS
>>19
とか言いつつ俺もここで質問してたw
こっちは自己解決したのでもういいです
26: 2024/11/03(日)12:08 ID:PT+Z5R0i(7/10) AAS
>>25
まちがった
>>18です
30(1): 2024/11/03(日)20:01 ID:PT+Z5R0i(8/10) AAS
>>29
更新されますよ
さっき試したらちゃんとx座標が1加算されてた
不安なら自分で実行して確かめてみてもらえれば
33: 2024/11/03(日)20:25 ID:PT+Z5R0i(9/10) AAS
>>31
それはインクリメント演算子の仕様としか言いようがないんじゃないですかね
「更新されないはず」とはどういうことでしょう?
そもそも「何が」更新されないはずなの?
posという変数?
C#の文法的には更新されるので、「更新されないはず」という前提がおかしい気がするけど
34: 2024/11/03(日)20:48 ID:PT+Z5R0i(10/10) AAS
一応補足しておくとtransform.positionはプロパティ、つまり内部的にはgetpos(),setpos()みたいなgetter/setterメソッド実行してるんでフィールドではないですよ
だからtransform.position.x++ができない
だってgetposの戻り値で確保された一時変数に加算して放置という無意味な操作をしてるんだもん
transform.setpos(pos)やって初めてゲームオブジェクトの座標という情報が更新される
この辺がソースなので俺の説明が不安なら読んでみるといいですよ
外部リンク:learn.microsoft.com
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.552s*