示例#1
0
 protected void Walk(float dt)
 {
     monsterTransform.position = Vector3.MoveTowards(monsterTransform.position, pathList[0], dt * speed);
     // 거리가 특정 거리 이하 일때 발생
     if (Vector3.Distance(monsterTransform.position, pathList[0]) <= 0.1)
     {
         currentState = MonsterUnitState.SetPath;
     }
     else if (Vector3.Distance(monsterTransform.position, pathList[0]) <= 0.5 && pathList[0] != UnitPosition)
     {
         // 절반정도 진입했으면 TileEnter, TileLeave발행하고 포함된 타일 변경 + 적이 있는지 체크
         GameManager.Instance.MessageSystem.Publish(TileLeaveEvent.Create(UnitPosition, this));
         UnitPosition = pathList[0];
         GameManager.Instance.MessageSystem.Publish(TileEnterEvent.Create(UnitPosition, this));
         if (CheckPlayerUnit())
         {
             currentState = MonsterUnitState.Attack;
         }
     }
 }