2025/04 12

[Unity/TIL] - Rigidbody / Quaternion / 이벤트함수 / 카메라 움직이기 / 오브젝트 무한생성

Rigidbody2D.velocity객체가 이동하는 속도와 방향을 Vector2 형태로 설정하거나 가져올 수 있다.Vector2 currentVelocity = rb.velocity; // 현재 속도 저장 (혹시 나중에 복원할 수도 있음)rb.velocity = new Vector2(5f, 0f); // 새로운 속도로 덮어씀 (오른쪽으로 이동)x 방향으로 초당 5 유닛의 속도로 이동*Vector2는 값 타입(struct) Mathf.Clamp(값, min, max)값을 특정 범위 내로 제한하는 함수float angle = Mathf.Clamp((_rigidbody.velocity.y * 10f), -90, 90);transform.rotation = Quaternion.Euler(0, 0, angle)..

[Unity/TIL] - 애니메이션, 트랜지션 추가하기 / GetComponent

애니메이션 추가하기애니메이션을 추가할 오브젝트를 선택 후window - Animation - Animation 클릭. Create New Clip 클릭해서 애니메이션을 만든다 Animator창에 Model 오브젝트에 적용한 flap, die 애니메이션 노드가 뜬다. 트랜지션 추가하기트랜지션이란 ? 하나의 애니메이션 상태에서 다른 상태로 넘어가는 연결선flap 우클릭 - Make TransitionParameters - + - int - IsDie 입력 flap -> die 트랜지션을IsDie - Equals - 1로 만든다.(=> IsDie가 1이 되면 die애니메이션이 실행된다) has exit time - Animator체크 - 애니메이션이 끝날 때까지 기다림체크 해제 - 즉시 다른 애니메이션으..

[Unity/TIL] - new로 생성한 객체는 클래스와 동기화 되나요?

1. 오늘의 질문 - new로 생성한 객체와 클래스는 동기화 되는가? class ItemItem 클래스에 만들어놓은 hpPotion 변수. class BattleUIBattleUI에서 객체를 생성하고 GetHpPotion함수를 이용해 hpPotion값을 추가해줬다. class Item 그러고 나서 다시 Item 클래스로 돌아와 hpPotion 값을 살펴보니증가하지 않고 여전히 3이었다. 2. 답변 또는 발견 - new를 통해 생성하면 (매개변수 없을시) 별개의 객체가 된다. 동기화되지 않는다. >> static을 붙여서 모든 클래스에서 공유되는 변수로 만든다. 3. 느낀점접근 한정자와 static과 객체생성 등 강의를 들을때는 이해했다고 생각했지만 실제 프로젝트를 진행해보니헷갈리고 어려운 점이..

[Unity/TIL] - static

static 이란 ?- 공통적인 것, 인스턴스 없이 접근할 수 있는 것더보기💡 인스턴스란? "클래스를 기반으로 만들어진 실제 물건(객체)"Player p1 = new Player();p1.name = "용사";p1.hp = 100;Player p2 = new Player();p2.name = "도적";p2.hp = 80;여기서 p1, p2는 **Player 클래스의 인스턴스(실체, 객체)개념의미클래스설계도, 틀 (예: Player)인스턴스그 설계도로 찍어낸 실제 객체 (p1, p2)⚠️ static은 인스턴스가 아님! static이 붙은 변수나 메서드는 클래스 자체에 속해 있음 new 키워드로 객체를 만들지 않아도 바로 쓸 수 있음(인스턴스 없이 사용 가능)class Player{ public i..

[Unity/TIL] - 오류해결모음

챗지피티와 함께하는 오류 해결 모음 1. 오류public Character(){ public string name = ""; ...} // ❌클래스의 필드(변수)는 클래스 본문에서 선언하고, 생성자 안에서는 초기화만 해야 돼. 1. 해결class Character{ public string name; public string job; public int level; public int attack; public int defense; public int hp; public int gold; public Character() { name = ""; job = ""; level = 1; attack ..

[Unity/TIL] - Top-level statements (최상위 문) / namespace(네임스페이스)

"Top-level statements must precede namespace and type declarations.""최상위 문장은 네임스페이스나 타입 선언보다 앞에 있어야 합니다."라고 오류가 뜬다. 해결방법>>> 맨앞에 두거나 Main 메서드 안에 넣으면 오류가 없어진다. Top-level statements (최상위 문)(C# 9이상)main 매서드 안에 들어가지 않아도 맨위에 적을 시 자동으로 main 메서드 안에 넣은것과 같은 효과를 준다. 예전엔 프로젝트를 생성하면 Main() 메서드가 생겨서 그 안에 코드를 넣어서 실행시켜야 했다면지금은 Main()메서드 없이 1줄로 사용가능하다. 1줄로 보이지만 컴파일하면class Program{ static void Main() { ..

[Unity/TIL] - 네이밍규칙(코딩스탠다드)

코드에서 변수명 함수명을 작성할때는 여러가지 규칙이 있습니다.그리고 맨 처음 단어의 스펠링의 대소문자에 따라 카멜 케이스, 파스칼 케이스 라고 합니다. myPoint 카멜 케이스 enemyName 카멜 케이스 AttackMonster 파스칼 케이스FindCharacter 파스칼 케이스 다른 코딩 스탠다드>>https://learn.microsoft.com/ko-kr/dotnet/csharp/fundamentals/coding-style/coding-conventions .NET 코딩 규칙 - C#C#에서 일반적으로 사용되는 코딩 규칙에 관해 알아봅니다. 코딩 규칙은 코드를 일관되게 표시하고 코드 복사, 변경 및 유지 관리를 용이하게 합니다. 이 문서에는 문서 리포지토리 코딩 지침도learn.micr..

[Unity/TIL] - C# 기본문법

출력하기Console.WriteLine - 줄바꿈 포함Console.Write - 줄바꿈 없음Console.WriteLine("Hello World!");Console.WriteLine("My Name is Kero");[출력]Hello World!My Name is Kero 입력받기Console.ReadLinestring input = Console.ReadLine(); 키워드변수, 메소드, 클래스 등의 이름으로 사용할 수 없는 단어 암시적 형변환작은 데이터 타입에서 더 큰 데이터 타입으로 대입하는 경우 자동으로 형변환 됨byte num1 = 10;int num2 = num1; // byte형에서 int형으로 암시적 형변환 var변수의 자료형을 정확히 알 수 없는 경우에 유용하게 사용var ..