Переписываю код из книги: Unity в действии 3 издание
а IDE и Unity выдаёт ошибку :
Ошибка CS1061 "Collider[]" не содержит определения "SendMessage", и не удалось найти доступный метод расширения "SendMessage", принимающий тип "Collider[]" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку).
Код открывания двери:
public class DoorOpenDevice : MonoBehaviour
{
[SerializeField] Vector3 dPos;
private bool open;
public void Operate()
{
if (open)
{
Vector3 pos = transform.position - dPos;
transform.position = pos;
}
else
{
Vector3 pos = transform.position + dPos;
transform.position = pos;
}
open = !open;
}
}
Активация предыдущего кода, цепляю на игрока
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DeviceOperator : MonoBehaviour
{
public float radius = 1.5f;
void Update()
{
if (Input.GetKeyDown(KeyCode.C))
{
Collider[] hitColliders = Physics.OverlapSphere(transform.position, radius);
foreach (Collider hitcollider in hitColliders)
{
hitColliders.SendMessage("Operate",SendMessageOptions.DontRequireReceiver);
}
}
}
}