STIKA
TIL[55]✏️ 본문
24.03.28 Thu
❤️ TIL [50]
Today I Learned
✏️ 작업 내용
✔️
✔️
✔️ 두둥
윗쪽사진처럼 위아래가 먼저 셋팅되어있으면 대각선방향으로 걸어갈때 캐릭터 애니메이션이
위아래 방향으로 나온다
아래사진처럼 왼오가 먼저 셋팅되어있으면 대각선방향도 왼오로 나온다
무슨원리임?!
그래서 일단 아래사진대로 하기로했다
Newtonsoft.Json 패키지 추가
패키지 매니저 +표시 add package by name -> com.unity.nuget.newtonsoft-json
- [x] 나눠져있던 장비 애니메이터 삭제하고 오버라이드
- [x] Hair, Top, Bottom,Equipment로 나누기
- [x] 애니메이션 foreach로 바꾸기
- [x] 눈, 볼터치 입술 합치기
움직일때 클릭하면 애니메이션은 안나와도 멈추는순간 use애니메이션이 한번나옴
그리고 에너지도 담
움직일때는 아예 use가 안되게 만들기로함
인풋컨트롤러에서 움직일때의 isMove를 받고
그걸로 isUseEnergy와 clickevent를 활성화함
//OnMove
//움직이면 타겟안보임
if (moveInput == Vector2.zero)
{
isMove = false;
GameManager.Instance.targetSetting.gameObject.SetActive(true);
}
else
{
isMove = true;
GameManager.Instance.targetSetting.gameObject.SetActive(false);
}
//OnUse
if (isMove == true)
isUseEnergy = false;
else
{
isUseEnergy = true;
CallClickEvent(PlayerEquipmentType.Water);
}
플레이어에서 플레이어 스프라이트 노났음
여러종류다 솔팅오더해줘야해서
그래서 *10 을 *100으로 다시바꿈
플레이어 솔팅이 마이너스로도 가서 워터타일맵을 WaterLayer만듬
이제 오브젝트 레이어검사를 자식들 다있는 배열에서 해야해서
오브젝트 레이어 세팅에 아예 메서드를 만듬
그리고 애니메이션에 포지션값을 조절하는 애를 넣었더니 캐릭터 자체가 안움직여서 일단 빼둠
룰타일 로테이션 으로 14개로 전부 만듬 땅파는룰타일
농사룰타일
https://wergia.tistory.com/200
특정 오브젝트 위에서 커서 바꾸기
OnMouseEnter/Exit를 써서
오브젝트에서 마우스가 올라오는걸 체크해야해서 오브젝트에 달아줘야함
크롭과 오브젝트 프리팹에 달아주면될듯
너무많아지면 리소스로 커서 텍스쳐를 받아오는것도..
커서 스프라이트 인스펙터에서 스프라이트형식이 아니라 커서형식으로 바꿔야함
하베스트 태그달고있는거위에서만
그리고 해보니까 감지하는범위가 콜리더로 되어있음 콜리더 설정해야함
public Texture2D plusCursor;
private void OnMouseEnter()
{
if(tag=="Harvest")
Cursor.SetCursor(plusCursor, Vector2.zero, CursorMode.ForceSoftware);
}
private void OnMouseExit()
{
Cursor.SetCursor(null, Vector2.zero, CursorMode.ForceSoftware);
}
일단 하드코딩으로
마우스 클릭위치 방향값 받아와서 그쪽 방향으로 애니메이션 설정하기 완료
Mathf abs, Atan2 radian2degree건드렸다가 힘듬
atan2의 각도는
0~180
-180~0
로 되어있음
//PlayerInputController.OnUse
Vector3 mousePos = mainCamera.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 10f));
playerPos = transform.position;
Vector2 pos = new Vector2();
pos.x = (playerPos.x - mousePos.x)*-1;
pos.y = (playerPos.y - mousePos.y)*-1;
pos.Normalize();
//AnimationController.UseAnimation
foreach (var anim in animator)
{
anim.SetFloat("saveX", pos.x);
anim.SetFloat("saveY", pos.y);
}
📝 오늘의 마무리
✏️ 스스로 어제보다 한 발 더 나아갔다는 것을 자각하기
✏️ TIL을 쓰기 위해서라도, 오늘 반드시 단 하나라도 배우기
✏️ 꾸준히 기록을 남기는 습관 가지기
'프로그래밍 > Unity + C#' 카테고리의 다른 글
TIL[59]✏️ (0) | 2024.04.04 |
---|---|
TIL[58]✏️ (0) | 2024.04.03 |
TIL[54]✏️ (0) | 2024.03.27 |
TIL[53]✏️ (1) | 2024.03.26 |
TIL [52]✏️ (0) | 2024.03.25 |