前提
unityでerrorが出てしまい、ゲームが再生できない。
unityで2dのゲームを制作しています。
オブジェクトのスケールが0になった場合、変数を1にする機能を実装したいのですが、以下のエラーメッセージが発生しました。
error CS0029: Cannot implicitly convert type 'UnityEngine.Vector3' to 'bool'
実際に書いたコードは以下の通りです。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class test : MonoBehaviour { //変数を指定 public int a; void Start() { } // Update is called once per frame void Update() { void OnCollisionEnter2D(Collision2D collision) { // 衝突した相手に"ball"タグが付いているとき if (collision.gameObject.name == "ball") { // オブジェクトのスケールを0にする transform.localScale = new Vector2(0.0f, 0.0f); //オブジェクトが0の時に if (transform.localScale = new Vector2(0.0f, 0.0f)) { // aが1になる a = 1; } }
実現したいこと
-初心者のため、何が原因でエラーになっているのかがわかりません。
//オブジェクトが0の時に if (transform.localScale = new Vector2(0.0f, 0.0f)) { // aが1になる a = 1; }
試しに上の演算子の部分を ~ localScale == new Vector2 ~
にしてみても別のエラーメッセージが出てきます。
error CS0034: Operator '==' is ambiguous on operands of type 'Vector3' and 'Vector2'
何が原因でこうなってるのかご教示いただけると幸いです。
回答2件
良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2022/11/16 14:19