You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity代码报错CS1061求助:Collider2D[]无length定义

Unity C# 碰撞检测代码报错修复

原问题代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Collidable : MonoBehaviour
{
    public ContactFilter2D filter;
    private BoxCollider2D boxCollider;
    private Collider2D[] hits = new Collider2D[10];

    protected virtual void Start()
    {
        boxCollider = GetComponent<BoxCollider2D>();
    }

    protected virtual void update()
    {
        // Collision work
        boxCollider.OverlapCollider(filter, hits);
        for (int i = 0; i < hits.length; i++)
        {
            if (hits[i] == null)
                continue;

            Debug.Log(hits[i].name);

            // The array is not cleaned up, so we do it ourself
            hits[i] = null;
        }
    }
}

报错信息:

error CS1061: 'Collider2D[]' does not contain a definition for 'length' and no accessible extension method 'length' accepting a first argument of type 'Collider2D[]' could be found (are you missing a using directive or an assembly reference?)


修复要点:

  • 数组长度属性大小写错误:C#中数组的长度属性是Length(首字母大写),不是小写的length,这是触发报错的直接原因。
  • Update方法名大小写错误:Unity MonoBehaviour的帧更新方法必须是大写的Update,小写的update不会被Unity自动调用,你的碰撞检测逻辑根本不会执行。
  • 优化遍历效率:boxCollider.OverlapCollider会返回实际检测到的碰撞体数量,用这个返回值来遍历数组,不用循环整个数组的10个元素,避免无效的空值判断。

修复后完整代码:

using System.Collections;
using System.Collections;
using UnityEngine;

public class Collidable : MonoBehaviour
{
    public ContactFilter2D filter;
    private BoxCollider2D boxCollider;
    private Collider2D[] hits = new Collider2D[10];

    protected virtual void Start()
    {
        boxCollider = GetComponent<BoxCollider2D>();
    }

    protected virtual void Update()
    {
        // 获取实际碰撞到的数量
        int hitCount = boxCollider.OverlapCollider(filter, hits);
        
        for (int i = 0; i < hitCount; i++)
        {
            Debug.Log(hits[i].name);

            // 清空当前元素,避免下一帧残留
            hits[i] = null;
        }
    }
}

内容的提问来源于stack exchange,提问作者Niks Rodžers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 18:06:19