Unity에서 비디오 감시 추가

Unity에서 비디오 감시 시스템을 만들면 게임이나 시뮬레이션에 흥미로운 깊이를 더할 수 있습니다. 스텔스 게임, 공포 경험 또는 보안 시뮬레이션을 개발하든 비디오 감시 시스템은 게임 플레이와 몰입감을 향상시킬 수 있습니다. 이 튜토리얼은 카메라, 렌더 텍스처 및 UI 요소를 사용하여 Unity에서 기능적인 비디오 감시 시스템을 설정하는 단계를 안내합니다.

1단계: 장면 설정

비디오 감시 시스템을 시작하기 전에 감시 카메라를 배치할 수 있는 기본 환경을 만들어야 합니다. 이미 장면이 있는 경우 이 단계를 건너뛸 수 있습니다.

  1. 파일 > 새 장면으로 가서 Unity에 새 3D 장면을 만듭니다.
  2. 지형이나 큐브를 몇 개 추가하여 벽과 바닥으로 활용하세요.
  3. 장면 주변에 3D 객체를 배치하여 시각적으로 흥미로운 장면을 만들고 카메라로 모니터링할 수 있는 영역을 제공합니다.
  4. 장면에 Player GameObject를 추가합니다. 표준 Unity 자산이나 사용자 정의 캐릭터 컨트롤러를 사용할 수 있습니다.

2단계: 감시 카메라 추가

비디오 감시 시스템의 핵심은 장면을 포착하는 카메라입니다. 우리는 여러 개의 감시 카메라를 만들어서 다른 구역을 감시하도록 설정합니다.

  1. 계층에서 마우스 오른쪽 버튼을 클릭하고 만들기 > 카메라를 선택하여 장면에 새 카메라를 추가합니다.
  2. 카메라를 모니터링하려는 위치에 배치합니다. 카메라를 Scene View에서 이동하고 회전하여 원하는 각도를 얻을 수 있습니다.
  3. 카메라 이름을 "SurveillanceCamera1"처럼 설명적인 이름으로 바꾸세요.
  4. 위의 단계를 반복하여 장면의 다양한 영역을 커버하는 여러 카메라를 만듭니다.
  5. 필요에 따라 각 카메라의 시야각클리핑 평면 속성을 조정하여 커버하는 영역을 더 늘리거나 줄입니다.

3단계: 카메라용 렌더 텍스처 생성

카메라의 감시 피드를 표시하려면 Render Textures을 사용해야 합니다. Render Textures는 Unity이 카메라의 출력을 렌더링할 수 있는 특수 텍스처로, 게임 화면에 카메라 피드를 표시할 수 있습니다.

  1. Project 창에서 Assets 폴더를 마우스 오른쪽 버튼으로 클릭하고 Create > Render Texture를 선택합니다.
  2. 새로운 렌더 텍스처의 이름을 "SurveillanceFeed1"으로 변경합니다.
  3. 렌더 텍스처를 선택하고 필요한 경우 해상도를 조정합니다. 해상도가 높을수록 품질이 좋아지지만 성능에 영향을 미칠 수 있습니다.
  4. "SurveillanceCamera1"의 Target Texture 속성을 "SurveillanceFeed1"에 할당합니다. 이렇게 하면 카메라가 뷰를 렌더 텍스처에 렌더링합니다.
  5. 각 감시 카메라의 렌더 텍스처를 생성하려면 이 과정을 반복합니다.

4단계: 화면에 카메라 피드 표시

이제 카메라가 텍스처를 렌더링하므로 이러한 텍스처를 게임 내 화면이나 UI 요소에 표시하여 실제 감시 시스템을 모방할 수 있습니다.

게임 내 화면 사용

  1. Quad 또는 Plane을 사용하여 장면에 3D 화면을 만들어 TV 또는 모니터 화면으로 활용하세요.
  2. 계층에서 마우스 오른쪽 버튼을 클릭하고 만들기 > 3D 개체 > 사각형을 선택합니다.
  3. 화면을 원하는 위치에 Quad를 배치하세요.
  4. Assets 폴더에서 마우스 오른쪽 버튼을 클릭하고 Create > Material을 선택하여 새 소재를 만듭니다. 이름을 "SurveillanceScreen1"으로 지정합니다.
  5. 머티리얼의 ShaderUnlit/Texture로 설정합니다. 이 셰이더는 조명 효과 없이 텍스처를 표시합니다.
  6. "SurveillanceFeed1"을 재질의 Main Texture 속성에 할당합니다.
  7. "SurveillanceScreen1" 재질을 Quad로 끌어서 적용합니다.
  8. 필요에 따라 다른 위치에 여러 개의 화면을 만들어 각 카메라 피드에 대해 단계를 반복합니다.

