[過去ログ] 【ゲームエンジン】Unityなんでも質問スレpart14 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
360: 2024/07/14(日)20:17 ID:dbzTY/RG(1) AAS
なら、それを記述した人に聞かないと分からないと思うの。
361: 2024/07/14(日)20:25 ID:T7j2ATLe(2/4) AAS
つてことは

public string assetName = "abcEffect." + name;

とおなじことなんですけ?
362
(1): 2024/07/14(日)20:37 ID:LIEaBwaL(1/2) AAS
違う

getterの省略形
363: 2024/07/14(日)21:37 ID:T7j2ATLe(3/4) AAS
>>362
ちゃんと具体的にコードで書くあるよ
364: 2024/07/14(日)21:40 ID:LIEaBwaL(2/2) AAS
それで調べられないレベルならGAMEOVERだろ
365: 2024/07/14(日)22:11 ID:GDWz+zPs(1) AAS
遅延評価だね
366: 2024/07/14(日)22:22 ID:T7j2ATLe(4/4) AAS
public string assetName = "abcEffect." + name;

だとダメな理由をおしえてほしいのである
367: 2024/07/14(日)22:29 ID:RZHvmMZr(1) AAS
それで用が足りるならダメではない
368: 2024/07/14(日)22:43 ID:LGuBexn+(2/3) AAS
再びChatGPTに聞いてみた
public string assetName = "abcEffect." + name;
との違いは?

(回答が長いので省略)
結論
assetNameが常に最新のnameの値を反映する必要がある場合、プロパティの使用が適しています。一方、nameの初期値だけに基づく固定の文字列が必要な場合は、フィールドの使用が適しています。
369: 2024/07/14(日)22:51 ID:LGuBexn+(3/3) AAS
AIが吐いたコードも貼っとくか
自分で動作チェックはしてない
あとは知らん

public class Example
{
public string name = "initial";
public string assetNameField = "abcEffect." + name; // フィールド
public string assetNameProperty => $"abcEffect.{name}"; // プロパティ
}

var example = new Example();
Console.WriteLine(example.assetNameField); // "abcEffect.initial"
Console.WriteLine(example.assetNameProperty); // "abcEffect.initial"

example.name = "updated";
Console.WriteLine(example.assetNameField); // "abcEffect.initial" (変更されない)
Console.WriteLine(example.assetNameProperty); // "abcEffect.updated" (最新の値を反映)
370: 2024/07/14(日)23:44 ID:xNzgnRZV(1) AAS
公式ドキュメント貼ってあげたら

Statement lambdas
外部リンク:learn.microsoft.com
371: 2024/07/15(月)00:15 ID:zwXhQWpg(1) AAS
バカバカしい
nameが固定なら最初から
public string assetName = "abcEffect.initial";
って書くし
nameが変動するんならそのタイミングで再度
assetName = "abcEffect." + name;
って上書きやるだけだろ
372: 2024/07/15(月)00:55 ID:PCgeN2sl(1) AAS
上書きするのを意識しなくても勝手に上書きされるんだな
373: 2024/07/15(月)09:39 ID:ooOtqfH7(1) AAS
そりゃ馬鹿しかいないもん
374: 2024/07/15(月)09:50 ID:3W3GJ09H(1) AAS
てかよく見たらlambdaじゃないじゃん、これ
誰だよラムダ式って言ったやつ

