본문 바로가기
게임 이야기/스타크래프트2

효과 있는지 모르는 최적화 가이드 - 필드의 자원 변경, 유닛 속성 설정 문제

by LillyLt 2018. 10. 6.

이번에는 지도상에 이미 배치된 자원들의 수치를 배율로 증가시키는 게임 특성 입니다.

게임 특성을 만듭니다.




특성값을 적용할 초기화 트리거를 만듭니다.




"자원배율 적용 곱하기" 트리거의 내용을 

"자원배율 초기화" 트리거 내용에 넣고 

"자원배율" 정수 변수를 사용 안하는 방법도 있습니다.


내용 관리때문에 분할한겁니다.

C++ 같은건 변수를 넘기는게 기본인데 트리거는 그게 안되나.. 좀 찿아봐야지..



지도상의 자원값을 읽어서 배율값만큼 적용하는 트리거 입니다.




여기서 수치 제한이 524287 인 이유가 있습니다.


"변수 설정" 에서 "유닛 자원" 값을 읽어올시 "정수"값으로 가져옵니다. 

(...? 메모리상에는 분명 실수형으로 알고 잇는데)


"유닛 속성 설정" 에서는 값을 넣을시 "실수"형으로 들어갑니다...

(...?????)


들어갈때 실수형으로 바뀌어서 들어니다.(중요!)

실수형의 최대값은 최대값이 524287 입니다.

스크립트를 보면 대놓고 int 형으로 되있습니다..

아니 게임 자원은 double형이면서 왜 이건 int형인건데


그러니 정수형으로 숫자를 암만 올려봤자 

메모리상의 데이터 타입 변경으로 실수형으로 바뀌며 

값이 개판으로 들어갑니다.


그래서 전 자동 초기화 트리거를 하나 넣게 되버립니다.



맨 위에 게임 특성 초기화시 "자동 채우기" 에도 자원 배율을 512로 설정한 이유가 있는데,


자원이 1이 남은 상태에서 5를 캐버릴경우 유닛 소멸이 먼저되서 

"아무 유닛 자원 변경" 트리거는 작동하지 않습니다.




자원배율.SC2Lib