전체 글 149

2024 10 21 TIL

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

2024 10 18 TIL

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

2024 10 17 TIL

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

2024 10 16 TIL

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

2024 10 15 TIL

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

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..

유니티 인풋 필드(Input Field)

인풋필드란?Input Field 는 키보드나 터치패드를 이용하여 문자열을 입력할 때 상호작용을 목적으로 쓰이는유니티 오브젝트입니다. 주로 아이디나 패스워드를 입력하거나 채팅창등을 구현하기 위해 사용됩니다. 생성하는 방법 인풋필드를 생성하는 방법은 유니티의 Hierarchy 창에서 우클릭을 하여 생성할 수 있습니다.인풋필드를 생성할 때 TextMeshPro 와 일반 인풋필드를 볼수 있는데여기서 TextMeshPro는 포인트 크기가 변하거나 해상도가 변해도 글자가 깨지지 않는다는 특징이 있습니다. 또한 최적화가 잘되어있어 TMP가 유료였던 시절에도 기존의 텍스트 오브젝트보다 사용자들이 많이 찾았다고 합니다. 그래서 저도 한번 InputField - TMP 를 활용하여 과제를 해보자 마음 먹고 글을 정리해보려..

2024 10 11 TIL

과제 제출기간이 얼마 남지 않은 관계로 간략하게만 TIL을 제출하려 합니다. 오늘 발생하였던 문제 사항은 코드적 문제라기보단 기술적인 문제가 많았던 것 같습니다.파일 탐색기의 오류로 인해 유니티의 파일이 정상적으로 지워지지 않는다던가 지금도 아래 사진처럼알림이 가운데서 사라지지 않아 좀 불편함을 겪고 있습니다.  원드라이브 용량이 가득차서 우클릭을 해도 먹통이 되어 눌리지 않는다던가 뭔가 뜻대로 풀리는 하루는 아니었던 것 같습니다.   오늘은 과제를 진행하면서 다른 자료들을 참고하여 카메라가 캐릭터를 따라 조작되게 하였습니다. 해당 방법은 카메라의 위치를 계속 플레이어가 있던 위치로 옮기면서 따라가게 합니다.   //카메라를 붙이는 대상 public GameObject player; //..

2024 10 10 TIL

강의 진도를 나가며 이전의 코드들을 세분화하여 폴더를 만드는 것을 진행하였다.기능별로 폴더를 정리한 후 오브젝트에 연결된 스크립트들이 오류가 발생하여 찾을 수 없는 문제가 발생하였다.Reimport All을 사용하여 프로젝트내 모든 파일을 다시 불러오기하여 문제가 해결되었다.강의를 진행하며 느낀점은 알 것 같으면서도 모르겠는? 그런 느낌이다. 여러번 돌려보면서도 이해가 안되는 부분이 많고검색과 질문을 통해 조금씩 이해해가는 중이다.내일 할일을 미리 정해두자면 강의 진도 13강까지 그리고 개인과제 진도나가기 정도로 생각해두고있다.

캐스팅 연산자 as

강의를 시청하다 as 연산자를 처음 봐서 이해가 안되어 정리해보는 시간을 가지게 되었습니다. 먼저 찾아보려던 as 연산자에 대해 알아보다 캐스팅 연산자라는 개념을 알게 되었습니다.캐스팅 연산자라는 것은 상속관계의 클래스간에 형변환이 필요할 때 사용합니다. as라는 키워드도 상속관계의 클래스의 형변환 여부를 알아보기 위해 사용하는 듯 합니다. 강의를 들으며 작성한 코드의 일부를 가져왔습니다.[대충 어택SO의 매개변수를 받는 함수](AttackSO attackSO){ RangedAttackSO rangedAttackSO = attackSO as RangedAttackSO; if (rangedAttackSO == null) return; . . . } 해당 코드 RangedAtta..