UI 요소 사용

  1. 마우스 오른쪽 버튼을 클릭하고 만들기 > UI > 캔버스를 선택하여 계층 구조캔버스를 만듭니다.
  2. 캔버스 내부에서 캔버스를 마우스 오른쪽 버튼으로 클릭하고 만들기 > UI > 원시 이미지를 선택하여 원시 이미지를 만듭니다.
  3. 원하는 화면 크기에 맞게 Raw Image의 크기와 위치를 조정하세요.
  4. Raw Image의 텍스처로 "SurveillanceFeed1"을 할당합니다.
  5. 이 단계를 반복하여 각각 다른 카메라 피드를 표시하는 여러 개의 Raw 이미지를 만듭니다.

5단계: 카메라 피드 간 전환

더욱 역동적인 감시 시스템을 위해 플레이어가 다양한 카메라 피드 사이를 전환할 수 있도록 허용할 수 있습니다. 이는 간단한 스크립트를 사용하여 수행할 수 있습니다.

카메라 스위처 스크립트 만들기

using UnityEngine;
using UnityEngine.UI;

public class CameraSwitcher : MonoBehaviour
{
    public RenderTexture[] cameraFeeds; // Assign RenderTextures in the Inspector
    public RawImage displayImage; // Assign the UI Raw Image in the Inspector

    private int currentFeedIndex = 0;

    void Start()
    {
        if (cameraFeeds.Length > 0)
        {
            displayImage.texture = cameraFeeds[currentFeedIndex];
        }
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space)) // Use Space to switch feeds
        {
            currentFeedIndex = (currentFeedIndex + 1) % cameraFeeds.Length;
            displayImage.texture = cameraFeeds[currentFeedIndex];
        }
    }
}
  1. CameraSwitcher이라는 새로운 C# 스크립트를 만들고 위의 코드를 추가합니다.
  2. 씬의 빈 GameObject에 스크립트를 연결합니다.
  3. Inspector에서 RenderTexture 에셋과 Raw Image 구성 요소를 할당합니다.
  4. 재생을 누르고 스페이스 키를 사용하여 카메라 피드를 전환합니다.

6단계: 추가 효과 추가

감시 시스템을 보다 사실적이고 매력적으로 만들려면 정적, 노이즈, 오버레이와 같은 효과를 추가하여 간섭을 시뮬레이션하거나 몰입감을 높일 수 있습니다.

정적 효과 추가

셰이더를 만들거나 Unity Asset Store에서 셰이더 에셋을 사용하여 정적 노이즈 효과를 추가합니다. 감시 화면 소재에 적용하거나 후처리 효과를 사용하여 카메라 피드에 직접 적용합니다.

카메라 움직임 시뮬레이션

또한 감시 시스템을 더욱 역동적으로 만들기 위해 약간의 움직임이나 무작위 카메라 흔들림을 추가할 수도 있습니다. 이를 위해 각 카메라에 스크립트를 첨부합니다.

public class CameraSway : MonoBehaviour
{
    public float swayAmount = 0.5f;
    public float swaySpeed = 0.5f;

    private Vector3 initialPosition;

    void Start()
    {
        initialPosition = transform.position;
    }

    void Update()
    {
        float sway = Mathf.Sin(Time.time * swaySpeed) * swayAmount;
        transform.position = initialPosition + new Vector3(0, sway, 0);
    }
}

결론

이러한 단계를 따르면 Unity에서 여러 카메라 피드, 동적 화면 전환 및 사실적인 효과를 갖춘 강력한 비디오 감시 시스템을 만들 수 있습니다. 이 시스템은 스텔스 게임부터 공포 모험까지 다양한 장르의 게임 플레이 메커니즘을 크게 향상시킬 수 있습니다. 다양한 설정과 스크립트를 실험하여 게임의 고유한 요구 사항에 맞게 감시 시스템을 조정하세요.