부트캠프 8

[멋쟁이사자처럼 유니티 TIL] 딕셔너리 인스펙터에 노출시키기, 커스텀 에디터로 데이터 이사하기 (+ TryGetValue, ISerializationCallbackReceiver, SerializedDictionary)

목차▶ 딕셔너리 직렬화하는 법    → 시간복잡도(Big-O)    → TryGetValue    → ISerializationCallbackReceiver    → SerializedDictionary ▶ 커스텀 에디터로 데이터 이사하는 법  오늘은 코드를 예쁘게 짜는 리팩토링 작업을 하였다.주로 NewChanController 스크립트의 기능들을 DamageField 스크립트로 옮기는 작업을 하였다. 이 과정에서 딕셔너리를 쓰게 되었다.   딕셔너리를 쓴 이유 바로 시간복잡도 때문이다. 자료 구조추가검색삭제인덱스 접근ListO(1)O(n)O(n)O(1)DictionaryO(1)O(1)O(1)- 여기서 O(n)는 Big-O 라는 아이인데,알고리즘이 얼마나 효율적인지를 나타내는 표기법이다. n : 연산의..

부트캠프 2024.06.20

[멋쟁이사자처럼 유니티 TIL] 접근 제한자 개념, 에디터 스크립팅

접근제한자 : 변수 선언 시 해당 변수에 대한 접근의 범위를 정하는 키워드이다.  ● 종류 및 특징 private - 클래스 내에서만 접근 가능하다.- 외부에서는 호출, 수정 모두 불가능하다.- 접근제한자를 입력하지 않고 선언 시, private으로 설정된다. protected- 상속 받은 클래스들만 접근 가능하다.- 호출은 가능하나, 수정은 불가능하다. public- 접근이 자유롭다.- 호출과 수정 모두 가능하다. SerializeField- private이지만, 유니티 에디터에서 접근과 제어가 가능하다. internal- 같은 어셈블리(프로젝트) 에서만 접근이 가능하다.      에디터 스크립팅 : 코드를 입력하여 에디터를 만드는 것이다.  에디터 스크립팅을 통해 나만의 커스텀 에디터 창과 컴포넌트를..

부트캠프 2024.06.15

[멋쟁이사자처럼 유니티 TIL] 대리자(delegate)와 이벤트 실습, 공격 모션 구현 (+ (Ctrl + H), 리타겟팅)

Delegate(대리자) : 메서드의 참조를 저장하고 필요에 따라 호출할 수 있는 형식.네임 스페이스나 클래스 내에 선언한다. 조금 더 자세한 개념은 저번 글을 보면 알 수 있다.https://snack-game.tistory.com/13 [멋쟁이사자처럼 유니티 TIL] UI 슬라이더, 체력바 구현 (+ 델리게이트(delegate), 이벤트)슬라이더 ● 생성 방법Hierarchy 에서 마우스 오른쪽 클릭  → UI → Slider 를 클릭  ● 구성 요소 슬라이더를 생성하면 자식 개체 여러 개가 함께 생성된다. - Background : 슬라이더를 비활성화 시snack-game.tistory.com  델리게이트 이해에는 실습이 직빵이다.라고 강사님이 말하셨다.  ● 델리게이트를 쓰지 않은 경우  p..

부트캠프 2024.06.12

[멋쟁이사자처럼 유니티 TIL] node.js을 통한 비동기 서버 구축 구현 (+ 서버 구축 관련 용어 정리, 벡터와 라디안으로 회전 구현, 비동기 프로그래밍)

