궁금한게 만약 체력 변수를 다루는 HealthComponent가 있다고 치고 그 안에 TakeDamage라는 함수가 있는데 오버라이드 하고싶을 경우 어떻게 하는편임? 그냥 HealthComponent 를 매번 상속시켜버리면 인스펙터에서 지옥이 일어날거같고. 컴포넌트는 아예 상속할 일이 없게 짜는게 맞음?
ㅇㅇ 1(223.38)2023-08-29 15:05:00
답글
나같은 경우는 인스펙터에서 부모 클래스 프로퍼티 싹 지우는 상속이 몇개 있음
bowmore(qcs5jom3x9tq)2023-08-29 15:09:00
답글
인스펙터가 걱정이면 걍 인스펙터 꾸미기에 심혈을 기울이는게 맞는듯
구조나 설계는 어차피 개발하다보면 아 이게 최선이 아니었구나 깨닫거나
내가 예전에 뭔생각으로 이래놨지 싶은 순간이 넘 많아서
bowmore(qcs5jom3x9tq)2023-08-29 15:11:00
답글
내가 인스펙터에서 무언가를 해결하는거에 좀 거부감드는 강박이 있는데 요새 클래스 하나에 코드가 길어지다보니 컴포넌트로 분리할까 고민중이었음. 난 히트당했을때 상대의 공격타입에 따라 달라지게 TakeDamage을 상속하는 편이었는데 그냥 좀 관점이 달랐던듯. 생각해본적이 없었던거라 많이 배워감
ㅇㅇ 2(223.38)2023-08-29 15:23:00
꼭 안좋다고 말할수도 없음. 난 네트워크 동기화때문에 GameObject들은 전부 그냥 유닛의 뷰일 뿐이고 모든 유닛 객체가 순수 C# 클래스임. 그렇다고 상속도 아니고 컴퍼넌트도 아니고, 컴포지션 방식임.
소닉쫄따구테일즈(dcz3xv7zgu14)2023-08-29 15:33:00
답글
대부분의 강의나 튜토리얼들이 과감하게 인스펙터에서 Add Component하는것들뿐이라 나 혼자 이상한 짓 하고 있는게 아닌가 생각이 들더라고. 나랑 비슷한 관점이라 반갑네
ㅇㅇ 3(223.38)2023-08-29 15:39:00
답글
테이블이나 런타임 데이터를 통해 뭔가 기능을 추가/제거 하는게 편하거나 그게 나을때가 많은데, 그럴때마다 프리팹을 깨작대다보면 발암걸리지. 프로토타입같은거 만들거나 연출적인거 만들때는 참 편한데, 인게임 코어 로직에 쓰기에는 여간 불편한 기능이 아님. 뗏다붙였다 할때마다 유동적으로 잘 동작하는 코드를 만드는것도 쉽지 않고, 그렇게 정석적인 컴퍼넌트 기반 개발을 할거면 차라리 ECS를 해야됨. 이회사 저회사 다 돌아댕기면서 프로젝트에서 쓰는거봤는데, 결국엔 다 퓨어C#으로 하더라
취향이에요
해당 댓글은 삭제되었습니다.
궁금한게 만약 체력 변수를 다루는 HealthComponent가 있다고 치고 그 안에 TakeDamage라는 함수가 있는데 오버라이드 하고싶을 경우 어떻게 하는편임? 그냥 HealthComponent 를 매번 상속시켜버리면 인스펙터에서 지옥이 일어날거같고. 컴포넌트는 아예 상속할 일이 없게 짜는게 맞음?
나같은 경우는 인스펙터에서 부모 클래스 프로퍼티 싹 지우는 상속이 몇개 있음
인스펙터가 걱정이면 걍 인스펙터 꾸미기에 심혈을 기울이는게 맞는듯 구조나 설계는 어차피 개발하다보면 아 이게 최선이 아니었구나 깨닫거나 내가 예전에 뭔생각으로 이래놨지 싶은 순간이 넘 많아서
내가 인스펙터에서 무언가를 해결하는거에 좀 거부감드는 강박이 있는데 요새 클래스 하나에 코드가 길어지다보니 컴포넌트로 분리할까 고민중이었음. 난 히트당했을때 상대의 공격타입에 따라 달라지게 TakeDamage을 상속하는 편이었는데 그냥 좀 관점이 달랐던듯. 생각해본적이 없었던거라 많이 배워감
꼭 안좋다고 말할수도 없음. 난 네트워크 동기화때문에 GameObject들은 전부 그냥 유닛의 뷰일 뿐이고 모든 유닛 객체가 순수 C# 클래스임. 그렇다고 상속도 아니고 컴퍼넌트도 아니고, 컴포지션 방식임.
대부분의 강의나 튜토리얼들이 과감하게 인스펙터에서 Add Component하는것들뿐이라 나 혼자 이상한 짓 하고 있는게 아닌가 생각이 들더라고. 나랑 비슷한 관점이라 반갑네
테이블이나 런타임 데이터를 통해 뭔가 기능을 추가/제거 하는게 편하거나 그게 나을때가 많은데, 그럴때마다 프리팹을 깨작대다보면 발암걸리지. 프로토타입같은거 만들거나 연출적인거 만들때는 참 편한데, 인게임 코어 로직에 쓰기에는 여간 불편한 기능이 아님. 뗏다붙였다 할때마다 유동적으로 잘 동작하는 코드를 만드는것도 쉽지 않고, 그렇게 정석적인 컴퍼넌트 기반 개발을 할거면 차라리 ECS를 해야됨. 이회사 저회사 다 돌아댕기면서 프로젝트에서 쓰는거봤는데, 결국엔 다 퓨어C#으로 하더라
대기업 게임회사들도 보통 퓨어 c#으로 처리하는 편인가요?
C++ 하다가 여기오니깐 컴포넌트가 어색하긴함