본문 바로가기

Unity/제로부터 구현

마우스 이동에 따른 물체 옮기기, PlayerPrefs를 이용한 최고 점수 저장 밑 불러오기

728x90

오늘의 구현

1. 물체를 마우스의 포지션에 따라 이동시키기 + 이동 영역 제한하기

 

 private void Awake()
    {
        camera = Camera.main;
        cameraHeight = camera.orthographicSize;
        cameraWidth = cameraHeight * camera.aspect;
        min = new Vector2(-cameraWidth + padding, -cameraHeight + padding);
        min = new Vector2(cameraWidth - padding, cameraHeight - padding);
    }
    
     void ClampingPosition()
    {
        Vector3 mousePosition = camera.ScreenToWorldPoint(Input.mousePosition);
        float clampX = Mathf.Clamp(mousePosition.x, min.x, max.x);
        float clampY = Mathf.Clamp(mousePosition.y, min.y, max.y);
        Vector3 clampingMousePosition = new Vector3(clampX, clampY, 1);

        transform.position = clampingMousePosition;

    }

1 . 이동 제한 범위를 설정해 줍니다.

2. 마우스의 포지션을 월드좌표로 변환해 준뒤 클램핑을 해줍니다.

  • 마우스 포지션이 위에서 정해준 범위를 넘어가면 정해진 범위값으로 유지 시켜줍니다.

3. 해당 물체에 클램핑한 좌표를 넣어줍니다.

 

2.점수 저장, 점수 불러오기

PlayerPrefs는 간단한 게임 데이터를 로컬에 저장하고 검색하는 데 사용됩니다. 주로 게임 설정, 사용자 기록, 레벨 진행 등을 저장하고 관리하는 데 활용됩니다.

데이터 저장 : PlayerPrefs.Set자료형(key,value)

데이터 검색 : PlayerPrefs.Get자료형(key)

 void SetTotalScore()
    {
        if(PlayerPrefs.GetFloat("totalScore") == null || PlayerPrefs.GetFloat("totalScore") < time)
        {
          PlayerPrefs.SetFloat("totalScore", time);
          totalScore.text = time.ToString("N2");
        }
        else
        {
            totalScore.text = PlayerPrefs.GetFloat("totalScore").ToString("N2");
        }
    }
728x90