하면서 소드맨과 슬라임 간의 상호작용이 되게 하는데


생각해보니 소드맨과 슬라임 간의 상호작용만 하면 안됏다

나중엔 슬라임 이외에 여러 종류의 적도 나올거고

아군 유닛도 소드맨만 잇는건 아니잔아?


근데 슬라임은 SlimeScript를 가져서 소드맨의 공격이 SlimeScript에게 영향을 줘야하는데

그럼 몬스터 추가할때마다 OrcScript DragonScript 등 다 포함시켜줄까?


이러면 안된다!





viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec87fa11d0283141b58444220b0c05398dc82aeedd06e5269bf4ecf12705d6d9b1ca6d6cd6ff02eed774b1d31c38840988a180f6a014b2e8cd59


처음엔 상속을 이용하려고 했다


아군 유닛들이 전부 쓰는 AllyUnitScript에 아군 유닛들이 기본적으로 사용할 능력치 선언, 이동 매커니즘, 적 감지 매커니즘 등을 넣고

소드맨의 SwordmanScript는 그 AllyUnitScript를 상속받아 능력치 초기화 및 소드맨만의 요소들을 넣는 것이다.



근데 하다 보니까 상속 간에는 코루틴 접근도 힘든거같고 무엇보다 AllyUnitScript와 EnemyUnitScript는 큰 차이가 없어 보였다


큰 차이가 없어 보이면.. 정규화를 하지 않을 수 없잖아?






viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec87fa11d0283141b58444220b0c05398dc82aeedc06e5383b33d672f83780c86c02bca3b04fb8ff40d2fbaef7406a1f5d08744f2688f05f86da67


아예 아군 적군 스크립트도 통합한 UnitScript에서

태그를 통해서 스크립트 내에서 아군과 적군을 나눠서 이동방향을 정했다


이전엔 상대 진영을 인식하는 콜라이더의 스크립트도 따로였는데

역시 태그를 통해서 Ally면 Enemy를 인식하고 Enemy면 Ally를 인식하게 바꾸었다


공격판정 콜라이더도.



이제 모든 유닛은 UnitScript에서 행동양상을 따오고,

게임오브젝트의 태그가 Ally인지 Enemy인지에 따라서만 차이가 생겼다










viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec87fa11d0283141b58444220b0c05398dc82aeedc06e5383b33d672f83780c86c02bca3b04fb8ff40d2fbaef7406a1d5d56211927d8f07adcbf7d


애니메이터에 대해서도 새로이 알게된게 있어서 깔끔하게 정리했는데,


애니메이터 파라미터의 트리거는 발동하지 못할 상황에선 발동 가능할 때까지 보류된다. 그리고 발동한 애니메이션이 끝나면 자동으로 다시 원래 애니메이션으로 돌아온다. -> 수정 : 애니메이션이 끝나면 자동으로 진행되는건 애니메이터 Conditions에 아무것도 지정하지 않으면 다 그렇다

나는 stand 상태에서 트리거가 들어오면 attack 애니메이션으로 넘어가고, attack 애니메이션이 끝나면 공격이 끝났다는 트리거를 또 줘서 stand로 돌아오게 했었는데, 그럴 필요가 없었던 것이다. attack 애니메이션이 끝나면 자동으로 stand로 돌아온다.


그리고 이전엔 발동되지 않은 트리거는 그냥 무효가 되는 줄 알고 공격판정이 생기기 전까진 트리거를 계속해서 줬기에 attack 애니메이션이 재생된 이후에도 공격판정이 생길 때까지 트리거가 들어왔고, 그 트리거는 보류되어 첫 attack이 끝나서 stand로 돌아오자마자 다시 attack으로 가 2연속 공격을 하게 됏다


이젠 그냥 공격 쿨타임이 차면 트리거를 한번 보내고, 그 트리거는 적이 없는 run상태에선 발동하지 않기 때문에 적을 만나기 전까지 보류되어 적을 만나서 멈춰설 때 발동된다.


애초에 공격 쿨타임으로 삼기 딱 좋은 기능이엇는데 멀리 둘러간 것이다









viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cec87fa11d0283141b58444220b0c05398dc82aeedd06e5269bf4ecf12705d69de49a0669d7fc05ea1c63905f366ff9e39ef938121d55


드디어 소드맨은 나흘만에 슬라임 한마리를 처치할 수 잇엇다