TIL

2024/01/19 TIL

미역제자 2024. 1. 19. 21:44



Trouble Shooting_Falling Bricks

  • 캐릭터가 리스폰 되지 않고 함정에 납치당하는 버그 발견
  • Character Controller는 transform.position의 변경이 제대로 작동하지 않음.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerCheckPoint : MonoBehaviour
{
    [SerializeField] Vector3 lastCheckPoint;
    [SerializeField] LayerMask deadZone;
    public Vector3 LastCheckPoint { get { return lastCheckPoint; } }
    public void CheckPoint(Vector3 checkPoint)
    {
        lastCheckPoint = checkPoint;
    }

    private void OnTriggerEnter(Collider other)
    {
        if ((deadZone.value & (1 << other.gameObject.layer)) != 0)
        {
            gameObject.transform.position = lastCheckPoint;
        }
    }
}

  • 작동할때 잠깐 Character Controller를 꺼주고, 이동이 끝나면 다시 키는 방식으로 변경
  • 정상적으로 리스폰 하는 걸 확인
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerCheckPoint : MonoBehaviour
{
    [SerializeField] Vector3 lastCheckPoint;
    [SerializeField] LayerMask deadZone;
    CharacterController characterController;
    public Vector3 LastCheckPoint { get { return lastCheckPoint; } }

    private void Awake()
    {
        characterController = GetComponent<CharacterController>();
    }
    public void CheckPoint(Vector3 checkPoint)
    {
        lastCheckPoint = checkPoint;
    }

    private void OnTriggerEnter(Collider other)
    {
        if ((deadZone.value & (1 << other.gameObject.layer)) != 0)
        {
            characterController.enabled = false;
            gameObject.transform.position = lastCheckPoint;
            characterController.enabled = true;
        }
    }
}

'TIL' 카테고리의 다른 글

2024/01/25 TIL (CharacterController SkinWidth)  (1) 2024.01.26
2024/01/22 TIL  (0) 2024.01.22
2024/01/18 TIL  (0) 2024.01.18
2024/01/17 TIL (움직이는 발판 구현)  (0) 2024.01.17
2024/01/16 TIL (Character Controller TroubleShooting)  (0) 2024.01.17