【问题标题】:How to find the length of a 2D game object in Unity如何在 Unity 中查找 2D 游戏对象的长度
【发布时间】:2014-03-26 01:45:37
【问题描述】:

我想为绝对初学者提供有关如何使用 Unity 查找 2D 游戏对象的长度/高度的答案。我试图弄清楚玩家是否点击了该对象,如下所示:

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
        }


    }
}

无论是否有更简单的方法可以找到他们是否触摸了图像(尽管告诉我),我想知道如果物体再次出现,如何计算它的高度和长度。谢谢!

【问题讨论】:

    标签: unity3d 2d


    【解决方案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);
    
    }
    

    Reference

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-04
    • 1970-01-01
    相关资源
    最近更新 更多