티스토리 뷰

카테고리 없음

본캠프_TIL_18일차

티-히히 2024. 10. 8. 21:24

오늘의 til은

유니티 입문과정 9강의 도전과제 입니다

 

 

 

 

1. 화살의 발사방향을 Arm의 회전에 맞게 조정해보세요.

private void CreateProjectile()
{
    // 화살을 생성합니다.
    // TODO : 화살이 실제로 날라가게 구현 / 오브젝트 풀을 통한 구조 개선
     Instantiate(testPrefab, projectileSpawnPosition.position, Quaternion.identity);
}

 

화살을 생성하는 함수입니다.

여기서 Instantiate함수는

- 유니티에서 제공하는 메소드로 오브젝트를 복사합니다.
-이 함수를 통해 생성된 게임 오브젝트는 독립적이며. 원본 개체에 대한 변화는 이에 영향을 주지 않습니다.

 

사용방법

Instantiate(Object original, Vector3 position, Quaternion rotation)

 

마지막 인자값인 Quaternion값을 적절하게 넣어주면 될 것 같습니다.

 

private void CreateProjectile()
{
    // 화살을 생성합니다.
    // TODO : 화살이 실제로 날라가게 구현 / 오브젝트 풀을 통한 구조 개선
    float rotZ = Mathf.Atan2(aimDirection.y, aimDirection.x) * Mathf.Rad2Deg;
    //화살 생성
    Instantiate(testPrefab, projectileSpawnPosition.position, Quaternion.Euler(0, 0, rotZ));
}

 

TopDownAimRotaion.cs에서 각도를 구해줬던 것 처럼 rotZ를 구해주고

Quaternion.Euler()을 이용해 가져온 값을 Quaternion화 해줍니다.

 

 

2. 화살이 앞으로 나갈 수 있게 만들어 보세요.

 private void CreateProjectile()
 {
     // 화살을 생성합니다.
     // TODO : 화살이 실제로 날라가게 구현 / 오브젝트 풀을 통한 구조 개선
     float rotZ = Mathf.Atan2(aimDirection.y, aimDirection.x) * Mathf.Rad2Deg;
     //화살 생성 및 이동
     GameObject arrow = Instantiate(testPrefab, projectileSpawnPosition.position, Quaternion.Euler(0, 0, rotZ));
     arrow.GetComponent<Rigidbody2D>().velocity = aimDirection * 5.0f;
 }

 

복사된 오브젝트를 arrow로 정의하고

GetComponent<Rigidbody2D>()로 arrow의 리기드 바디의 컴포넌트를 가져와줍니다.

velocity는 Rigidbody2D의 속도를 나타내는 속성으로 방향*속도(임의값)을 넣어줍니다.

 

 

 

 

3. 화살이 벽에 닿은 경우 사라지게 만들어 보세요.

public class ArrowScript : MonoBehaviour
{
    void OnCollisionEnter2D(Collision2D collision)
    {
        // 충돌한 오브젝트가 "Wall" 태그를 가지고 있는지 확인
        if (collision.gameObject.tag == "Wall")
        {
            Destroy(gameObject);  // 화살 오브젝트를 파괴
        }
    }
}

 

파괴되는 스크립트를 짜줍니다

 

 

콜리더와 리기드바디 컴포넌트를 넣어주고

작성한 스크립트를 넣어줍니다.

 

리기드 바디의 Gravity Scale 중력 조절은 0으로 해줍니다

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함