Unity C#: Expression-Bodied Members to Reduce Your Code Verbosity
外部リンク:thegamedev.guru
375: 2024/07/15(月)12:41 ID:nmjPYER8(1) AAS
内容が短いメソッドやプロパティを書くとき、もっと簡潔に書けたらよいのにと思ったことはないだろうか?
読み取り専用のプロパティを大量に書く場合には、特にそうだろう。それがC# 6.0からは、ラムダ式を使って
簡潔に書けるようになっているのだ。C# 7.0では、さらに便利になっている。本稿ではその使い方を説明する。
376: 2024/07/15(月)14:46 ID:liViB/GY(1) AAS
Unityのビルドエラーについて調べてる時、スクリプトにラムダ式があるとエラーが出ると書いてあるのを見てからラムダ式は入れないようにしている
ここ見てると皆は普通に動いてるようだし古いか間違ってる情報なんだろうけどちゃんと動いてるからそれでいい
377: 2024/07/15(月)17:37 ID:GYa7D92L(1) AAS
???
378: 2024/07/16(火)06:24 ID:BbkeSCKC(1) AAS
private string name;
が上にないか?
プロパティアクセサで安全に取り出してるんちゃうか
379: 2024/07/18(木)22:42 ID:2/wojvWv(1/2) AAS
今日も元気だ暴飲暴食!ウナトトで豪遊してきた!
うな丼!キムチ!ビール500㍑!これでたったの1380円!m9⎛´・ω・`⎞ドーン!
画像リンク

380: 2024/07/18(木)23:27 ID:Flhh8KiJ(1) AAS
ウナギ小さっ!
381: 2024/07/18(木)23:40 ID:2/wojvWv(2/2) AAS
小さいなら2枚にすればいいじゃない!m9⎛´・ω・`⎞ドーン!
382: 2024/07/23(火)15:30 ID:5sY3dp00(1/3) AAS
質問です。
ヴァンパイアサバイバー的な全方向シューティングを作ってます。
操作はwasdで移動、マウス左クリック押しっぱなしでショットを撃ちます。
1ステージクリアごとに現在のシーンを再読み込みで次のステージが始まる仕様なのですが、
左クリック押しっぱなしの状態でシーンが開始したときに
if (Input.GetMouseButton(0)) {//ショットの処理;}
の入力が取得できてなく、ショットが出ません。
クリックを離して再度押しなおすとクリック取得できますが、理想の操作性ではないです。
シーンスタート時に押しっぱなし中のクリックを取得する方法はないでしょうか?
383
(1): 2024/07/23(火)16:02 ID:3sk+aYfR(1/2) AAS
スタティックなフラグ用意して押しっぱ判定
384: 2024/07/23(火)16:13 ID:5sY3dp00(2/3) AAS
>>383
なるほど その手がありましたか。
試してみます。ありがとうございます!
385: 2024/07/23(火)22:38 ID:5sY3dp00(3/3) AAS
試しみてうまくいったように一瞬思ったのですが、今度はショットが出っぱなしになってしまいました。
やはりシーンチェンジ>シーン開始の最初のクリックはdownもupも受け付けてくれないようなのです。
どうすればいいんでしょうか?
Globalというスクリプトを作りstatic bool osippanasiというフラグ用の変数を作りました。
以下はプレイヤーを動作するプレイヤースクリプトです。

if (Input.GetMouseButtonDown(0)) { Global.osippanasi = true; }
if (Input.GetMouseButtonUp(0)) { Global.osippanasi = false; }
if (Global.osippanasi){//ショット撃つ処理; }
386: 2024/07/23(火)23:17 ID:3sk+aYfR(2/2) AAS
それまさかアップデートに入れてる?
処理がどの順に動くのか
今一度紙に書いて考えよ
387: 2024/07/24(水)16:34 ID:8lBpJs1y(1/2) AAS
InputクラスじゃなくてInput Systemを使って実装すれば多分いける
388: 2024/07/24(水)21:50 ID:pLBe31Qy(1) AAS
GetMouseButtonでダメなの?

外部リンク:miyagame.net

だめならマウスのクリックはシーン跨いで管理するとか
そういう発想もありじゃないの
389: 2024/07/24(水)23:07 ID:rWt65hYo(1) AAS
少し調べてみた感じだとマウスホールド時はOS側から押し下げてるよという信号が出ている訳ではないらしい
ハッキリとどういう状態で動作しているのか書いてある物が何故かないのでキーボードと何で違うのか知らんけど
ソフトウエア的に押し下げてる事にしてるだけなんじゃね?

たぶん最初に押し下げた時の入力を見落としたら、マウスホールドは検知されなさそうではある
つまり素直にトグルにすればいいだけで、一度押したらtrueで連射、もう一度押したら解除にすればいい気がする
1-
あと 613 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.012s