我想在统一移动设备中选择精灵。因此,我认为一种方法是将按钮组件添加到Sprite,但是当我这样做时,它不起作用。
我对普通按钮做了同样的事情,在单击功能和按钮上添加了脚本。但是不能在Sprite中做同样的事情。
我想念什么吗?
如果有人知道在手机中选择游戏对象的另一种更好方法,请告诉 例如,我想通过单击来升级游戏对象。
答案 0 :(得分:1)
我不确定我是否完全了解您的目标,但是如果您只是想检测用户是否在移动设备上单击了游戏对象,可以使用Input.touches
void Update()
{
for (int i = 0; i < Input.touchCount; i++)
{
if (Input.GetTouch(i).phase == TouchPhase.Began)
{
Vector3 p = Camera.main.ScreenToWorldPoint(Input.GetTouch(i).position);
int layerMask = 1 << objectLayer;
Ray ray = new Ray(p, Vector3.forward * distance);
RaycastHit2D hit = Physics2D.GetRayIntersection(ray, distance, layerMask);
if (hit.collider != null)
{
YourObject obj = hit.collider.GetComponent<YourObject>();
if (obj != null)
{
// player clicked on the object
}
}
}
}
}
我没有测试该代码,但是它应该大致适用于2D,objectLayer
是对象层的索引,distance
是Raycast应该走多远。
我从来没有为3D做过这样的事情,但我想那会是相似的。