본문 바로가기

전체 글

(23)
Prototype4: 플레이어를 따라가는 몬스터, normalized, Time.deltaTime Monster.cs public float Speed = 3f; private Vector3 Direction; void Start() { // 플레이어 오브젝트를 들고온다 Player = GameObject.Find("Player"); } void Update() { // Player를 향하는 방향 벡터 계산 // 플레이어의 위치에서 나(=Monster)의 위치값을 뺀다. Direction = (Player.transform.position - transform.position).normalized; // 계산된 방향으로 이동한다 (이동할 방향 좌표 * 속도 * 프레임 간의 시간간격) transform.Translate(Direction * Speed * Time.deltaTime); } normali..
Prototype5: MonoBehavior, Awake(), Start(), this vs gameObject MonoBehavior 모든 Unity 스크립트가 파생되는 기본 클래스(스크립트) 프로젝트창에서 C# 스크립트를 생성하면 MonoBehavior를 자동으로 상속한다. 에디터에서 게임 오브젝트에 스크립트를 연결할 수 있는 프레임워크를 제공한다. Awake() 게임오브젝트가 로드될 때 한 번만 호출된다 Start() 스크립트가 활성화 되고난 후 Update가 처음 호출되기 직전에 호출된다 this vs gameObject this 스크립트 나 자신. 스크립트 그 자체(=스크립트 컴포넌트) gameObject 내 집. 스크립트가 붙어있는 게임 오브젝트. 그렇기 때문에 gameObject를 통해 게임 오브젝트의 위치, 회전, 스케일 등 기본 속성에 접근할 수 있다. gameObject를 통해 게임 오브젝트에 붙..
AudioSource : 게임에 BGM, Sound Effect 적용하기 SoundManager라는 빈오브젝트를 만들고 여기에 SoundManager 스크립트를 추가했다. 그리고 사용할 클립들을 모두 끼워 넣을 clip 배열과 이를 재생할 Play() 메서드를 작성했다. 장소에 따라 배경음악을 실행하도록 플레이어에게 BgmController 스크립트를 추가했다. 플레이어의 위치를 감지하기 위해 모래사장의 레이어를 "Sand"로 설정하고 CollisionEnter를 이용해 SoundManager의 인스턴스를 불러 오디오클립을 실행했다. AudioSource 소리를 재생하는 플레이어 스피커 볼륨: 0 ~ 1 AudioClip 오디오 소스가 재생할 때 필요한 음원 파일(mp3, wav등) AudioListener 소리를 듣는 주체 주로 메인 카메라에 AudioListener 컴포..
Amplify Shader: Portal, 포탈 만들기 Amplify Shader란?예전 버전의 셰이더로 노드 방식이 언리얼과 비슷하다Amplify Shader를 사용하기 위한 프로젝트 환경 및 준비물3D URP (URP 아니어도 사용 가능)포탈 텍스쳐와 일렁이는 효과를 줄 노이즈 텍스쳐 1~2장나는 포탈 텍스쳐 3장과 일렁이는 노이즈 텍스쳐 2장을 이용했다효과를 극적으로 확인하고 싶다면 Game 화면을 어두운색으로 변경한다Window > Rendering > Lighting >Environment > Skybox Material > NoneAmbien/t Color > 어두운색으로 변경MainCamera > Color > 어두운색으로 변경셰이더 생성Create > AmplifyShader > Surface 최적화를 위한 셰이더 기본 설정Output Node..
Global Volume : 체력 닳는 효과 (Post Processing) FPS(Firts-Person Shooter) 게임에서 자주 볼 수 있는 효과로 게임도중 공격을 받거나 체력이 깎이면 화면 가장자리를 빨갛게 만들어 주는 효과를 만들어 보았다. 사실은 Post processing 컴포넌트를 이용해 만들려고 했으나 왜인지 효과가 먹히지 않아서 결국 Global Volume을 사용했다. 포스트 프로세싱이 효과를 조금 더 세부적으로 설정할 수 있는 것 같은데 설정 과정 자체는 글로벌 볼륨이 훨씬 간단하게 느껴졌다. Global Volume 참고링크 How To Add Post Processing! | Unity Tutorial 프로젝트 환경: URP, 2022.3.4f1 설정 방법 Volume > Global Volume 추가 Profile > New > 새로운 profi..
메모리 구조(Memory Structure) 1. CPU(Central Processing Unit) 컴퓨터 시스템을 컨트롤하고 프로그램의 연산을 실행, 처리하는 가장 핵심적인 컴퓨터의 제어장치 연산장치 데이터를 처리한다. 실제로 연산은 CPU내의 Register들이 한다. 2. RAM(Random Access Memory) 프로그램이 실행되는 동안 필요한 데이터를 저장하는 메모리 찾으려는 데이터의 범주를 줄이기 위해 사용한다. 2-1. RAM작동 원리 프로그램을 실행하면 프로그램의 복사본을 인스턴스로 띄워둔다. 그럼 실행 중인 프로그램만 RAM에 올라가게 되어 실행 중이 아닌 프로그램은 탐색할 필요가 없어져 탐색 속도가 빨라진다. 2-2. RAM을 사용하는 이유 하드디스크와 CPU의 속도차이를 완충하기 위함 - CPU의 데이터 처리 속도에 비해 ..
문화예술과 신기술의 접목 1. 메타버스 실감형 콘텐츠의 이해 메타버스 이해 메타버스 플랫폼의 종류 메타버스란? Meta(가상) + Universe(우주)의 합성어, 가상의 공간 Neal stephenson - 피자가게 배달부가 가상의 공간에서는 마약탐정 메타버스가 갑자기 주목받는 이유? 기술과 사회 문화를 반영 비대면 강화, 메타버스가 필요한 사회가 되었음 메타버스 접근 방식 VR, 스마트폰, 타블렛 구분하는 관점(계속 발전해나가는중) 가상현실 - 가상의 공간 거울세계 - 실제 세계를 반영한 가상세계. 실제 동네가 가상세계에도 그대로 있는 것 증강현실 - 일산의 디지털 정보. 포켓몬고 같은? 라이프 로깅(Life logging) - 일상의 경험을 공유(싸이월드, 나이키 로그) 메타버스의 종류 - 주요 플랫폼 제페토 네이버 제트(..
Unity 실시간 2D 기초 Challenge: Sprite pachinko 사용 Object 및 Componetnt Clouds 2D Object > Sprites > Circle Property Sprite Renderer > Sprite > 사용할 이미지 선택 Component Circle Collider 2D Frefab 적용 동일한 오브젝트가 여러 개 필요할 때 오브젝트를 프리팹으로 만든다. 프리팹으로 사용할 오브젝트를 Hierarchy에서 Project > Assets > Frefabs 폴더로 드래그한다. 프리팹의 property를 변경하면 이를 통해 생성된 모든 오브젝트에 일괄 적용됨 Sun 2D Object > Sprites > Circle Property Sprite Renderer > Sprite > 사용할 이미지 선택 Component Circle Colli..