[過去ログ] 【ゲームエンジン】Unityなんでも質問スレpart8 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
364: 2022/10/20(木)22:20 ID:23okRftC(1) AAS
一番目はtestのスクリプトのtextに入力してる
二番目はgaにtestのスクリプトをgaにコピー。で、そのコピーしたgaに入力してる
testのtextをコピーしたgaとコピー元のtestのtextは別物。コピーをいじっても元は変わらない
365: 2022/10/21(金)00:40 ID:GfRumvU7(1) AAS
そもそも1つめはコンパイルエラーだろう
ga=text=ToString();となってる
文法を守れとしか言えない
366: 2022/10/21(金)01:11 ID:ZPp8yeJ+(1) AAS
多重代入してるだけだから一応動くのよ
でも見づらいしやめたほうがいいね
367(1): 2022/10/21(金)18:36 ID:aj7NQKCn(1) AAS
>>363
364
365
366
回答どうも
30kmウォーク行ってきたので返答おくれました
364さんの言ってることが原因だったようです
変数にuiの値を入れてもそれはコピーになっちゃうんですね、、、
書き直しましたが、こういうふうにuiの値とカウントの値が違った時のみ、uiにカウントの値をセットしたかったのですね。uiの値を変数に入れて使いまわそうとしてました。
float count = 0;
void Update()
{
if(Input.GetKeyDown(KeyCode.A))
{
count +=1;
setCountToUi(count);
Debug.Log(count);
}
}
void setCountToUi(float countForUi)
{
var text_value = GameObject.Find("test").GetComponent<Text>().text;
//もしtextvalueとcountに差があった場合、現在のcountをtextvalueにセットする
if(countForUi != float.Parse(text_value))
{
GameObject.Find("test").GetComponent<Text>().text = countForUi.ToString();
}
}
368(1): 2022/10/21(金)23:30 ID:p7nePW1Z(1) AAS
>>367
セットの時に毎回Findするよりは
それぞれのオブジェクトごとで子にcanvas持つとかした方がいいよ
369(2): 2022/10/22(土)06:05 ID:DJepy6/o(1/6) AAS
>>368
回答どうも
publicでフィールドを作ってそこで指定するという意味でしょうか?
370: 2022/10/22(土)12:58 ID:DJepy6/o(2/6) AAS
>>369
解決しました
フィールドにuiを指定しておくんですね
これが”子”という意味でしょうか
371(1): 2022/10/22(土)13:33 ID:Zr+BOUcM(1/2) AAS
子っつったら普通はヒエラルキーだなって思わない?
372(1): 野球マン 2022/10/22(土)13:54 ID:8smeBO4o(1/2) AAS
子で持つより
>>369の方が適切だろ
っていうかUIを子で持つって「そのキャラごとにHPを表示する」みたいな
用途しか思いつかない
373(1): 2022/10/22(土)13:55 ID:DJepy6/o(3/6) AAS
>>371
そうしますが、子オブジェクトにアタッチしてもfindによる検索が必要なんじゃないでしょうか?なにか取得する手段があるのでしょうか
374: 2022/10/22(土)16:23 ID:M8ieQ9xB(1) AAS
>>373
find要らない
375(1): 2022/10/22(土)16:25 ID:Zr+BOUcM(2/2) AAS
何番目の子かが決まってればそれで良い
376(1): 2022/10/22(土)17:10 ID:DJepy6/o(4/6) AAS
>>372
あー、頭の上にゲージがある的な?
377: 2022/10/22(土)17:21 ID:DJepy6/o(5/6) AAS
>>375
ありがとうございます
何番目かは変動する可能性があるので、get child的な関数ではなく、フィールドを使うことにします
378: 2022/10/22(土)17:24 ID:wE/JvYaK(1) AAS
人間ってやりたくない事は幾らやっても覚えないんだな
379(1): 野球マン 2022/10/22(土)17:43 ID:8smeBO4o(2/2) AAS
>>376
そう
380: 2022/10/22(土)18:00 ID:DJepy6/o(6/6) AAS
>>379
どうも
フィールドでやります
381(2): 2022/10/23(日)03:55 ID:zY0Co/aK(1/2) AAS
いや、子で持つのは
参照関係をスッキリさせるためなんだけど
動的にdestroyするとかならアレだけど
参照するものが同じprefab内にまとまってないとややこしくないか?
あとScriptable Object改造してそっから変数受け渡す方法もある
382(1): 2022/10/23(日)06:27 ID:IEoTV2Zo(1/6) AAS
>>381
子にした場合はget childで取得するのですか?
たしかに関係のあるオブジェくとは1つにまとめたほうがわかり易いですね
383(1): 2022/10/23(日)06:39 ID:zY0Co/aK(2/2) AAS
>>382
シリアライズで参照してもいいし
一度getchildとかgetcomponentinchildrenで取得して変数として持ってもいいよ
384: 2022/10/23(日)07:41 ID:IEoTV2Zo(2/6) AAS
>>381
unityの親子化必ずしも追従を意味しないみたいですね
エンプティでまとめておく的な意味もあるようです
385: 2022/10/23(日)07:42 ID:IEoTV2Zo(3/6) AAS
>>383
どうも
今回はこだわらずシリアライズでやっときます
386: 2022/10/23(日)11:59 ID:IEoTV2Zo(4/6) AAS
コツコツやろう(´・ω・`)、、、
387: 2022/10/23(日)18:27 ID:IEoTV2Zo(5/6) AAS
微妙にunity慣れてきたわ
ありがとう
388(1): 2022/10/23(日)20:00 ID:IEoTV2Zo(6/6) AAS
普通の変数に代入した定数を変更する方法はありますか?
const float maxJumpCountLimit = 3;//初期値
float max_jump_count = maxJumpCountLimit;
2行目のmax_jump_countはmaxJumpCountLimitのコピーであるため、以下のような変更は可能だと思っていました。
しかし、どうも定数であるという情報までコピーされているため、変更出来ないようです。3が2になるはずですが変わりません。
max_jump_count -=1;
ゲームで3段ジャンプを作成しています。ジャンプするごとにカウントが減ります。
この値が0かつ着地したときに初期値である3に戻したいため、定数で3を定義しているのです。
389: 2022/10/23(日)20:28 ID:sTNwB9d4(1) AAS
const float maxJumpCountLimit = 3;//初期値
float max_jump_count = maxJumpCountLimit;
この処理でmax_jump_countがconstになったりはしない。
どこか他のところが間違ってる。
390: 2022/10/23(日)23:48 ID:3m+rwC6A(1) AAS
そこ通ってないか、再初期化してるかのどっちかだろ。
怪しい所全部ブレーク仕掛けて実行してみろ
391: 2022/10/24(月)01:02 ID:h4hXbTHR(1/2) AAS
ポインタ入れてるだけだから変わらんでしょ
.tofloatとかすりゃいけんじゃね
知らんけど
392(1): 2022/10/24(月)02:50 ID:qbMWdM2J(1) AAS
>>388
> max_jump_count -=1;
この直後に
Debug.Logおいて、値を表示したらいくつになってるの?
393: 2022/10/24(月)03:50 ID:exOERTS6(1) AAS
オチが読めた。floatがローカルで毎回宣言してんだろ。
だからブロックを抜けたら変数は消えて元に戻る。
全文書けよクイズじゃねえんだから
上下前次1-新書関写板覧索設栞歴
あと 609 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.011s