STIKA

TIL[55]✏️ 본문

프로그래밍/Unity + C#

TIL[55]✏️

STIKA 2024. 3. 28. 22:22

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

 

[Unity3D] Tilemap (2) - 룰 타일로 타일맵 자동 연결하기

Tilemap (2) - 룰 타일로 타일맵 자동 연결하기 작성 기준 버전 :: 2019.1-2019.2 [이 포스트의 내용은 유튜브 영상으로도 시청하실 수 있습니다] 지난 섹션에서는 간단하게 타일맵을 만들고 사용하는 방

wergia.tistory.com

 

 

 

 

 

특정 오브젝트 위에서 커서 바꾸기

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