2024/10 12

내일배움캠프: 유니티 3D에서 Ray와 Raycast로 충돌 감지하기

Ray란 ? 유니티에서 광선을 쏘는 방식으로 사용되며, 주로 물체간의 충돌을 감지하거나 특정 방향으로의 시야를 확인할 때 사용된다.기본적으로 Ray는 원점에서 시작해 특정 방향으로 나아가는 선을 만들기위해 필요한 정보이다.  Raycast 함수를 통해 이 광선과 충돌하는 물체를 감지할 수 있다.Ray 생성자Ray ray = new Ray(Vector3 origin, Vector3 direction);​  Ray는 원점(origin)과 방향(direction)이라는 두 개의 프로퍼티로 이루어져 있으며, ray 객체를 생성할 때 원점과 방향을 인자로 전달하여 생성한다. 출처:https://docs.unity3d.com/ScriptReference/Ray.html 생성한 Ray를 사용해보자  ray를 생성하는..

내일배움캠프 2024.10.30

내일배움캠프: InputSystem Rebinding (인풋시스템을 활용한 키 리바인딩)

오늘 공부한 내용📝오늘은 Unity Input System에서 리바인딩을 적용하는 방법에 대해 학습했다. 인풋시스템 내부 메서드를 활용한다면  쉽게 리바인딩이 가능하다는 것을 깨달았다.인풋 시스템 리바인딩리바인딩 단계바인딩 키 등록:InputAction 객체를 생성하고, 각 Action에 필요한 초기 키 바인딩을 설정한다.(Input Action을 생성해 그 안에다 정의하거나 스크립트를 통해 정의)리바인딩 설정:[ InputAction  객체명].PerformInteractiveRebinding() 메서드를 사용해 특정 Action에 대해 리바인딩을 시작한다.WithControlsExcluding("")와 같은 설정으로 특정 장치를 제외할 수도 있다.리바인딩 비활성화 및 재작업:InputAction.D..

내일배움캠프 2024.10.25

내일배움캠프: AnimationCurve

오늘 공부한 내용📝오늘은 애니메이션 커브를 이용한 유니티 3d프로젝트에서 낮과 밤을 표현하는 방법에 대해 공부했다. 애니메이션 커브는 쉽게 말해 수학적 사고를 곁들인 애니메이션이라고 생각하면 될 것 같다. 기술적으로 접근한다면 애니메이션 커브는 시간에 따른 값의 변화를 부드럽게 조정할 수 있는 기능이다. 애니메이션 커브 애니메이션 커브는 시간(Time)을 x축으로, 값(Value)를 y축으로 설정한 그래프로 표현 된다.애니메이션 커브의 특징시간과 값의 관계:애니메이션 커브에서 x축은 시간(Time), y축은 해당 시간에서의 값(Value)을 나타냅니다.예를 들어, 낮과 밤을 표현하는 프로젝트에서는 낮 시간이 지나면서 태양의 밝기가 점점 줄어드는 자연스러운 변화를 커브로 설정이 가능하다. 부드러운 값 변..

내일배움캠프 2024.10.24

내일배움캠프: 딕셔너리에서 데이터가 찾아지는 과정

오늘 공부한 내용📝오늘은 자료구조 특강을 듣는 중 딕셔너리에서 데이터를 찾는 방법에 대해 학습했다. 튜터님께서 해당 내용에 관한 TIL을 작성하면 피드백을 주신다고하셔서 기회다 생각하고 해당 내용에 대해 공부해보고 글로 정리하는 시간을 가져보았다.  Q1. 딕셔너리에서 데이터를 찾는 연산의 시간 복잡도는 ?그렇다면 그 이유는?🤔시간 복잡도 딕셔너리에서 데이터를 찾는 연산의 시간 복잡도 평균적으로 O(1)이고 최악의 경우는 O(n)이다 .이유:딕셔너리는 Key값을 내부 함수로 변환 해 해시코드를 생성한 후 이를 배열의 크기로 나눠준다. 그리고 그 값이 배열의 인덱스가 된다.이때, 배열의 인덱스가 중복되지 않으면 값을 바로 찾기 때문에 평균 시간 복잡도는 O(1)이 된다.그러나 배열의 인덱스가 중복되면 ..

내일배움캠프 2024.10.23

내일배움캠프: AddForce

오늘 공부한 내용내일배움캠프에서 수준별 꾸준 학습을 하던 중 Addforce를 사용해서 특정 기능을 구현하라는 문제가 나왔다. Addfoce자체는 기존에도 알고 사용도 해봤던 메서드였지만 막상 참고자료 없이 사용하려하다보니 Addforce 사용 방식에 대해서 잘 모르고 있다는 사실을 깨달았다. 이 때문에 Addforce 메서드 사용 방식을 정리해봤다.  AddForce 란? 유니티의 Rigidbody에 힘을 가하는 메서드로, 물리적인 힘을 통해 오브젝트를 움직일 때 사용된다.   AddForce 구성Rigidbody(2D).AddForce(Vector3 force, ForceMode mode) ,force: 가해질 힘의 크기와 방향을 나타내는 벡터값입니다. 예를 들어 (0, 10, 0)은 오브젝트가 Y축..

