前提・実現したいこと
unityでプログラムを書いています。(C#)
実現したいことは、
・変数”A”を作り、0を代入する。
・もしRキーが押されたら、A(変数)にA(変数)+1をした数を代入する。
ということです。
発生している問題・エラーメッセージ
しかし、エラーメッセージCS0165(未割当のローカル変数”A"が使用されました。)が表示されてしまいます。
該当のソースコード(言語:C#)
using System.Collections; using System.Collections.Generic; using UnityEngine; public class a : MonoBehaviour { int A = 0; void Start() { } void Update() { if (Input.GetKey(KeyCode.R)) {int A = A + 1; } } }
###インターネットで調べたこと
初期化をすればいいと書いてあったのですが、初期化は
int A = 0;
ではだめなのでしょうか。
###ツールのバージョン
マイクロソフトビジュアルスタジオ2019
以上です。よろしくお願いします。文章でよくわからないところがあったら質問して下さい。初心者ですいません。僕でもわかるように説明していただけると幸いです。
###解決後のソースコード
using System.Collections; using System.Collections.Generic; using UnityEngine; public class a : MonoBehaviour { // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { int A = 0; if (Input.GetKey(KeyCode.R)) { A = A + 1; } } } //皆さんありがとうございました ```
コードは”<code>”または”<コード>”のボタンを押して出てくるやつの中に書きましょう。
今の状態は、日本語の文章をひらがなのみで、句読点も一切ない状態です。改行もない状態です。
読む気にもなりません。
とりあえずエラーコード CS0165 でネットを検索してみましょう。
[1-2. 投稿前に検索し、できるところまで自分でやってみましょう]
https://teratail.com/help/question-tips#questionTips1-2
{int A = A + 1; } ⇒ { A = A + 1; } としてみたらどうなりますか?
>>suferOnWwwさん
{int A = A + 1; } ⇒ { A = A + 1; } としてみましたが、CS0103 現在のコンテキストに”A"という名前は存在しません。 となってしまいました
×: >>suferOnWww
〇: SurferOnWww さん>
おなたのお友達以外は呼び捨てはナシでいきましょう。
> {int A = A + 1; } ⇒ { A = A + 1; } としてみましたが、CS0103 現在のコンテキストに”A"という名前は存在しません。 となってしまいました
その上にある int A = 0; を消したのでは?
>>suferOnWwwさん
これは大変失礼しました。せっかく考えていただいたのに失礼で本当にすみません。
あと、int A = 0;を書く場所が違っていたようです。解決しました。
int A = 0;を{int A = A + 1; } ( void Update)のところではなく、
void Startのところに書いていました。(あれ、この方法も試したような気がするんだけどなあ)
本当にありがとうございます!!
細かい話ですみませんが・・・
>> というのはどこかで普通にやってることなんでしょうか? 自分の古い頭ではそれは 2 重引用なんです。誰かをハンドル名で呼びかけるときは、
ハンドル名さん>
というようにしていたのですが・・・ 時代が変わって、そういうのも変わったのかしら?
上の 2021/11/22 17:43 のコメントの件、回答欄に画像を貼っておきますので見てください。
修正したやつ(SurferOnWwwさんのアドバイスでやってみたやつ)も質問本文に追記してください。
ただし、元のコードは維持してください。
本来なら修正後のやつはなくていいですが、今回の場合、それ以前の問題な気がするので。(質問者さんの実力がわかりにくいから)
えーと、その回答でいいのでしょうか?
『僕でもわかるように説明して』とありますが、『なぜそうなるのか』まで知りたいという意味かと思ったんですが。(即物的なのがいいのか?)
SurferOnWwwさんへ
あまり日常で>>は使わないですけど、自分はこうやっています。今さっき返信するときもこれで伝わるかな?と思って書いたんですが...
BeatStarさんへ
ええと、書くいちが間違えていたのかと思って自分で勝手に考えたのですが、違いましたでしょうか?
あと、修正後の文は質問文に書いておきます。
@質問者fufufuIQさん
[2021/11/22 18:20]の質問編集を読んで:
コンパイルエラーが解消したから即、要望の動きになるとは限りません。
変数Aはずっと存在していて、Rキーが押されるごとに+1していきたいのでは?
まぁ、今のコードで良いというのであればそれで良いのですけど。
(私の勘違いだったようなので伏せる)
dodox86さんへ
このコードではそうならないのでしょうか?
> このコードではそうならないのでしょうか?
fufufuIQさんが最終的にどのような動きを求めているのか私にはいまだ分からないので、判断できません。実際に動かしてみて、そうならないのなら求めている最終形ではないということになります。何にせよ、実際に動かしてご自身で確認してください。
dodox86さんへ
はい、わかりました。まだコードを書ききっていないのでコードを頑張って書いてみます。
もし上手くできず、調べてもわからなかったら貴方様にお聞きしても良いでしょうか。
> もし上手くできず、調べてもわからなかったら貴方様にお聞きしても良いでしょうか。
それはまた新しい質問として投稿しましょう。その時はまた適切な回答が私以外からでもいただけると思います。
dodoxさんへ
わかりました。ありがとうございます。
回答2件
あなたの回答
tips
プレビュー