不能应用运算符“||”类型为“bool”和“Vector2”

问题描述 投票:0回答:1

我对编程有点陌生。我需要一些帮助,我正在编写代码,每当我按下特定对撞机大小的资产时,它就会被破坏,但我在制作它时遇到了一些麻烦,这是我目前拥有的代码!

using System.Collections;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using UnityEngine;

public class destroy : MonoBehaviour
{
    private BoxCollider2D box;

    // Start is called before the first frame update
    void Start()
    {

        box = GetComponent<BoxCollider2D>();
        box.isTrigger = true;
        box.size = new Vector2(1, 1);
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            if(box.isTrigger || box.size) 
            
            {
                Destroy(gameObject);
            }


        }


    }

}

错误是Cannot apply operator "||"类型为“bool”和“Vector2”,我知道问题出在哪里,但我无法解决...

c# visual-studio unity3d collider
1个回答
0
投票

你可以参考这篇关于Vector2的文档。 Vector 不是 BOOLEAN 类型,因此您的

box.istrigger || Box.size
不起作用。

可以改成

if (box.isTrigger || box.size.magnitude < 'the value you need (usually floating point type) ')

按照正常的逻辑,box.isTrigger是一个touch,要求box.size.magnitude在一定范围内。那么box.size.magnitude一定不能大于一定范围,这里用小于表示。

© www.soinside.com 2019 - 2024. All rights reserved.