└▷던지기
던지기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>");
}
}
컴퓨터의 업데이트 속도를 내가 따라갈 수가 없다는 사실을 알았다.
무리한 건 하지 말자.