Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//從攝像機發出到點擊坐標的射線
RaycastHit hitInfo;
if (Physics.Raycast(ray, out hitInfo))
{
//Debug.DrawLine(ray.origin, hitInfo.point);//劃出射線,在scene視圖中能看到由攝像機發射出的射線
GameObject gameObj = hitInfo.collider.gameObject;
//Debug.Log(gameObj.name);
selectObj = gameObj;
Vector3 Mousepoint = Camera.main.ScreenToWorldPoint(Input.mousePosition);
MouseDownPostion = new Vector3(gameObj.transform.position.x - Mousepoint.x, gameObj.transform.position.y - Mousepoint.y, 0);
isMouseDown = true;
}
用的collider box來檢測碰撞,但是目標是sprite,包含透明通道,所以想點在透明的部分就不被碰撞檢測到該怎么辦或者提供下思路呢
uj5u.com熱心網友回復:
算出MouseDownPostion向量與世界中的圖片的焦點,再通過焦點獲取圖片上的Teature2d.GetPixcel(x,y).alpha是否==0轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/14045.html
標籤:Unity3D
下一篇:nc替代ping
