Unity 22

캐릭터와 오브젝트 상호작용(Raycast, public Interface IInteractable 코드 사용)

캐릭터와 오브젝트가 상호작용하기 위해선 Raycast 기능을 사용해야 한다. ● Raycast란?- unity에서 제공하는 강력한 물리 시스템 기능 중 하나로, 특정 방향으로 가상의 광선(Ray)를 쏘아 충돌한 오브젝트를 가지하는 기능 ※ 기본 구조 Physics.Raycast(시작점, 방향, 충돌체 저장, 거리(, +특정 레이어))Physics.Raycast(player.transform.position, player.transform.forward, out hit, 10f(, +targetLayer))  ※ 알아야할 코드들//✔ Ray 시각화 하기Debug.DrawRay(player.transform.position, player.transform.forward*5f, Color.red, 1f);//..

Unity/캐릭터 2025.03.19

캐릭터 이동 구현 (Character Controller)

1. 컴포넌트 세팅 Slope Limit (기울기 제한) 캐릭터가 올라갈 수 있는 최대 경사각을 설정- 45로 설정하면 45도 이상의 경사면은 올라가지 못함.Step Offset (계단 높이 보정) 해당 값 이하의 높이를 자동으로 넘을 수 있도록 설정 - 플레이어가 자잘한 장애물에 걸리지 않게 해줌. Skin Width (스킨 두께) 콜라이더 표면에서 충돌을 감지하는 버퍼 거리- 너무 작은 값이면 벽에 박거나 충돌 버그 발생 / 너무 크면 충돌이 이상하게 감지될 수 있음. Min Move Distance (최소 이동 거리) 플레이어가 최소한으로 움직여야 적용되는 거리- 너무 작으면 이동 감지가 너무 자주 발생하여 성능에 영향Center (중심 위치) Character Controller의 중심 위치를 설..

Unity/캐릭터 2025.03.19

캐릭터 이동 구현 종류 (Character Controller / Rigidbody)

캐릭터 이동을 구현하는 방법은 여러가지가 있겠지만 나는 크게 2가지로 나누어봤다.  Character Controller 컴포넌트를 사용하는 경우Rigidbody 컴포넌트를 사용하는 경우적용 대상●  FPS●  3D 탐색형 게임● 플랫폼 게임● 물리 기반 게임● 레이싱 게임● 스포츠 게임핵심 특징- 이동을 Move() 메서드로 직접 제어- 충돌 감지는 가능하지만 물리 반응(튕기기 미끄러짐 등)X- 중력과 점프는 직접 코드로 구현- AddForce()를 통해 물리 엔진을 활용하여 자연스러운 가속, 감속 구현 가능- 중력, 마찰력, 충돌 반응을 자동으로 처리장점● 정확하고 예측 가능한 움직임 가능- 이동이 Move() 메서드로 처리 되기 때문에 불안정한 물리 충돌 X - 정확한 경로로 이동해야 하는 게임에 ..

Unity/캐릭터 2025.03.19

Animation Event 함수 등록 (+발생 가능 에러)

애니메이션을 만지다보면 Event 함수를 등록 할 일이 생긴다.  ▶ 애니메이션 Event 함수란?어떤 애니메이션의 특정 프레임에 함수를 호출 시킬 수 있는 것 몬스터의 공격 애니메이션 실행 중 박콜이 들어있는 골렘의 손이 플레이어를 두번 지나치게 되서 피가 2번깎임. 나는 골렘의 1번의 공격 애니메이션에 피가 깎이게 하고 싶은데 플레이어가 골렘의 손에 닿을 때 피가 깎이도록 코드를 구현 해서 피가 2번 깎이게 됐다. void OnTriggerEnter(Collider col) { if (col.CompareTag("Player")) { PlayerController.instance.ReduceHP(10); } } ★ 이럴 때 사용..

Unity/Animation 2025.03.10

빌드 시 Gradle 에러 해결방법

