示例#1
0
    public void LookupColliders <T>(OBB bounds, List <T> list) where T : Collider
    {
        List <MeshColliderLookup.LookupEntry> data = this.meshLookup.src.data;

        for (int index = 0; index < data.Count; ++index)
        {
            MeshColliderLookup.LookupEntry lookupEntry = data[index];
            if (Object.op_Implicit((Object)lookupEntry.collider) && ((OBB) ref lookupEntry.bounds).Intersects(bounds))
            {
                list.Add(lookupEntry.collider as T);
            }
        }
    }
    public void LookupColliders <T>(OBB bounds, List <T> list)
        where T : Collider
    {
        List <MeshColliderLookup.LookupEntry> lookupEntries = this.meshLookup.src.data;

        for (int i = 0; i < lookupEntries.Count; i++)
        {
            MeshColliderLookup.LookupEntry item = lookupEntries[i];
            if (item.collider && item.bounds.Intersects(bounds))
            {
                list.Add((T)(item.collider as T));
            }
        }
    }
    public void LookupColliders <T>(Vector3 position, float distance, List <T> list)
        where T : Collider
    {
        List <MeshColliderLookup.LookupEntry> lookupEntries = this.meshLookup.src.data;
        float single = distance * distance;

        for (int i = 0; i < lookupEntries.Count; i++)
        {
            MeshColliderLookup.LookupEntry item = lookupEntries[i];
            if (item.collider && (item.bounds.ClosestPoint(position) - position).sqrMagnitude <= single)
            {
                list.Add((T)(item.collider as T));
            }
        }
    }
示例#4
0
    public void LookupColliders <T>(Vector3 position, float distance, List <T> list) where T : Collider
    {
        List <MeshColliderLookup.LookupEntry> data = this.meshLookup.src.data;
        float num = distance * distance;

        for (int index = 0; index < data.Count; ++index)
        {
            MeshColliderLookup.LookupEntry lookupEntry = data[index];
            if (Object.op_Implicit((Object)lookupEntry.collider))
            {
                Vector3 vector3 = Vector3.op_Subtraction(((OBB) ref lookupEntry.bounds).ClosestPoint(position), position);
                if ((double)((Vector3) ref vector3).get_sqrMagnitude() <= (double)num)
                {
                    list.Add(lookupEntry.collider as T);
                }
            }
        }
    }