я создаю скрипт проверки земли, и на Collider2D.bounds он показывает ошибку Ссылка на объект требуется для нестатического поля, метода или свойства «Collider2D.bounds».
Там скрипт:
public class PlayerScript : MonoBehaviour
{
[SerializeField] float speed = 10f;
private Animation rotate_anim;
// Start is called before the first frame update
void Start()
{
rotate_anim = GetComponent<Animation>();
}
// Update is called once per frame
void Update()
{
Jump();
}
void Jump(){
//not there
}
private bool isGrounded(){
RaycastHit2D raycasthit2d = Physics2D.BoxCast(CircleCollider2D.bounds.center, CircleCollider2D.bounds.size, 0f, Vector2.down * 1f);
return raycasthit2d.collider !=null;
}
}
Вам нужно получить доступ к экземпляр класса CircleCollider2D, пока вы пытаетесь получить доступ к самому классу. Когда вы пытаетесь получить доступ к классу, вы можете использовать только статические методы, потому что среда выполнения не может узнать, к какому экземпляру класса вы пытаетесь получить доступ. Сначала вам нужно прикрепить компонент коллайдера к вашему проигрывателю в методе Start, как вы это сделали с Animation.
private Animation rotate_anim;
private CircleCollider2D collider;
// Start is called before the first frame update
void Start()
{
rotate_anim = GetComponent<Animation>();
collider = GetComponent<CircleCollider2D>();
}
Далее вам нужно предоставить коллайдер функции BoxCast.
RaycastHit2D raycasthit2d = Physics2D.BoxCast(collider.bounds.center, collider.bounds.size, 0f, Vector2.down * 1f);
Пожалуйста, используйте правильные теги! Обратите внимание, что
[unityscript]
— это или лучше был собственный язык, похожий на JavaScript, который использовался в ранних версиях Unity, а сейчас — давно устарел. ваш код, конечно, вc#