2D raycasting игра отгоре надолу в unity3D

Правя игра, подобна на покемон, в която се разхождате. Това е 2d игра отгоре надолу. Въпреки това се опитвам да открия определена плочка пред себе си.

Моят герой е на Y 1, а картата на Y 0. Опитах се да препратя raycast, но не се получи.

ето какво опитах:

if (Input.GetKey("w") && isMoving == false)
        {
            bool disableMove = false;
            RaycastHit hit;
            if (Physics.Raycast(transform.position, Vector3.forward, out hit, 2))
            {
                var distanceToGround = hit.distance;
                Debug.Log("HIT");

                if (hit.collider.gameObject.tag == "collision")
                {
                    disableMove = true;
                    Debug.Log("Tree");
                }
            }
            if (!disableMove)
            {
                Calculatewalk();
                anim.Play("WalkingUp");
                increment = 0;
                isMoving = true;
                startPoint = transform.position;
                endPoint = new Vector3(transform.position.x, transform.position.y, transform.position.z + 1);
            }
            disableMove = false;
        }

person NullReference    schedule 24.04.2014    source източник
comment
наистина не работи ни казва много малко за проблема, с който се сблъсквате. Грешки при компилиране? Изключение по време на изпълнение? Какво са те? Търсили ли сте грешката в Google, за да разберете какво е и защо се случва? Или това е неочаквано поведение? Какво стана? Какво очакваше да се случи? Какво вече се опитахте да поправите това? Моля, опишете по-подробно.   -  person tnw    schedule 24.04.2014
comment
Това ще търси всяко дърво в посоката на гледане, независимо колко далеч е то, трябва да ограничите дължината, също така, ако вашата карта е организирана в клетки, не е ли по-лесно да тествате близките клетки?   -  person Gusman    schedule 24.04.2014
comment
Нищо не се случи, не откри нищо. Успях да мина направо покрай него. @tnw   -  person NullReference    schedule 24.04.2014
comment
Добавихте ли колайдер към плочката на вашата карта?   -  person Verv    schedule 25.04.2014
comment
Тъй като това е 2D игра, използвате ли 2D колайдери и настройката на Unity 2D по подразбиране? Ако е така, трябва да използвате Physics2D.Raycast и Vector3 ще бъде (0,1,0) или Vector3.Up   -  person wheelsx    schedule 25.04.2014


Отговори (2)


Ако колайдерите са 2D колайдери, използвайте Physics2D.Raycast

Ако не използвате новата система Unity 2D, не можем да ви помогнем много. Може би не сте в правилния Z слой. Също така Vector3.forward не изглежда много добър. Опитайте да използвате transform.forward.

Дано съм ти помогнал!

person Entwicklerpages    schedule 25.04.2014

xD защо имате javascript променлива, когато пишете в c#:

var distanceToGround = hit.distance;

линия 7

person User    schedule 08.01.2016
comment
Това трябва да е коментар. - person ρяσѕρєя K; 08.01.2016