Raycast2D

Общие вопросы о Unity3D

Raycast2D

Сообщение Lolipop 19 мар 2017, 07:31

Как работают рейкасты в 2д?
У меня неправильно считывается hit.point(
Элементарный код:
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Weapon : MonoBehaviour {

    public float Modifier;

        void Start () {
               
        }
       
        void Update () {
        Ray2D ray = new Ray2D(transform.position, GameObject.Find("JoystickFireSocle").transform.localPosition);
        RaycastHit2D hit = new RaycastHit2D();
        if (true)
        {
            hit = Physics2D.Raycast(ray.origin, ray.direction, 1000f);
            Debug.DrawRay(ray.origin, hit.point, Color.white, 10);
            Debug.DrawRay(ray.origin, ray.direction * 1000f, Color.red, 10);
           // Debug.Log("Ray direction" + ray.direction);
        }

    }
}


А вот результат дебага(Обращайте внимание только на белый)
http://uploads.ru/1jA4k.png
http://uploads.ru/f7mFV.png
FireSocle - сосочек джойстика справа)
ЭЩКЕРЕ!
Аватара пользователя
Lolipop
UNIт
 
Сообщения: 141
Зарегистрирован: 05 окт 2016, 14:21

Re: Raycast2D

Сообщение samana 19 мар 2017, 10:57

Меня настораживают следующие моменты:

- почему вы создаёте луч2д передавая в качестве параметров две позиции, когда нужно передать начальную позицию и направление?

- почему первый параметр в создании луча2д это глобальная позиция объекта, а второй параметр это локальная позиция объекта? Локальная позиция всегда может быть равна нулю, где бы объект не находится. Здесь надо либо два глобальных параметра либо два локальных.

- объект на котором этот скрипт и объект "JoystickFireSocle" - где находятся? Это случайно не спрайт в 3д мире и объект UI из канваса?
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Raycast2D

Сообщение Lolipop 19 мар 2017, 11:37

Оба предмета в игре. Луч пускаб от позиции игрока по направлению сосочка. Если через ремут сосочек сдвинуть(он кодом не может выходить за пределы самого джойстика) то красный луч корректно пускается в разные стороны.

Вечером буду дома, сниму видеоролик с работой лучей...
ЭЩКЕРЕ!
Аватара пользователя
Lolipop
UNIт
 
Сообщения: 141
Зарегистрирован: 05 окт 2016, 14:21


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: GoGo.Ru [Bot], Google [Bot] и гости: 16