質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

解決済

Card1とCard2のY座標が690の位置に移動したら、seikaicounterを1増やしたい

Ito
Ito

総合スコア1

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

2回答

0リアクション

0クリップ

293閲覧

投稿2022/10/03 09:34

編集2022/10/07 01:10

前提

Unityで神経衰弱みたいなゲームを作ろうとしています。

実現したいこと

Card1とCard2のY座標が690の位置に移動したら、seikaicounterを1増やしたい。

発生している問題・エラーメッセージ

Card1とCard2のY座標が690になっても、seikaicounterが増えない。

該当のソースコード

C#

using UnityEngine; public class GManager : MonoBehaviour { public GameObject Card1; public GameObject Card2; public GameObject Card3; public GameObject Card4; public GameObject Card5; public GameObject Card6; public GameObject Card7; public GameObject Card8; [SerializeField] private int selectcounter = 0; [SerializeField] private int seikaicounter = 0; // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { Transform Card1transform = Card1.transform; Vector3 Card1pos = Card1transform.position; Transform Card2transform = Card2.transform; Vector3 Card2pos = Card2transform.position; Transform Card3transform = Card3.transform; Vector3 Card3pos = Card3transform.position; Transform Card4transform = Card4.transform; Vector3 Card4pos = Card4transform.position; Transform Card5transform = Card5.transform; Vector3 Card5pos = Card5transform.position; Transform Card6transform = Card6.transform; Vector3 Card6pos = Card6transform.position; Transform Card7transform = Card7.transform; Vector3 Card7pos = Card7transform.position; Transform Card8transform = Card8.transform; Vector3 Card8pos = Card8transform.position; if(Card1pos.y == 690 && Card2pos.y == 690) { Debug.Log("nnn"); seikaicounter += 1; } if(selectcounter == 3) { selectcounter = 0; } } public void Card1Click() { selectcounter += 1; Transform Card1transform = Card1.transform; //transformを取得 Vector3 Card1pos = Card1transform.position; //座標を取得 Card1pos.y += 10; Card1transform.position = Card1pos; //座標を設定 } public void Card2Click() { selectcounter += 1; Transform Card2transform = Card2.transform; Vector3 Card2pos = Card2transform.position; Card2pos.y += 10; Card2transform.position = Card2pos; } public void Card3Click() { selectcounter += 1; Transform Card3transform = Card3.transform; Vector3 Card3pos = Card3transform.position; Card3pos.y += 10; Card3transform.position = Card3pos; } public void Card4Click() { selectcounter += 1; Transform Card4transform = Card4.transform; //transformを取得 Vector3 Card4pos = Card4transform.position; //座標を取得 Card4pos.y += 10; Card4transform.position = Card4pos; } public void Card5Click() { selectcounter += 1; Transform Card5transform = Card5.transform; //transformを取得 Vector3 Card5pos = Card5transform.position; //座標を取得 Card5pos.y -= 10; Card5transform.position = Card5pos; } public void Card6Click() { selectcounter += 1; Transform Card6transform = Card6.transform; //transformを取得 Vector3 Card6pos = Card6transform.position; //座標を取得 Card6pos.y -= 10; Card6transform.position = Card6pos; } public void Card7Click() { selectcounter += 1; Transform Card7transform = Card7.transform; //transformを取得 Vector3 Card7pos = Card7transform.position; //座標を取得 Card7pos.y -= 10; Card7transform.position = Card7pos; } public void Card8Click() { selectcounter += 1; Transform Card8transform = Card8.transform; //transformを取得 Vector3 Card8pos = Card8transform.position; //座標を取得 Card8pos.y -= 10; Card8transform.position = Card8pos; } }

試したこと

if文が原因だと思い、調べてみましたが分かりませんでした。

補足情報(FW/ツールのバージョンなど)

2020.3.20f

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

SurferOnWww

2022/10/03 11:21

Unity のタグをつけてください。
Kerupim

2022/10/06 02:24 編集

一応補足ですが、浮動小数点数値型でも整数だけ扱う場合は、誤差が生じることはありません。 また浮動小数点同士の計算で発生する誤差は Mathf.Approximately を使って比較したほうが良いかと思います。 ※何百回と計算するのであれば別の対応も必要ですが。 とりあえず成功時にデバッグログ確認を行うということをしているのであれば、 各Click関数内にもデバッグログを追加して座標がどうなっているかも見たほうがいいかと思います。
SurferOnWww

2022/10/06 02:27

Unity のタグをつけてください。Unity に興味のある人の目を引いて回答を得やするなるというあなたにとってのメリット、自分のように興味のない人はタグを見ただけでスルーできるというメリットがあります。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。