Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 比我要求的还要多_C#_Unity3d - Fatal编程技术网

C# 比我要求的还要多

C# 比我要求的还要多,c#,unity3d,C#,Unity3d,我有一个角色,我在他的脸上创建了一个重叠框,我通过gizmo绘制它,但出于某种原因,它甚至在对象进入gizmo绘制的区域之前检测到对象。如果我创建了重叠球体,那么一切都很好 private Vector3 overlapPos,overlapSize; 私有无效攻击() { if(Input.GetKeyDown(KeyCode.Mouse1)) { var cam=Vector3.Scale(transform.forward,new Vector3(1,0,1))。标准化; 重叠位置=新矢量

我有一个角色,我在他的脸上创建了一个重叠框,我通过gizmo绘制它,但出于某种原因,它甚至在对象进入gizmo绘制的区域之前检测到对象。如果我创建了重叠球体,那么一切都很好

private Vector3 overlapPos,overlapSize;
私有无效攻击()
{
if(Input.GetKeyDown(KeyCode.Mouse1))
{
var cam=Vector3.Scale(transform.forward,new Vector3(1,0,1))。标准化;
重叠位置=新矢量3(transform.position.x,transform.position.y+1.2f,transform.position.z);
重叠位置+=凸轮*1.2f;
重叠大小=新矢量3(2.5f,1.7f,2f);
物理学;
var enemys=Physics.overlappox(overlapPos、overlapSize、transform.localRotation);
foreach(敌人中的对撞机列)
打印(col.gameObject.name);
//enemyGO.GetComponent().TakeDamage(10);
}
}
void FixedUpdate()
{
攻击();
}
private void OnDrawGizmos()
{
Gizmos.color=color.green;
Gizmos.matrix=Matrix4x4.TRS(overlapPos、transform.localRotation、overlapSize);
Gizmos.DrawWireCube(Vector3.0,Vector3.1);
}

注意,的第二个参数称为
halfExtends

每个维度中方框大小的一半

因此,您更希望使用重叠框大小的一半

Physics.overlappox(overlapPos,overlapSize*0.5f,transform.localRotation);
或者必须更改小控件才能显示校正的双尺寸

Gizmos.DrawWireCube(Vector3.zero,Vector3.one*2);
这是,不是。