벡터와 라디안 회전 구현 Mathf.Deg2Rad: Vector 변수에 곱하면 라디안으로 변환해 준다. ● 벡터를 라디안으로 변환하여 회전 구현Vector3 newDirection = Vector3.RotateTowards(transform.forward, rotDirection, rotSpeed * Mathf.Deg2Rad, 0.0f);GetComponent().MoveRotation(Quaternion.LookRotation(NewDirection));  ● 쿼터니온으로 회전 구현Quaternion newQuaternion = Quaternion.RotateTowards(transform.rotation, Qua..

부트캠프 2024.06.08

[멋쟁이사자처럼 유니티 TIL] 에셋을 통한 애니메이션 구현과 비동기 프로그래밍(코루틴, async, await)

유니티 실습 현재 사용하고 있는 무료 에셋 :https://assetstore.unity.com/packages/3d/characters/unity-chan-model-18705 Unity-Chan! Model | 3D 캐릭터 | Unity Asset StoreElevate your workflow with the Unity-Chan! Model asset from unity-chan!. Find this & other 캐릭터 options on the Unity Asset Store.assetstore.unity.com  애니메이션 구현오늘은 에셋에 포함되어 있는 걷는 모션을 구현해보았다. ① 에셋의 애니메이션에서 원하는 애니메이션을 선택한 후 ctrl + D를 눌러 복제한다.수업에서는 앞으로 뛰는 모..

부트캠프 2024.06.05

[멋쟁이사자처럼 유니티 TIL] 에셋을 이용한 보석 먹기 게임 구현 ( + 파일 경로, 링큐 등)

파일 경로- 상대적 파일 경로 지정string filePath = "yammySnack.txt"; - 절대적 파일 경로 지정   /(슬래시), \\(백슬래시), @\ 를 이용한다string filePath = "C:/yammySnack.txt";string filePath = "C:\\yammySnack.txt";string filePath = @"C:\yammySnack.txt";  파일 쓰기 배열을 이용하여 파일에 쓸 문자열 저장하고,File.WriteAllLines 를 이용하여 작성한 배열을 파일에 작성한다.// 파일 생성 경로 정의string filePath = "yammySnack.txt";// 파일에 쓰여질 문자열 배열 정의string[] lines = { "First line", "Secon..

부트캠프 2024.06.04

[멋쟁이사자처럼 유니티 TIL] 회전 및 점프 구현(+FixedUpdate와 Update의 차이)

벡터의 정규화w,a,s,d 입력이 가능하게 해놓은 상태에서 대각선으로 이동할 경우, 이동 거리가 늘어나게 되는 문제가 있음.이러한 문제를 해결하기 위해 벡터의 정규화 사용. Normalize(): 길이가 1인 벡터를 만들어줌.direction.Normalize();rotDirection.Normalize();   회전 구현① 먼저 rotDirection을 선언.② a, d를 누를 때 회전할 수 있도록 rotDirection에 값 넣기if (Input.GetKey(KeyCode.A)){ rotDirection += -transform.right;}if (Input.GetKey(KeyCode.D)){ rotDirection += transform.right;} ③ rotDirection 값이 있을..

부트캠프 2024.06.03

[c#] 별 찍기 + 피라미드, 역피라미드, 왼쪽/오른쪽 화살표

for 문을 활용하여 각종 모양의 별을 찍어보자. for 문의 형식은for ( 시작할 숫자; 실행 가능 범위(조건문); 숫자 증감) 나는 실행 가능 범위가 아니라 실행 불가능 범위로 착각해서 한참 헤맸다... 왼쪽 정렬 삼각형이중 for문 활용행이 바뀔 때 마다 별의 갯수가 달라져야 하기 때문에,이중 for문을 사용해야 한다. i=0i=1i=2i=3j=0*   j=1**  j=2*** j=3**** 이러면 i 열이 바뀔 때마다 j 행에서 별 찍기 실행 횟수를 바꿀 수 있다.int line = 5;for (int i = 0; i   2) string 특성 활용"맛있는" + "과자" 를 코드로 작성하면 맛있는 과자가 출력된다.이는 string이 사실 배열이기 때문이다.이를 활용하여 출력 후 별에 별을 더하여..

부트캠프 2024.05.29