└▷던지기

던지기1

101won 2024. 9. 1. 18:21

 

콜리전과 리지드바디를 컴포넌트를 붙여 밖으로 나가지 않게 막았다.

적절한 회전과 이동 거리를 찾는데 오래 걸림. 역시 밸런스가 노가다..

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Controler : MonoBehaviour
{
    float rotationSpeed = 0f;
    private float mousePos;
    float moveDistance; // 마우스 이동 거리

    void Update()
    {
        // 기본 회전 z값 설정
        this.transform.Rotate(0, 0, rotationSpeed);

        // 마우스 다운/업
        bool down = Input.GetMouseButtonDown(0);
        bool up = Input.GetMouseButtonUp(0);

        // 만약 마우스를 다운 하면~
        if (down)
        {
            // 위로 올릴 거니까 마우스 y좌표를 입력 받음
            mousePos = Input.mousePosition.y;
           // Debug.Log("클릭함");
        }

        // 만약 마우스를 업하면~
        if (up)
        {
            // 마우스가 이동한 거리를 양수로 반환
            moveDistance = Mathf.Abs(mousePos - Input.mousePosition.y)*0.0008f;

            // 손을 떼면 z회전 값을 변경한다.
            rotationSpeed = 5000f;
        }

        // 손을 떼면 이동 거리를 월드 좌표를 기준으로 y축에 반영해 움직임
         this.transform.Translate( 0, moveDistance, 0, Space.World);

        // 이동 거리 줄임
        moveDistance *= 0.9f;
       // Debug.Log($"<color=yellow>이동 거리:{moveDistance}</color>");

        // 회전 속도를 줄임
        rotationSpeed *= 0.96f;
        // Debug.Log($"<color=blue>회전 속도:{rotationSpeed}</color>");
    }
}

 

컴퓨터의 업데이트 속도를 내가 따라갈 수가 없다는 사실을 알았다.

무리한 건 하지 말자.