23/09/09 06:45:24.50 kCAfKsgC.net
クリック位置のオブジェクトをマウスでドラッグして移動したいのですが、以下のスクリプトだとドラッグ途中にオブジェクトが止まってしまいます。コメントアウトしている部分のtriangleは問題なくドラッグ出来るので、レイによる取得に問題があるようです。レイというのは案外不安定で、毎回同じ結果を返してくれるとは言えないのでしょうか?
public class getClickPositionObject : MonoBehaviour
{
[SerializeField] GameObject triangle;
GameObject clickedObject;
void Update()
{
if(Input.GetMouseButton(0))
{
//triangle.transform.position = camera.main.screentoworldpoint(input.mouseposition)
// + new vector3(0, 0, 10);
getObject().transform.position = Camera.main.ScreenToWorldPoint(Input.mousePosition)
+ new Vector3(0, 0, 10);
}
}
GameObject getObject()
{
//クリックされたゲームオブジェクト
clickedObject = null;
//レイキャストの始点と終点を決定 ,vector2
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
//ここでレイを飛ばす
RaycastHit2D hit = Physics2D.Raycast(ray.origin, ray.direction);
if (hit)
{
clickedObject = hit.transform.gameObject;
}
return clickedObject;
}
}