基于老的Input系统:
if (Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit2D hit2D = Physics2D.Raycast(new Vector2(ray.origin.x, ray.origin.y), Vector2.zero, 20, 1 << LayerMask.NameToLayer("Unit"));
if (hit2D)
{
unitMouseDown = hit2D.collider.GetComponent<Unit>();
}
}
基于新的Input系统:
if(mouse.leftButton.wasPressedThisFrame)
{
var onScreenPosition = mouse.position.ReadValue();
var ray = Camera.main.ScreenPointToRay(onScreenPosition);
var hit = Physics2D.Raycast(new Vector2(ray.origin.x,rayorigin.y),Vector2.zero,Mathf.Infinity);
if(hit.collider != null)
{
Debug.Log(hit.collider.gameObject.name);
hit.collider.gameObject.transform.position = ray.origin;
}
}