열심히 개발하고 빌드해서 테스트 해볼려 했더니 갑자기 이런 에러가.. GPT 한테 물어보고 이것저것 다 해봤지만 계속 안됐다.뭐.. 대충 이런 에러라는데 잘 모르겠고 그냥 Gradle이라는게 문제인거같다. 그래서 Gradle이 무엇이냐...🔹 Gradle 핵심 개념 정리✅ 1. Gradle의 의미빌드 자동화 도구Java, Kotlin, C++, Android 등 다양한 프로젝트의 컴파일, 빌드, 테스트, 배포를 자동화✅ 2. Gradle의 역할코드 컴파일 & 패키징 → 소스 코드 → .apk 또는 .aab 파일 생성의존성(Dependency) 관리 → 필요한 라이브러리 자동 다운로드멀티플랫폼 지원 → 다양한 언어(Java, Kotlin 등)와 연동 가능빌드 속도 최적화 → 캐싱 및 병렬 실행으로 빠른 ..

Unity/에러해결 2025.02.24

Photon 포톤을 사용한 멀티서버(총게임기준)

포톤 개요포톤네크워크 게임 엔진은 이미 성능이 검증되었고 많은 레퍼런스 보유- PUN(Photon Unity Networking) : 멀티플레이어 게임용 유니티 패키지■100명의 동시접속자까지 무료 서비스  ●포톤 리얼타임다양한 개발 플랫폼에 맞춰진 포톤의 핵심 코어 엔진낮은 지연을 보장하고 빠른 데이터 전송을 보장. 클라이언트 들끼리의 데이터 동기화를 실시간으로 처리매칭 시스템 : 로비와 룸을 관리  ●포톤 클라우드이 엔진을 바탕으로 클라우드 서비스를 제공하는 것으로 서버의 보안, 로드 밸런싱, 백업 및 네트워크 트래픽 관리등을 서비스 함사용자에게 가까운 서버로 연결●포톤 서버클라우드 기반의 Photon Cloud 와 달리, Photon 서버는 직접 호스팅 할 수 있어서 서버 환경에 대해 전반적인 제어..

Unity/멀티서버 2024.10.28

캐릭터 이동(Input System)

Input System의 핵심 개념 ● Action(액션) : 게임 내의 행동, 동작을 의미  ▪ 캐릭터의 이동, 회전, 점프, 공격, 방어 등이 모두 Action에 해당  ▪ 액션들에 해당하는 실제 매핑할 조작 방법을 정의 : 키보드, 마우스 등 정의● Binding : Action을 실제 물리적인 입력 장치와 매핑하는 것을 말함  1. 첫번째 방법 : 레거시 Input 클래스키보드, 마우스, 터치, 게임 패드와 같은 외부 입력 장치의 입력 값을 미리 정의해두고 코드에 직접 해당 디바이스로부터 입력값이 있는지를 확인하는 방식ex)float h=Input.GetAxis("Horizontal"); 문제점 : 다양한 입력 장치로의 전환의 어려움ex)게임패드/모바일 디바이스/햅틱 디바이스 등◦ 이동 및 점프와..

Unity/캐릭터 2024.10.26

오클루전 컬링

렌더링 부하를 줄이는 다양한 컬링 중 오클루젼 컬링 기능 ●◦  1. Main Camera 선택2. OfV(Field Of view) : 60 Degree3. Near Plane / Far Plane4. Frustum  ● 프리스텀 컬링(거리 비례에 의해 의한 컬링)●오클루전 컬링- 프리스텀 컬링은 프러스텀 영역에 들어온 모든 물체를 렌더링 함- 렌더링 영역에 들어왔다 하더라도 카메라로부터 너무 멀리 떨어져 사람이 식별하기 어려울 땐 굳이 렌더링 X- 이 방식은 LOD(를 이용해 일정 거리 밖의 물체는 컬링 시킴-카메라 시야에서 다른 물체에 가려 보이지 않는 물체를 렌더링 하지 않는 기법->두개의 건물이 시야에서 보이지 않기 때문에 렌더링 X ●오클루전 컬링 실습 1. 1개의 평면 위에 3개의 사이즈 다..

Unity 2024.10.26

씬 관리(분리된 씬 한번에 불러오기)

● 씬 분리 목적◦협업 시 분야별로 분리해 개발을 진행 한 후 합칠 수 있음ex.UI씬, Level씬, 게임 로직 씬 -> 합쳐서 게임으로 using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI; //Unity UI를 사용하기 위해 선언using UnityEngine.Events; //UnityEvent 관련 API를 사용using UnityEngine.SceneManagement;public class UIManager : MonoBehaviour{ //버튼을 연결할 변수 public Button startButton; public Button optionButton; ..

Unity 2024.10.25