분류 전체보기 123

오브젝트 풀링

Object Pooling 방식은 오브젝트를 미리 생성해두어 비활성화 시켜두었다가 적절한 때에 활성화시켜 동작시키는 형태입니다. 왜 Object Pooling 을 쓰는가Object Pooling 을 쓰는 이유는 오브젝트를 생성하고 파괴하는데 드는 동작비용이 있기 때문입니다. public class ObjectPool : MonoBehaviour{ // 오브젝트 풀링을 할 게임오브젝트 프리팹 public GameObject prefab; private List pool = new List(); private int poolSize = 300; // 최소 300의 반복의 조건을 받음 void Start() { for (int i = 0; i 처음 만들 때오브..

자료 관리 2024.10.23

RayCast

이번에 끝난 프로젝트를 진행하면서 충돌처리를 위해 Collision 과 Collider를 활용하였다.OnCollisionEnter , Stay 등을 통해 충돌한 오브젝트와 상호작용을 하는 방식이라면RayCast 는 오브젝트에서 레이저를 발사하여 레이저에 닿은 오브젝트를 판별하는 형태다. Ray 에 대해 먼저 알아보자면 Ray는 뻗어나가는 직선을 뜻합니다. 오브젝트에서 이용하는 방식은  광선이 나갈 오브젝트의 시작점(origin) 광선의 방향(direction)을 정해주어 사용합니다.Ray를 카메라에서 사용하는 방식도 있는데ViewportPointToRay 는 0에 1범위의 정규화된 벡터값을 이용하고ScreenPointToRay 픽셀 좌표를 사용한다는 차이입니다.Ray ray = new Ray(transf..

자료 관리 2024.10.23

2024 10 22 TIL (싱글톤, 프로퍼티)

싱글톤에 대해 막연히 용도에 맞게 쓰려고만 하였지 제대로 이해하였다 생각하지 않기에 검색과 질문을 통해 생각을 정리해 보려하였다. 먼저 유니티에서 싱글톤을 쓰는 이유는 MonoBehavior 을 상속받는 클래스를 new 키워드로 인스턴스를 생성할 수 없기 때문에 전역변수(static)을 활용하여 객체(class)에서 직접 멤버를 끌어쓰는 것으로 알고 있다.  이것만으로는 이해하기가 힘들었기에 좀 더 파고들어 키워드 별로 검색을 해보았다. 먼저 객체 객체는 동일한 목적이나 기능을 하는 변수나 함수들을 각각 하나로 묶은 것을 정의한다라고 합나다. 그리고 클래스(class)는 객체를 정의해 놓은 틀 , 설계도라고 생각합니다.  즉 객체는 기능  클래스는 기능을 활용하기 위한 수단입니다. 클래스안에 객체를 모아..

TIL 2024.10.22

Rigidbody - ForceMode

3D게임 개발 파트로 들어가기전 Rigidbody 컴포넌트의 ForceMode에 대하여 정리하여 봅니다. Rigidbody란 오브젝트에 물리적인 효과를 주기위해 사용되는 컴포넌트를 뜻합니다.Rigidbody 엔 ForceMode 라는 기능이 있는데AddForce 메서드와 함께 사용되며 ForceMode 를 사용하여 물리적인 힘을 부여할 수 있습니다.  ForceMode의 종류:  1. Force : 지속적인 힘을 가한다.Rigidbody.AddForce(Vector3 force,ForceMode.Force);예시로 1이라는 힘을 부여하게 된다면 계속해서 1이라는 힘을 일정하게 부여합니다. 2. Acceleration : 가속도를 적용한다. Rigidbody.AddForce(Vector3 force,For..

자료 관리 2024.10.22

2024 10 21 TIL

UI를 사용할 때 캔버스 설정을 Scale with screen size 를 사용하면 화면을 조절하였을 때 오브젝트가 같이 조절됨 피벗: 오브젝트의 중심점 오브젝의 Position 값을 0,0 을 하였을 때 피벗 값을 기준으로 놓이게 된다.  앵커 : UI 오브젝트가 고정될 위치를 지정하며 앵커는 실제 크기 범위와 관계 없이 0부터 1까지의 상대적인 값을 가지며 해상도가 달라졌을 때 고정된 위치를 따라감

TIL 2024.10.21

2024 10 18 TIL

이번에 발사체에 대한 구현이 많이 늦어져서 제대로 테스팅을 못해보고 있는 상황입니다.따라서 주말동안에도 작업을 하면서 구현할 부분들을 마저 끝내려 합니다.  앞으로 주말동안 수행할 과제: 구현할 사항:  탄환의 피아 구분,폭탄은 적 탄환만 소거 구현할 방법 : 플레이어가 사용하였는지 몬스터가 사용하는지 변수값으로 태그를 저장하여 projectileData에 type으로 저장 int type : player 1 0   player2 1 enemy -1 TYPE 플레이어만 공격 ELSE  적만 공격 참고할 자료 및 과제 : Collision 충돌 판정에 대한 자료 , 유니티 DOCS , Physics 2d 에 관한 이해  , 조원들의 수행한 코드를 보면서 연결 찾기   유의사항:enter 최소화 트리거에는 ..

TIL 2024.10.18

2024 10 17 TIL

오늘 실수한 것 오브젝트의 스크립트 변수에 게임 오브젝트를 붙이고 나서 GetComponent로 다시 새로운 참조를 불러옴 Scriptable Object 를 GetComponent로 불러온 것    최우선적으로 구현해야할 과제 충돌효과에 대한 로직 (가장 중요..) ObjectPooling 에 Singleton을 부여해서 따로 참조없이 활용해보고자 하였음 강의 투사체 구현 관련으로 정독 다시 해볼것  어떤식으로 코드를 많이 작성하여야 실력이 늘지 생각해볼것   주저없이 모르는 것에 대해 물어볼 것

TIL 2024.10.17

2024 10 16 TIL

투사체 구현에 관한 UML을 작성하는 활동을 하였습니다.구상해본 바로는 투사체를 프리팹으로 두고 오브젝트 풀을 활용하여 사용된 투사체를 다시 사용하고충돌효과를 생각하여 플레이어나 적을 태그로 정의하여 태그에 해당한다면  투사체 오브젝트를 비활성화하는 식으로 코드를 작성하려합니다.  객체지향적으로 코드를 작성하려면 기능적으로 세분화하여 작성을 해야하는데 아직 감이 다 잡히는 것 같진 않습니다.  오늘 특강 내용으로는 인풋시스템에 대해 알아보았습니다.  강의에서 들은 내용이 상당히 많은 양인데 특강 동영상이 올라오고나서 제대로 한번 정리해보고 싶습니다.  그리고 인풋시스템에 관해 유니티 코리아에서 다룬것이 있어 주말에 한번 시청해보려합니다. https://youtu.be/dsLBzrbo-Vs?feature=..

TIL 2024.10.16

2024 10 15 TIL

오늘 특강에선 객체지향에 대해 다루었습니다. 객체 지향에 대해 TIL에 생각을 조금 정리해보려합니다.  객체: 객체 오브젝트 여러가지 이름으로 부릅니다. 이 객체라는 것은 정의되어 있는 요소들을 통들어 말한다고 저는 생각합니다.  어떤 것을 정의한다는 것은 그 대상에 의미를 부여한다는 것입니다. 예를 들어 수박이라는 것이 과일이라는 분류가 되는 것도 누군가가 정의하였기에 우리가 그렇게 생각하는 것이고 여기서 객체라는 것도 우리가 의미를 부여한 모든 물체나 개념을 의미한다고 저는 생각합니다. 클래스: 클래스는 저희가 붕어빵 틀이라고도 많이 불렀습니다. 인스턴스와 묶어서 붕어빵 틀과 붕어빵이라고 많이 표현하시는데  그 이유는 클래스는 기능적으로 구현을 하도록 미리 만들어두고 인스턴스로 그 기능을 다하기 때문..

TIL 2024.10.15

2024 10 14 TIL

스탠다드 특강에서 배운 내용으로 TIL 을 적어보려 합니다. Virtual 과 Abstract(추상)  class 에 대하여 좀 더 확실히 알게 된 것 같아 먼저 정리해봅니다. 클래스 상속에서 쓰이는 Virtual 과 Abstract 는 상속하는 클래스에서 선언을 하고 상속받는 클래스에서override(재정의)를 합니다.   Virtual Virtual로 선언한 함수의 같은 이름의 override 함수가 있을 경우 같은 이름의 함수를 사용하더라도 파생 클래스의 함수가 사용됩니다. (없을 경우 Virtual의 함수가 실행) public class Job{ public virtual void Attack() { Debug.Log("막대기로 공격"); }}public class Worrior..

TIL 2024.10.14