RayCast работает только иногдаC#

Место общения программистов C#
Ответить
Anonymous
 RayCast работает только иногда

Сообщение Anonymous »

Я использую рейкаст, чтобы получить столкновение. Мой игрок может двигаться во всех направлениях (север, восток, юг и запад) по одному шагу за раз, но если на его пути встанет препятствие, он не будет двигаться. Для справки, это похоже на игру Crossy Road.
Обнаружение препятствий иногда работает, но иногда оно не обнаруживает столкновений, и игрок наступает на препятствие.
У меня есть RigidBody и коллайдер, прикрепленные к игроку, и коллайдеры есть только на препятствиях.
[img]https://i .sstatic.net/ut8e1.png[/img]

Код:
if(Input.GetKeyUp(KeyCode.W))
{
PlayerScale = 1;
this.transform.localScale = new Vector3 (1,PlayerScale,1);

if((Physics.Raycast(MidRay , Vector3.forward,out hit,2f)) ||(Physics.Raycast(LeftRay , Vector3.forward,out hit,2f))||(Physics.Raycast(RightRay , Vector3.forward,out hit,2f)) )
{
if(hit.collider.tag == "Obs")
{
Debug.Log("CantMove");
}
else
{
Score +=1;
TargetPos = new Vector3(this.transform.position.x,this.transform.position.y,this.transform.position.z+MoveDist);
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/314 ... -sometimes
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»