목록Dev. Study Note (179)
Priv's Blog
7일차 - 소스 코드 최적화 - White 탄환 아이템 제작 - 아이템 애니메이션 적용 RGB 룰 수정: 게임 난이도 하향 조정 필요 (대미지 조건 또는 적 종류 수정) White 탄환 아이템 등장 조건 조정 필요: 랜덤 스폰(시간제 형식) or 적 처치 후 등장 택1 White 탄환 아이템 애니메이션 조정 필요: 애니메이션 효과가 눈에 들어오지 않는 문제 해결 필요
지정된 범위 내에 게임 오브젝트를 랜덤 좌표에 생성해야 할 경우, 1) 생성 범위를 X좌표, Y좌표를 분리하여 Random.Range()를 이용해 변수에 담는다. 2) Random.Range()를 통해 생성된 X난수, Y난수를 Vector 변수에 담는다. 3) Instantiate()를 이용해 복제한 게임 오브젝트를 Vector 변수에 담은 좌표에 생성한다. 자세한 것은 아래 코드 참고. 1 2 3 4 5 6 7 8 9 10 11 12 13 // Enemy Random Spawn RandomX = UnityEngine.Random.Range(-24, 35); RandomY = UnityEngine.Random.Range(24, -5); RandomPos = new Vector2(RandomX, Rando..
6일차 - 적이 벽을 뚫고 움직일 수 있는 문제 수정 - 적과 아이템이 랜덤 스폰될 때 맵을 벗어나 스폰되는 문제 수정 - 데미지를 입거나 HP 아이템을 먹을 경우 경직 애니메이션이 발생하도록 구현 - 데미지를 입을 경우 무적 시간이 적용되도록 수정 - 아이템 소멸 타이머 구현 - 경직 애니메이션 알파 값 수정 (알파 값이 255로 복구되지 않던 문제 해결) - 아이템 획득 시에도 경직 애니메이션이 적용되지 않도록 수정 - HP 게이지가 MAX일 때, HP 아이템을 획득할 수 없도록 수정
0일차 - 게임 기획서 작성 - 기본 게임 오브젝트 제작 1일차 ~ 2일차 - 플레이어 움직임 구현 - 맵 생성 - 적 오브젝트 생성 및 추격 기능 구현 - 총알 발사 구현 - 마우스 휠로 플레이어의 총알 변경 기능 구현 - 탄환 색상에 맞춰 적 오브젝트 색상 변경 3일차 - 마스킹 기능으로 HP GUI 기능 구현 - 적 랜덤 스폰 구현 - 적 소멸 구현 - 플레이어가 움직일 때마다 떨림이 발생하는 문제 수정 4일차 - HP 아이템 제작 - R 탄환이 제대로 발사되지 않는 문제 수정 - 소스 코드 일부 최적화
1 UIHealthBar.instance.SetValue(CurrentLife / (float)MaxLife); cs 위의 코드에서 CurrentLife와 MaxLife 모두 int형 변수이다. UIHealthBar.instance.SetValue() 코드는 게임 상에 구현한 체력 게이지 UI에 사용된 체력 표시 바의 길이를 조절하기 위한 코드이다. 헌데, 코드를 다시 보면 MaxLife 변수를 임의적으로 float 형태로 변환하고 있는데, 이로 인해 계산 방식이 (int / float) 형태로 바뀌게 된다. 이는 int와 float의 표현 방식의 차이 때문이다. 그럼 먼저, (int / int) 형태로 계산했을 경우를 생각해보자. CurrentLife를 2로, MaxLife를 4라고 가정한 뒤, 계산을..
- 참고 링크 속성 사용 - C# 프로그래밍 가이드 속성 사용(C# 프로그래밍 가이드)Using Properties (C# Programming Guide) 이 문서의 내용 --> 속성은 필드 및 메서드 모두의 측면을 결합합니다.Properties combine aspects of both fields and methods. 개체의 사용자에게 속성은 필드로 표시되며, 속성에 액세스하려면 동일한 구문이 필요합니다.To the user of an object, a property appears to be a docs.microsoft.com [C#] get, set을 위한 속성(Property) + 이 글은 작성자가 직접 공부하고 복습하며 작성한 글입니다. 만약 직접 작성하지 않았다면, 꼭 출처를 밝히겠습니..
2D 게임 개발 중, 캐릭터를 이동시킬 때마다 떨림 현상이 지속적으로 발생했다. Rigidbody2D를 이용해 캐릭터를 움직였기에, 물리 엔진을 기반으로 캐릭터를 움직이게 만들고 있었다. 이 때문에 Update 문이 아닌 FixeUpdate 문 안에 캐릭터를 움직이는 코드를 작성해야 정상적인 움직임 구현이 가능했는데, 이를 놓치고 있었다. 추가로 Rigidbody에 Interpolate라는 옵션도 이 떨림 현상을 해결하기 위해 사용되는 옵션 중 하나이다. 하지만 이번 문제를 해결하는 데는 아무런 도움이 되지 못했다. Interpolate 옵션은 물리 엔진 처리 방식을 설정하는데, Interpolate 설정은 이전 프레임을 기반으로 변형 이동을 부드럽게, Extrapolate 설정은 다음 프레임의 예상 위..
다른 스크립트 클래스 내에 있는 변수를 불러올 때 Null 에러가 발생한다면, GetComponent 부분을 확인해야 한다. PlayerController 클래스 내에 있는 PlPos Vector2 변수 값을 가져온다고 가정하면, 아래와 같이 작성한다. 1 2 3 4 5 6 7 8 PlayerController playerController; // Start is called before the first frame update void Start() { playerController = GameObject.Find("Player").GetComponent(); } Colored by Color Scripter cs 어떤 게임오브젝트에서 컴포넌트를 찾을 것인지를 추가해주어야 한다. (GameObject...