Как найти длину 2D игрового объекта в Unity

Я хотел бы получить ответ для абсолютного новичка в том, как найти длину/высоту 2D-игрового объекта с помощью Unity. Я пытаюсь выяснить, щелкнул ли игрок по объекту, например:

using UnityEngine;
using System.Collections;

public class LoadNewGame : MonoBehaviour {
    //Objects
    Touch t;
    GameObject g;
    //Coords
    int touchX;
    int touchY;
    int objectX;
    int objectY;
    //Size
    //int sizex
    //int sizey

    //Initialization
    void Start () {
        //Touch
        t = Input.GetTouch;

        //Object Position
        objectX = g.transform.position.x;
        objectY = g.transform.position.y;
        //initialize sizex and sizey
    }

    //Clickity Click Click
    void Update () {
        touchX = t.position.x;
        touchY = t.position.y;
        //If the player clicked on the object
        if(touchX <= objectX && 
           touchY <= objectY &&
           //touchX => objectX + sizeX &&
           //touchY => objectY + sizeY
           ){
            //Do Stuff
        }


    }
}

Независимо от того, есть ли более простой способ определить, коснулись ли они изображения (скажите, хотя), я хотел бы знать, как определить высоту и длину объекта, если он появится снова. Спасибо!


person Community    schedule 26.03.2014    source источник


Ответы (1)


В основном, что вы можете сделать, это выстрелить лучом в сцену, основываясь на координатах мыши, это затем сообщит о любых объектах, с которыми столкнулся луч.

Попробуй это:

RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);

if(hit.collider != null)
{

    Debug.Log ("Target Position: " + hit.collider.gameObject.transform.position);

}

Справочник

person Matthew Pigram    schedule 26.03.2014
comment
также в качестве примечания, вы должны размещать вопросы такого типа на gamedev.stackexchange.com, там вы получите гораздо лучшие ответы. - person Matthew Pigram; 26.03.2014