카테고리 없음

2025_03_14 TIL

chajungto0211 2025. 3. 14. 22:13
이 글은 평범한 취준생이 평범하게 자신이 당일 배운것들과 느낀점들을 쓰기 때문에 정보가 정확하지 않을 수 있습니다.

유니티 3D 팀플 2일차. 생각보다 진도는 많이 나간것 같지 않으면서도, 무언가 많이 한 기분이다. 아마도 오늘은 앞으로 계속 하게 될 스테이지 만드는 작업을 끝냈기 때문인거 같다. 오늘 본인이 했던 내용을 알아보자.

 

1. CCTV 기믹

단순하게 CCTV가 비추는 영역을 눈으로 보여주고, 해당 영역이 120도씩 회전하여 번갈아가면서 비추어주고, 해당 영역에 닿으면 감지가 되는 기믹이다. 먼저, 영상과 코드를 살펴보자

 

using DG.Tweening;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SecrityCam : MonoBehaviour
{
    public GameObject camLight;

    void Start()
    {
        Sequence sequence = DOTween.Sequence();
        sequence.Append(camLight.transform.DOLocalRotate(new Vector3(20, -330, 0), 5f).SetEase(Ease.Linear));
        sequence.AppendInterval(2f); 
        sequence.Append(camLight.transform.DOLocalRotate(new Vector3(20, -210, 0), 5f).SetEase(Ease.Linear));
        sequence.AppendInterval(2f);
        sequence.SetLoops(-1);
        sequence.Play();
    }
}

 

사실상 CCTV 자체는 하나의 모델이라서 돌아가게 하지 못했고, 빛 자체를 Dotween을 사용하여 회전하게끔 만들었다. 그리고 해당 작동이 반복되게 하기 위해서 SetLoops(-1)로 설정했다. 그리고 감지하는 코드를 살펴보자.

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

public class SensingRange : MonoBehaviour
{
    public void OnTriggerEnter(Collider other)
    {
        if(other.gameObject.layer == LayerMask.NameToLayer("Player"))
        {
            Debug.Log("감지됨!");
        }
    }
}

사실상 간단하다. 회전작업을 실행하고 있는 빛의 자식으로 빈 오브젝트를 하나 넣어주고, 빈 오브젝트 안에는 빛이 비추는 영역의 모양으로 콜라이더를 설정해준다. 이렇게 하면 해당 콜라이더도 같이 회전하기 때문에, 영역안에 Player가 들어가게 되면 감지를 성공적으로 마무리한다.

 

2. 키패드 기믹

키패드가 하나 존재하고, 해당 키패드에서 입력한 숫자와 정답 숫자가 일치하면 문이 열리는 기믹이다. 사실 이 기믹은 구현하기 쉬웠다 KeyPad의 에셋을 들고올 때, 해당 스크립트도 같이 제공되었기 때문이다. 난 그냥 이 에셋에 성공할 때 문이 열리는 연출 및 기믹만 해당 코드에 추가해주었다. 무료에셋이지만 해당 코드가 전부 노출될 까봐 코드는 공개를 못하겠지만, 사용한 에셋을 올려두어야겠다.

https://assetstore.unity.com/packages/3d/props/electronics/keypad-free-262151

 

Keypad FREE | 3D 전자제품 | Unity Asset Store

Elevate your workflow with the Keypad FREE asset from Navarone. Find this & other 전자제품 options on the Unity Asset Store.

assetstore.unity.com

 

오늘은 이것만 한게 아니라 다른 역할과 협업한 부분이 대다수이다. 다만 내가 아직 다른 분들이 작업한 것들을 다 이해하고 작성한 것은 아니라서, 만약 다 이해했다면 적어 볼 예정이다. 다들 즐거운 주말 보내길 바란다.