본문 바로가기

전체 글475

추상 클래스 추상 클래스: 자식에게 자기가 가지고 있는 멤버나 함수를 상속시켜주지만 동시에 자기자신은 껍데기같은 것이라서 인스턴스화가 안됨(실시간으로 생성이 안됨) - 일반적인 클래스와 인터페이스의 중간정도 역할 - 인터페이스와 유사한데 인터페이스와 다른 점이라면 인터페이스는 맴버변수를 가질 수 없음(값을 가질 수 없음) 반면 추상클래스는 내부 값은 가질 수 있지만 찍어낼 수 없도록 강제됨. 인터페이스의 한계: 순수하게 함수 껍데기 자체만 들어갈 수 없고 멤버 변수나 구현물이 들어가있는 함수가 못들어감. 원하는 것: 어느정도 구현물이 들어가있었으면 좋겠다. 추상 클래스 만들기 클래스 앞에다 abstract 붙이기 추상 클래스는 함수 앞에다 abstract를 붙일 수 있음 인터페이스와 달리 실제 구현물도 어느정도 표현.. 2021. 7. 19.
인터페이스 인터페이스: 상속 받는 클래스에게 무조건 어떠한 함수나 프로퍼티를 만들도록 강제하는 장치 이걸 사용하면 상대방 타입을 일일이 개별로 추측할 필요 없이 한번에 인터페이스로써 다룰 수 있음. 인터페이스 사용하는 경우: 아이템 구현하거나 몬스터, 혹은 플레이어의 직업을 구현할 때 상대방 아이템, 몬스터, 플레이어 직업에 상관 없이 공통적인 기능을 한번에 묶어서 처리할 때 인터페이스를 씀. 인터페이스가 없는 경우: 우선 코드를 설명하면 밑의 스크립트는 Player.cs 안의 OnTriggerEnter2D 함수로, Collider2D other에는 충돌한 상대방이 들어옴. 충돌한 상대방을 가져와서 만약 그 친구가 GoldItem이나 HealthKitItem을 가지고 있으면 Use함수를 발동시켜서 아이템을 사용하는.. 2021. 7. 19.
오버라이드 오버라이드 : 부모 클래스에서 만들어놓은 함수를 자식 클래스에서 덮어씌워서 자기만의 것으로 새롭게 만드는 것 BaseRotator라는 부모 클래스를 만들고 회전은 자식들이 알아서 하는 스크립트를 만들고싶다! 즉 자식들이 Rotator 함수 안의 내부 구현을 맘대로 덮어씌우게 구현하고 싶다. BaseRotator은 그저 Rotate 함수만 돌리도록. virtual : 자식들이 덮어씌울 수 있다는 의미 즉 이친구가 가상으로써 존재하고, 다른 친구들이 덮어씌워서 진짜로 대체할 수 있다는 의미. 이제 Rotate는 자식들이 덮어 씌워 갈아치울 수 있음! 물론 덮어쓰지 않는다면 그대로 존재하고 덮어씌우면 덮어씌운채로 존재하는거고 부모 클래스인 BaseRotator 외에 각각 방향으로 회전시킬 자식 클래스들인 X,.. 2021. 7. 18.
상속 + 다형성, 집합 상속 : 베이스 클래스를 가져와서 그 위에 나만의 클래스를 확장해서 짓는 것. 따라서 코드 재활용 할 수 있고 구조 간결하게 할 수 있다. 다형성 : 상속에서 나오는 특징인데, 여러가지 베이스 클래스에서 파생된 여러 클래스들을 한번에 관리할 수 있음 상속과 다형성을 잘 활용하면 코드 구조를 간결하게 + 재활용 할 수 있음. 상속 Animal.cs Test.cs 부모-자식 관계에서 부모 클래스에서 private는 자식 클래스에서 보이지 않음! 부모 클래스의 GetSpeed는 public이라 자식에서 쓸 수 있으나 단, CalcSpeed()의 자세한 풀이 과정은 숨겼기 때문에(private) 자식에서 쓸 수 없음. 자식까진 public 보여주게 하고 싶으나, 쌩 외부의 클래스에서는 못보게 숨기고 싶음 이럴 .. 2021. 7. 18.
파워 슬라이더 사전 준비: BigProp도 만들어주기 -BallShooter 스크립트 만들기 Ball을 발사해주는 친구 만들기 위해 Shooter Pivot에 새로운 스크립트 만들어주기 : Ball을 찍어내서 날리는 역할 어떻게 날려? 슬라이더 제어 해서 힘을 충전해서! 따라서 힘이 얼만큼 충전되었는지 보여줄 UI 필요 그런데 기본적으로 Canvas는 화면과 관련된 요소라서 게임 속 세상과 관련이 없음. 이 친구를 화면이 아닌 게임 세상(Shooter Pivot에 붙이고 싶음)으로 끌고 오기 위해서는 Canvas Render Mode를 Word Space로 바꿔줌. 이렇게 하면 UI 요소들이 실제 게임 세상으로 들어와서 마치 증강현실처럼 실제 배치가 됨. 그 다음, Canvas Scaler의 Reference Pixe.. 2021. 7. 17.
Package Manager에 Preview 버전이 안보인다면? 2021. 7. 16.