[過去ログ] 【ゲームエンジン】Unityなんでも質問スレpart8 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
354: 2022/10/19(水)12:13 ID:ygB9Jjc3(1) AAS
>>352は下のコテハンで作る気も無いのに質問しまくる荒しなので注意
>198 ワナビー2024 2022/10/19(水) 10:18:21.45ID:kMzDJ4Cz
355: 2022/10/19(水)21:40 ID:/Ek7C3Yj(1) AAS
>>353
落下し続けてるってどういうこと?
落ちながら踊るゲームなの?
356: 2022/10/19(水)21:57 ID:I7PQRQID(1) AAS
重力が働いてるってことでは
357: 2022/10/20(木)02:19 ID:OW6todr+(1) AAS
なるほど
じゃあまずKinect無しの同じ設定で当たり判定が起こるか確認してみるといいんじゃない
358: 2022/10/20(木)11:34 ID:STTfBKLT(1/3) AAS
c#って何でも関数化しないとエラー出されるんですね
359(1): 2022/10/20(木)12:02 ID:gyfAALLD(1) AAS
そんなことない
書くコンテキスト間違ってる
360: 2022/10/20(木)13:18 ID:DC+tJ+6U(1) AAS
日本て法律守らないと捕まるんですね、くらい無意味なこと言ってると思う
361: 2022/10/20(木)13:55 ID:STTfBKLT(2/3) AAS
>>359そうかもです
362(1): 2022/10/20(木)20:01 ID:STTfBKLT(3/3) AAS
質問です。
2番目のコードでuiに数値をセットしたいです。
しかし1番目は値がセットされません。
原因は何かわかりますか?
おそらく、変数宣言あたりに問題がありそうと考えています。
しかしはっきり分かりません。
1:
void Update()
{
if(Input.GetKeyDown(KeyCode.A))
{
count +=1;
var ga =GameObject.Find("test").GetComponent<Text>().text = 10.ToString();
Debug.Log(ga);
}
}
2:
void Update()
{
if(Input.GetKeyDown(KeyCode.A))
{
count +=1;
var ga =GameObject.Find("test").GetComponent<Text>().text;
ga= 10.ToString();
}
}
363(1): 2022/10/20(木)21:24 ID:Hi0nLSLV(1) AAS
>>362
コードだけ見ると一応動作はしそうだけど…
1番目じゃなくて2番目がセットされませんの間違い?
2番目はgaっていう変数にtextの値をコピーしたあと、
gaに10を入れてるから、textの値は変わりませんね
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で取得して変数として持ってもいいよ
上下前次1-新書関写板覧索設栞歴
あと 619 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.026s