벽돌깨기 게임을 만들면서 패들은 마우스커서를 따라가는것으로 되어있는데
마우스 커서가 밖으로 나가면 패들도 같이 벽을 뚫고 나가는 문제가 있었다.
다음은 문제를 해결하기 위해 게임오브젝트 Paddle에 적용한 코드이다.
public class Playermove : MonoBehaviour
{
public float cursorSpeed = 9f; // 마우스 커서 속도 조절
void Start()
{
}
void Update()
{
//화면 상의 마우스 좌표(Input.mousePosition)를 월드 좌표로 변환하는 코드
Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
// y 좌표는 그대로 유지, 메인 카메라 안에서만 이동
mousePosition.y = transform.position.y;
mousePosition.z = transform.position.z;
// 메인 카메라의 시야 겅계 가져오기
float cameraHalfWidth = Camera.main.orthographicSize * Camera.main.aspect;
// x 좌표를 메인 카메라의 시야 경계로만큼 제한
mousePosition.x = Mathf.Clamp(mousePosition.x, -cameraHalfWidth, cameraHalfWidth);
// 마우스 커서 따라가기
transform.position = Vector3.Lerp(transform.position, mousePosition, Time.deltaTime * cursorSpeed);
}
}
