Menu
CoddyTech

구슬 골프

Coddy Unity 여정의 물리와 게임플레이 섹션에 포함된 레슨. 71개 중 68번째.

작은 잔디 코스에서 구슬로 골프를 쳐 보세요. 구슬은 티에서 시작합니다. 화살표 키로 구슬의 방향을 조준하고, 스페이스바를 길게 눌러 힘을 모은 다음 놓아서 쏘세요. 구슬은 굴러가고, 쿠션과 가운데 블록에 부딪혀 튕기며, 속도가 느려지다가 충분히 느려지면 완전히 멈춥니다. 그때가 되어야 다시 쏠 수 있습니다. 컵에 천천히 굴러 들어가는 구슬은 홀에 들어가지만, 너무 빠르게 도착한 구슬은 컵을 그대로 지나쳐 굴러갑니다. 타수가 적을수록 좋습니다.

스크립트 두 개를 작성하세요. 구슬에는 Golf를, 컵에는 Hole을 사용하세요.

challenge icon

챌린지

어려움

골프 구슬을 작성하세요: 조준하고, 힘을 모으고, 쏘세요.

  1. 원시 Horizontal 축을 사용해 aimSpeed만큼 aim을 회전시키고, pointer를 transform.position + Quaternion.Euler(0f, aim, 0f) * Vector3.forward에 놓으세요.
  2. 정지 상태(stopSpeed보다 속도가 낮을 때)에서 스페이스 키를 누르고 있으면 power가 chargeRate만큼 증가해 maxPower에 도달합니다. 키를 놓으면 조준 방향으로 발사(Impulse)하고, power를 초기화한 다음 "Stroke " + strokes를 로그에 기록합니다.
  3. FixedUpdate()에서 정지 상태일 때 두 속도를 모두 0으로 설정하세요.

‘플레이’를 누르고 퍼팅하세요. 그런 다음 ‘확인’을 누르세요.

직접 해보기

using UnityEngine;

public class Golf : MonoBehaviour
{
    public int strokes = 0;
    [SerializeField] private Transform pointer;
    [SerializeField] private float aimSpeed = 90f;
    [SerializeField] private float chargeRate = 4f;
    [SerializeField] private float maxPower = 6f;
    [SerializeField] private float stopSpeed = 0.3f;
    private Rigidbody rb;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    // 방향키로 조준하고, Space로 힘을 모은 뒤 키를 놓으면 발사하며, 속도가 느려지면 멈춘다
}

물리와 게임플레이의 모든 레슨

직접 연습해 보세요: Unity 플레이그라운드