나의 개발 블로그인 티스토리가 어제 먹통이되어.. 네이버로 임시 작성 후 다시 글을 쓰러 왔습니다.
![](https://blog.kakaocdn.net/dn/euOHDb/btsHETMfm9t/YcJ6QXJfXl7fCuPK1e8pPK/img.png)
다른 사람 블로그는 모두 들어가지는걸로 봐서는 아주 못된.. 카카오...
저를 왕따 시키는 것 같읍니다..
티스토리가 조금 바뀌었더라고요.. 사용중인 스킨이 있었는데 거기서 문제가 발생한건지 아무튼 그렇습니다.
![](https://blog.kakaocdn.net/dn/cSiXvk/btsHFoSGYcO/FpcaMKKmRQKf2xM1OLZGsk/img.png)
사실입니다..
매니저님께서 2차 확인도 받아주셨습니다..
오늘의 TIL은 간단하게 쓰고 마치렵니다.. 나중에 추가 작성하러 오겠습니다.
점프대 구현하기
어렵지 않습니다...
기존에 튜터님이 ItemData를 바탕으로 저는 맵에서 사용할 아이템들인 TrickItemData파일을 만들어서 ScriptableObject 를 만들었습니다.
기존에 있던 ItemData에 처음에는 만들려고 했는데 인벤토리에 넣는걸 상속받고 있어서 그냥 새로 만들었습니다.
![](https://blog.kakaocdn.net/dn/df4GcS/btsHEE2TqTH/WddDCsVi31JCGT30xnTx2k/img.png)
점프대, 움직이는 발판, 사다리가 TrickItemObject들인데요.
점프대만 구현하면 움직이는 발판, 사다리정도는 껌입니다.
점프대에서 시간을 많이 쓴 것 같아요.
어떻게 해야할지 갈팡질팡 하다가요.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TrickItemObject : MonoBehaviour, IInteractable
{
public TrickItemData trickItemData;
private bool isMovePadMoving = false;
private bool isClimbing = false;
private GameObject playerObject;
private Rigidbody playerRigidbody;
private void Start()
{
playerObject = CharacterManager.Instance.Player.gameObject;
playerRigidbody = playerObject.GetComponent<Rigidbody>();
}
public string GetInteractPrompt()
{
string str = $"{trickItemData.displayName}\n{trickItemData.description}";
return str;
}
private void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.CompareTag("Player"))
{
playerObject = collision.gameObject;
if (playerRigidbody != null)
{
switch (trickItemData.trickItemType)
{
case TrickItemType.JumpPad:
Vector3 jumpDirection = transform.up;
float jumpForce = trickItemData.jumpForce;
Debug.Log("점프대랑 충돌");
playerRigidbody.AddForce(jumpDirection * jumpForce, ForceMode.Impulse);
break;
case TrickItemType.MovePad:
Debug.Log("전망대랑 충돌");
StartCoroutine(MovePadRoutine());
playerObject.transform.parent = transform;
break;
case TrickItemType.Ladder:
Debug.Log("사다리 사용");
isClimbing = true;
playerRigidbody.useGravity = false;
break;
}
}
}
}
// 생략
처음에는 Trigger를 이용해서 점프기능을 넣으려고 했는데, 점프대에 올라가는 그 느낌이 부족해서 Trigger로 사용은 안했습니다.
진짜 점프대에 닿는 그런 느낌으로 하고싶었어요. Trigger 체크를 안하면 물리적으로 되어있는 오브젝트를 사용할 수 있습니다...
![](https://blog.kakaocdn.net/dn/c8EYcM/btsHFO4y2D4/Sw7Q7Sb22LsrC9oqR2aN40/img.png)
TrickItem에서 사용한 스크립트는 TrickItemObject, TrickItemData 두개정도 되는 것 같습니다.
현재 TrickItemObject에서 충돌처리 이벤트를 하고있는데 아마 리팩토링을 하게된다면 PlayerController에 옮길 수 있지않을까 하는 생각이 듭니다.
점프대 위에 올라갔을때 플레이어의 y값이 변하는거니깐요.
![](https://blog.kakaocdn.net/dn/dqjWDj/btsHGiKPPry/7kJp0UZmASSfjy83s6yYX1/img.png)
이 발판 위로 올라가게 되면 충돌 이벤트가 생겨서 플레이어가 튕겨져나가게 됩니다. 모든걸 튕겨내는건 아니고 Player 태그를 가지고 있는 오브젝트가 닿았을때로 설정했습니다.
점프 하는 부분만 보면 됩니다유
현재 이정도는 구현했습니다...
![](https://blog.kakaocdn.net/dn/XBS97/btsHFPJataq/I3khwx21rJVxVOedKoh7gk/img.png)
아마 목요일까지 모두 완성은 무리일 것 같지만 열심해 해보겠습니당...
화이팅~~^^
![](https://blog.kakaocdn.net/dn/b3NAKK/btsHGUv32TW/lFM8V3tOA6SVikyr9mZvOk/img.png)
접속오류로 나의 소중한 방문자들이 줄어들었읍니다..
힝
'Unity > Diary' 카테고리의 다른 글
[Unity] 낮일때는 회복되고 밤일때는 소모되는 UI 만들기 (0) | 2024.05.30 |
---|---|
[Unity] 플랫폼 발사대 (포물선으로 튕겨내기) (4) | 2024.05.29 |
[Unity] AI 네비게이션 (2) | 2024.05.27 |
[Unity] SOLID 원칙 (4) | 2024.05.24 |
[Unity] 고전 게임 기반 팀프로젝트 마무리 (똥피하기게임) (0) | 2024.05.23 |