C#/C# 학습 (TIL)32 C# 중급문법 DAY1 추상클래스/인터페이스/콜렉션/foreach/var/object 중급문법 학습에 들어가기 전 중급문법을 배우는 이유는? 사용하지 않아도 구현은 할 수 있지만 구현이 아니라 설계 부문에서 좀 더 확장이 용이하고/ 모듈화를 시키고/ 클래스끼리의 의존도를 낮추기 위해 배우는 것이다. 태그가 아닌 스크립트로 접근하기 private void OnTriggerEnter(Collider other) { if(other.GetComponent() !=null) { other.GetComponent().Hit(atk); } } if(other.tag==”Monster”) 로 비교하는 경우 태그가 구체화되어 바뀌거나 늘어날 때 문제 발생 그냥 몬스터 스크립트를 가지고 있는 경우가 더 적절 몬스터가 각각 다른 스크립트를 가지고 있는 경우에는?.. ex) 해당 종류에 해당하는 자식 스크립.. 2022. 6. 15. C# 중급문법 DAY2 확장메서드 /일반화(where T :)/ 딥카피/ 싱글톤 일반화 확장메서드 This : 확장메서드 규격(문법?공식) Transform : 어느 구조체? 클래스? 에 기능을 추가해줄 것인지 Current : 실제로 활용할 때 그 앞에 붙어서 이 메서드를 불러주는 것 예시) GetcomponentInParent는 바로 위 부모 오브젝트를 찾아주는 기능이므로 최상위 부모 오브젝트를 찾아주는 기능 만들기 카메라 흔드는 효과 등 내가 계속 반복해서 쉽게 쓰고 싶은 기능을 익스텐션 메써드에 넣어서 들고다니면 언제든 꺼내 쓸 수 있음 *주의할점 Int와 같이 구조체일 경우 깊은 복사가 일어나므로 ref를 붙여줘야 실제 값이 변함 - 오브젝트의 사이즈를 num만큼의 배수로 키워주는 메서드 만들기 일반화 (다음편에 더 자세히) void PrintValue(T value) { Debu.. 2022. 6. 15. 제트카라 커스텀/Jet Kara Custom/C# Unity 제트카라라는 게임의 코드를 분석하고 일부 수정해 커스텀하는 실습을 수행했다. 게임은 에셋 스토어에서 다운 가능하다. 게임의 플레이 방식은 그림과 같이 마우스 클릭으로 저 노란색 친구를 점프시켜 장애물을 통과하는 게임이다. 커스텀 계획 1. 콜라이더 범위 줄여서 난이도를 쉽게 변경 2. 클릭시 불꽃 외 한가지 변화가 더 일어나도록 변경 3. 장애물 추가 후 랜덤으로 등장하도록 변경 커스텀 과정 1. 콜라이더 범위 줄여서 난이도를 쉽게 변경 장애물에 닿는 범위가 너무 엄격해서 플레이가 어려워 설정한 계획이다. player의 collider의 지름을 0.33->0.25로 줄였다. 2. 클릭시 불꽃 외 한가지 변화가 더 일어나도록 변경 클릭 시 불빛 이펙트가 일어나게 했다. 빈 오브젝트 생성 후 컴포넌트 추가 .. 2022. 4. 13. C# Unity 다형성 실습 실습 내용 : 볼이 벽에 5번 닿으면 사라짐 스톤 벽에는 10번 닿으면 사라짐. 1/3의 확률로 닿아도 데미지 감소 없음(빗나감). 우드 벽에는 2번 닿으면 사라짐. 사라질 때 나무 아이템을 생성함. 1. 바닥, 볼, 벽 만들기 -assets 창에서 material 추가 후 색 적용 -충돌을 위해 볼에는 rigidbody 추가 (static collider끼리는 충돌 안일어남) -rigidbody에서 중력 해제 2. 벽 컨트롤 스크립트 -내구도 변수 설정 : public으로 유니티에서 직접 설정할 수 있게 -내구도감소 함수 -삭제되는 함수 : 내구도가 0이 되면 오브젝트 삭제됨. update 이벤트 함수에 적용 public class wallControl : MonoBehaviour { public in.. 2022. 4. 13. 이전 1 ··· 4 5 6 7 8 다음