분류 전체보기 46

241018(금) [팀과제 input 리펙토링]

오늘은 구 input 대신 new input system으로 리펙토링 했다.  기존 input manager가 지워져서 ball과 충돌이 있었으나  input system 타입을 바꾸고 vector2 → float(좌우만 움직이므로 vector2 필요없음) PlayerInputController에서 public float moveInput 선언한뒤 ball.cs에서 아래 코드 가져오는 부분을 수정하여 오류 수정PlayerInputController inputController;void Start(){ inputController = GameObject.FindGameObjectWithTag("Player").GetComponent();...생략} switch문과도 충돌이 있었으나 팀원분의 도움으로 ..

개발일지 2024.10.18

241016(수) [AddForce 함수]

수준별 실습 과정에서 Addforce 함수를 사용하여 로켓을 쏘아 올리는 문제가 있었다.그렇다면 Addforce 함수가 뭘까?  Addforce 함수에 마우스 커서를 갖다대면 이렇게 나온다. 언뜻보면 Rigidbody2D라는 강체에 물리적인 힘(Force)을 더해주는(Add) 함수인 것 같았다. 처음 코드 작성은 rb.AddForce(Vector2.up * SPEED)로 했다. (방향*스피드) 그러나 문제가 발생했다.로켓이 올라가지 않았다. (정확히는 올라가지 않는 것처럼 보였다) 이유를 알기 위해 튜터님에게 질문했고  Addforce 함수, Vector2에 대해 학습이 필요할 것 같다고 조언해주셨다.Addforce 함수에 대해 알아보기Addforce 함수에 관 확인해 본 결과 Addforce는 처음 생..

개발일지 2024.10.16

241014(월) [과제제출, 첫 수준별반 OT]

오늘은 개인 과제 제출, 그리고 수준별 분반 첫 특강을 시청했다. C#에 대해 전반적으로 짚고 넘어가는 느낌이였다.[메모한 부분]전역함수, 지역함수 차이3항연산자+대신 문자열 보간사용배열 크기가 정해져있다.배열 Length, 리스트 Count enum 사용하면 가독성좋다 switch문과 호환성클래스에서 Base 함수를 쓰는 경우 컬렉션 부분(Dictionary 등)은 알고 있지만 다시 한번 직접 코드에 입력해서 복습해야겠다. 2시간 가까운 강의시간 이였지만  그동안 배운 내용을 정리해볼 수 있는 시간이라 유익했고 튜터님 설명이 좋았다~

내일배움캠프 2024.10.14

241011(금) [스파르타 타운 과제 : 필수 기능]

캐릭터 만들기 Hierachy창에서 캐릭터 게임 오브젝트를 만들고 Sprite Render를 추가해서르탄이 이미지를 추가했다. 캐릭터 이동처음엔 구 인풋 시스템을 활용한 코드를 복습할겸 썼다.public class InputManager : MonoBehaviour{ Rigidbody2D rb; [SerializeField] private float speed; // Update is called once per frame private void Start() { rb = GetComponent(); } void Update() { float vertical = Input.GetAxisRaw("Vertical"); float..

개발일지 2024.10.11

241010(목) [스텟 시스템 Base 내용정리]

열거형(Enum)1) 상수형 값에 의미를 부여하기 위해 사용2) 기본타입 int3) 제일 앞의 값을 0으로, 이후 1씩 증가함4) 중간에 번호 체계를 변경할 수 있는데 이럴 경우 직접 상수 값을 넣어줘야 함  스크립터블 오브젝트 (Scriptable Object) 1) Unity에서 데이터를 저장하고 관리하는 유연한 데이터 컨테이너2) 게임에서 재사용 가능한 데이터 또는 설정을 저장하는데 사용3) 코드와 데이터 분리하여 코드를 더 깔끔하고 관리하게 쉽게 만듬4) 하나의 스크립터블 오브젝트를 여러 게임 오브젝트에서 참조 또는 재사용 할 수 있다. 스크립터블 오브젝트를 사용하려면 스크립터블 오브젝트를 상속받아야 한다.실제로 만드는 작업 필요하므로 CreateAssetMenu 필요using UnityEngin..

개발일지 2024.10.10

241008(화) [쿼터니언(Quaternion), 삼각함수와 역삼각함수]

유니티 인스펙터 창에서 나오는 회전은 Vector3(x, y,z)로 표현되며 이것을 오일러각(Euler Angle)이라고 한다.그러나, 많은 3D 소프트웨어는 짐벌락 문제로 인하여 쿼터니언(Quaternion)을 사용하고 있다. 왜 쿼터니언을 사용하는가? : 극단적인 각도로 회전할 경우 한 축으로 회전을 잃어버리는 짐벌락(Gimbal Lock) 문제를 예방할 수 있기 때문이다. 쿼터니언(Quaternion)1) 4가지 복소수를 이용한 회전 표현 방법으로 (x, y, z, w) 형태로 표현한다.2) 직접 값을 변경하는건 추천하지 않으며 대신 Unity의 내장 함수를 사용한다.(Quaternion.Euler, Quaternion.LookRotation, Quaternion.Slerp)3) 쿼터니언은 직관적인..

개발일지 2024.10.08

241007(월) [Input Manager, 무엇이 문제일까?]

구 인풋 시스템(Input Manager) 캐릭터의 입력과 이동을 담당하는 이동 코드로서 구 인풋 시스템 (Input Manager)를 기반으로 코드를 작성한다. 여전히 많이 사용되는 코드지만 Input Manager는 문제가 있다. 구 인풋 시스템(Input Manager), 무엇이 문제인가?1) 조이스틱 등 다양한 입력 장비 대응에 부족하고, 키를 변경하거나 다양한 플랫폼에 대응하기 어렵다.2) 구현한 내용이 모두 한 클래스에 모여있어 유지보수성과 확장성이 떨어진다.  객체지향 프로그래밍에서 기능별로 클래스를 나누는 것을 단일 책임 원칙(Single Responsibility Principle)이라고 한다.또한, 단일 책임 원칙은 모든 클래스는 하나의 책임만 가진다는 원칙이기도 하다.그러므로 Inpu..

개발일지 2024.10.07

241004(금) [TEXT RPG 팀 과제 발표, 밍글링 데이]

오늘 팀 과제 발표가 있었다. 발표는 A조와 B조 나누어 진행됐고 우리조(21조)는 B조 10번째였다.  팀원들과 PPT 공유 작성을 했고 기존 슬라이드 내용이 짧은 것 같아서 [팀 구성 및 역할, 자기 평가]를 추가했다.  그리고 글꼴 변경을 했는데 역시 PPT는 글꼴만 좋아도 반이상은 하는 것 같다. https://www.notion.so/10696746f3268034a7a9eff455ab3530?pvs=4 뭐든해보조 | Notion휴지통 (삭제가 안된다면 이 토글에 지울 내용을 넣어주세요)resisted-sailfish-3a9.notion.site 발표를 들으면서 정말 대단한 기능을 구현한 팀이 많았는데 나도 저렇게 구현했으면 좋겠다고 생각했다 ㅎㅎ.. 밍글링 데이도 진행했는데 비록 상품은 하나도(..

내일배움캠프 2024.10.04