작성
·
48
·
수정됨
0
저번에 조언해주신것을 통해서 다른 에셋들과 오픈소스들을 뜯어가면서 저만의 프레임워크를 설계중입니다.
그런데 다른 객체의 스텟을 가져와서 영향을 주려면 Getcomponent종류를 사용 할 수밖에 없는 것 같아 보이고 강의에서도 Getcomponent스킬의 대상을 지정할때 사용되는것을 보고 질문을 드립니다.
Getcomponent가 프레임 단위로 실행되는 수준만 아니면 되는건가요?
그러면 혹시 다른 게임에서의 예시로 버그, 해킹 툴의 요소로 공격속도를 비정상적으로 올라간상태로 공격시 프레임드랍이 걸리는 이유가 이때 Getcomponent같은게 실행이 많이 되어서 그런걸까요? ex)다크소울이었는지 엘든링이었는지 기억이 나질 않지만 버그로 인해 프레임단위로 공격하고 렉을 유발시켰던걸로 기억합니다.
public void SearchTargets()
{
var result = TargetSearcher.SearchTargets(Owner, Owner.gameObject);
Targets = result.targets.Select(x => x.GetComponent<Entity>()).ToArray();
TargetPositions = result.positions;
}
답변 1
0
수강해주셔서 감사합니다.
GetComponent 함수를 for문 호출로 한번에 10만번씩 사용하는게 아니라면 함수 하나 때문에 프레임 드랍이 생길 걱정은 안하셔도 됩니다. 최적화라는건 AI, 아트, 물리, 코드, 사운드 모든 것들이 복합적으로 작용해서 이루어지는 것이지 단순히 코드를 잘 짜거나 못 짰다고 어떻게 되는 것은 아닙니다.
감사합니다.
코드 최적화에 관심이 있으시다면 [CODE 하드웨어와 소프트웨어에 숨어 있는 언어]나 [클린코드]와 같은 설계와 관련된 프로그래머 교양 서적을 읽으시는걸 추천드리겠습니다. 최적화는 결국 내가 아는 선에서 밖에 할 수 없기 때문에 기본적인 설계에 대한 지식이 없으면 논하기 어렵습니다.
답변해주셔서 감사합니다.