我对编程有点陌生。我需要一些帮助,我正在编写代码,每当我按下特定对撞机大小的资产时,它就会被破坏,但我在制作它时遇到了一些麻烦,这是我目前拥有的代码!
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”,我知道问题出在哪里,但我无法解决...
你可以参考这篇关于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一定不能大于一定范围,这里用小于表示。