[過去ログ]
【ゲームエンジン】Unityなんでも質問スレpart15 (1002レス)
【ゲームエンジン】Unityなんでも質問スレpart15 http://mevius.5ch.net/test/read.cgi/gamedev/1730456094/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
17: 名前は開発中のものです。 [] 2024/11/03(日) 09:25:44.67 ID:PT+Z5R0i >>2 正確な答えじゃないかもしれないけど、positionはTransformのプロパティでVector3という値型だから 値型はインスタンスが複製されるんで複製したものに対してxを書き換えても意味ないからエラーになった気がする 複製したインスタンスに対して代入する必要があるからわざわざ変数作って書き換えて再びpositionに代入する感じだった気がする http://mevius.5ch.net/test/read.cgi/gamedev/1730456094/17
18: 名前は開発中のものです。 [] 2024/11/03(日) 09:45:13.06 ID:PT+Z5R0i ところで質問なんですが、Unityでゲームの一時停止をする時って皆さんはどう実装してますか? ググるとTime.timeScale = 0にする記事がヒットするんですが、そういうのは色んな処理に悪影響出るので辞めたいです やっぱり一つ一つスクリプトでちまちま止める処理を追加するしかないんでしょうか? http://mevius.5ch.net/test/read.cgi/gamedev/1730456094/18
20: 名前は開発中のものです。 [] 2024/11/03(日) 11:38:01.31 ID:PT+Z5R0i >>19 xはpublicなフィールド +=はオーバーロードされてるメソッド ++は純粋にpublicなxをインクリメントするだけ つまり一時的にコピーされたインスタンスに対して操作(代入とかインクリメント)とかして放置がダメっていう意味だけど分かりますかね? +=は内部的にメソッド読んでるけど、++はオーバーロードされてないんでpublic xを操作するだけ >go.transform.position.x++; これはつまり、 Vector3 pos = go.transform.position; pos.x++; で終わってgo.transform.position=posをしてないのと一緒だからエラーになる http://mevius.5ch.net/test/read.cgi/gamedev/1730456094/20
22: 名前は開発中のものです。 [sage] 2024/11/03(日) 11:49:18.48 ID:PT+Z5R0i >>21 やるなら go.transform.position += new Vector3(1,0,0); だね http://mevius.5ch.net/test/read.cgi/gamedev/1730456094/22
24: 名前は開発中のものです。 [sage] 2024/11/03(日) 12:01:50.42 ID:PT+Z5R0i 一応俺は公式リファレンス読みながら答えてますけどね https://docs.unity3d.com/ja/current/ScriptReference/Vector3.html https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/operators/operator-overloading この辺とか それが出来る人ならわざわざこのスレで質問しないんじゃないかな? http://mevius.5ch.net/test/read.cgi/gamedev/1730456094/24
25: 名前は開発中のものです。 [sage] 2024/11/03(日) 12:08:05.75 ID:PT+Z5R0i >>19 とか言いつつ俺もここで質問してたw こっちは自己解決したのでもういいです http://mevius.5ch.net/test/read.cgi/gamedev/1730456094/25
26: 名前は開発中のものです。 [sage] 2024/11/03(日) 12:08:43.97 ID:PT+Z5R0i >>25 まちがった >>18です http://mevius.5ch.net/test/read.cgi/gamedev/1730456094/26
30: 名前は開発中のものです。 [sage] 2024/11/03(日) 20:01:02.04 ID:PT+Z5R0i >>29 更新されますよ さっき試したらちゃんとx座標が1加算されてた 不安なら自分で実行して確かめてみてもらえれば http://mevius.5ch.net/test/read.cgi/gamedev/1730456094/30
33: 名前は開発中のものです。 [sage] 2024/11/03(日) 20:25:13.60 ID:PT+Z5R0i >>31 それはインクリメント演算子の仕様としか言いようがないんじゃないですかね 「更新されないはず」とはどういうことでしょう? そもそも「何が」更新されないはずなの? posという変数? C#の文法的には更新されるので、「更新されないはず」という前提がおかしい気がするけど http://mevius.5ch.net/test/read.cgi/gamedev/1730456094/33
34: 名前は開発中のものです。 [sage] 2024/11/03(日) 20:48:57.23 ID:PT+Z5R0i 一応補足しておくとtransform.positionはプロパティ、つまり内部的にはgetpos(),setpos()みたいなgetter/setterメソッド実行してるんでフィールドではないですよ だからtransform.position.x++ができない だってgetposの戻り値で確保された一時変数に加算して放置という無意味な操作をしてるんだもん transform.setpos(pos)やって初めてゲームオブジェクトの座標という情報が更新される この辺がソースなので俺の説明が不安なら読んでみるといいですよ https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/compiler-messages/cs1612 http://mevius.5ch.net/test/read.cgi/gamedev/1730456094/34
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.029s