카테고리 없음 2024.10.17

내일배움캠프21: 람다식과 Func을 활용한 효율적인 코드 작성법

오늘 공부한 내용📝오늘은 람다식과 func을 활용하는 방법을 배웠다. 람다식과 func을 사용하면 특정 상황에서 유연하고 가독성 좋은 코드를 작성할 수 있다는 점을 알고 해당 내용을 가정을 통해 정리해봤다. 특정 타입의 몬스터를 찾으려면?enum SpartaMobType{ Sparta, TanTan, Nbcamp}enum Grade{ Normal, Uncommon, Epic}class SpartaMob{ public SpartaMobType SpartaMobType; public Grade Grade; public SpartaMob(SpartaMobType spartaMobType, Grade grade) { SpartaMobType =..

내일배움캠프 2024.10.14

내일배움캠프 19일차 : SOLID 원칙

SOLID 원칙이란? 🤔SOLID 원칙은 객체 지향 설계에서 좋은 코드 구조를 만들기 위해 제시된 5가지의 기본 원칙이다. 이 원칙들은 코드의 가독성, 유지보수성, 확장성을 높여주며, 변경 시에도 안정적이고 유연한 시스템을 구축하는 데 도움이 된다. 이러한 SOLID 원칙에 대한 자료 들을 찾아 정리해보고 이해하는 시간을 가졌다. 1. 단일 책임 원칙 (Single Responsibility Principle, SRP)“클래스는 하나의 책임만 가져야 한다.”단일 책임 원칙은 하나의 클래스는 오직 하나의 기능이나 역할만 담당해야 한다는 원칙이다. 클래스가 여러 가지 기능을 담당하게 되면, 하나의 기능이 변경될 때 다른 기능에도 영향을 미쳐 코드 수정 시 예기치 못한 오류가 발생할 수 있다. 이를 방지하기..

내일배움캠프 2024.10.10

내일배움캠프 18일차: 비트연산과 LayerMask를 활용한 충돌처리

오늘 공부한 내용📝오늘은 유니티에서 비트 연산과 LayerMask에 대해 학습했습니다. 추가적으로 강의를 통해 비트 연산의 기본 개념과 이를 LayerMask와 연계하여 충돌 처리를 효율적으로 구현하는 방법을 배웠다.비트 연산이란? 🤔비트 연산은 컴퓨터가 데이터를 처리하는 최소 단위인 비트(Bit)를 다루는 연산 방법이다. 비트는 0 또는 1의 값을 가질 수 있으며, 비트 연산은 이러한 비트들을 조합하여 다양한 계산을 수행한다. 주로 사용하는 연산자로는 AND(&), OR(|), XOR(^), NOT(~), SHIFT(>) 등이 있으며, 각 연산은 비트 단위에서 빠르고 효율적인 계산을 가능하게 한다.AND(&): 두 비트가 모두 1일 때만 결과가 1이 됨 OR(|): 두 비트 중 하나라도 1일 때 결..

내일배움캠프 2024.10.08

내일배움캠프 17일차: InputManager와 InputSystem 비교

오늘 공부한 내용📝오늘은 강의에서 Unity의 기존 InputManager와 새로운 InputSystem의 차이점에 대해 학습했다. 기존 InputManager는 다양한 입력 장치 대응에 한계가 있고, 게임 로직과의 결합으로 인해 유지보수에 어려움이 있었다. 이러한 문제점들을 해결할 수 있는 새로운 InputSystem의 개념과 사용법을 배웠으며, 이후 관련 내용을 추가로 공부하고 해당 내용을 정리 해봤다.  기존 InputManager의 문제점은?🤔기존의 Unity Input Manager는 입력 처리 기능은 제공했지만, 복잡한 입력 처리나 멀티플랫폼 지원에는 한계가 있었다. 특히 다양한 입력 장치에 일관성 있게 대응하기 어렵고, 입력과 게임 로직의 결합으로 인해 코드의 유지보수가 어려운 문제점이 ..

내일배움캠프 2024.10.07

내일 배움캠프 16일차 : Action , Func 키워드를 사용한 이벤트 사용

오늘 공부한 내용📝오늘은 C#에서 `event`와 함께 `Action` 및 `Func`를 활용하는 방법을 학습했다. `delegate` 대신 `Action`과 `Func`를 사용하면 더 직관적이고 간결한 코드를 작성할 수 있다. 이들의 차이점과 사용 시점을 이해하기 위해 다양한 예제를 실습해보았다.왜 Action과 Func를 사용할까?🤔기존 delegate를 사용하면 메서드 서명을 따로 정의해야 하는 번거로움이 있다. 하지만 Action과 Func를 사용하면 코드를 더 간단하게 작성할 수 있으며, 직관적인 형태로 메서드 서명을 지정할 수 있다.Action은 반환값이 없는 메서드 호출 시 사용된다.Func은 반환값이 있는 메서드 호출 시 사용된다.Action 사용 예시 Action은 반환값이 없는 메서..

내일배움캠프 2024.10.04