Я не знаю, почему я его получаю. Он появляется только тогда, когда raycast ударяет по объекту.Почему я получаю исключение NullReferenceException, когда пытаюсь выписать тег игрового объекта, что было поражено raycast?
void Update(){
RaycastHit2D hitSideRight = new RaycastHit2D();
hitSideRight = Physics2D.Raycast (transform.position, Vector2.right, 1.2f, 1 << LayerMask.NameToLayer("Ground"));
Debug.DrawRay (transform.position, Vector2.right* 1.2f);
RaycastHit2D hitSideLeft = new RaycastHit2D();
hitSideLeft = Physics2D.Raycast (transform.position, -Vector2.right, 1.2f, 1 << LayerMask.NameToLayer("Ground"));
Debug.DrawRay (transform.position, -Vector2.right* 1.2f);
if(hitSideLeft.collider != null || hitSideRight.collider != null){
CancelMove();
Debug.Log(hitSideRight.collider.tag.ToString());
}
}
Я получаю сообщение об ошибке для этой строки кода (только тогда, когда луч контактирует с объектом): Debug.Log(hitSideRight.collider.tag.ToString());
Вы получить NRE, когда он фактически столкнулся с левой стороной (что делает ваше условие истинным), а не правой? И нет необходимости в «новых» двух ваших RaycastHit2D. – Bart
, но если я не использую новый, это просто простой указатель, не так ли? – Gabe