인프런 커뮤니티 질문&답변

ekdud_____님의 프로필 이미지

작성한 질문수

따라하면서 배우는 고박사의 유니티 기초

게임오브젝트 물리와 충돌 (13:01)

에러는 발생 안 하는데 부딪혀도 sun 오브젝트에 아무런 반응이 없습니다.

21.02.28 19:57 작성

·

311

0

using UnityEngine;

public class TriggerEvent : MonoBehaviour

{

    [SerializeField]

    private GameObject moveObject;

    [SerializeField]

    private Vector3 moveDirection;

    private float moveSpeed;

    private void Awake()

    {

        moveSpeed = 5.0f;

    }

    private void OnTriggerEnter2D(Collider2D collision)

    {

        // moveObject 오브젝트의 색상을 검은색(Color.black)으로 설정

        moveObject.GetComponent<SpriteRenderer>().color = Color.black;

    }

    private void OnTriggerStay2D(Collider2D collision)

    {

        // moveObject 오브젝트를 moveDirection 방향으로 이동

        moveObject.transform.position += moveDirection * moveSpeed * Time.deltaTime;

    }

    private void OnTriggerExit2D(Collider2D collision)

    {

        // moveObject 오브젝트의 색상을 흰색(Color.white)으로 설정

        moveObject.GetComponent<SpriteRenderer>().color = Color.white;

        // moveObject 오브젝트의 위치를 (0, 3, 0)으로 설정

        moveObject.transform.position = new Vector3(0, 3, 0);

    }

}

다음과 같이 코드를 작성했는데 sun 오브젝트의 색이 변하면서 meveDirection으로 움직인다든지, 검은색으로 변한다든지 하지가 않습니다. 

답변 5

1

고박사님의 프로필 이미지
고박사
지식공유자

2021. 03. 01. 17:06

스크린샷에 딱 가려진 부분에

콜라이더 컴포넌트 isTrigger 변수가 체크 되어 있나요?

0

김미진님의 프로필 이미지

2022. 10. 26. 01:19

Trigger Event에서 왼쪽, 오른쪽 모두 move object와 move direction 값 설정해 줬더니 색 변화와 이동은 하는데

left tilt 와 right tilt에도 트리거 체크 해줬는데 충돌 시 멈추지 않네 요 ㅠㅠㅠ

고박사님의 프로필 이미지
고박사
지식공유자

2022. 10. 26. 08:33

moveObject의 색 변화와 이동은 하는데

left tilt 충돌 시 멈추지 않는다는게 무슨뜻일까요?

moveObject가 멈추지 않는다는 건가요?

 

left, right tilt와 충돌했을 때 moveObject의 색이 검은색으로 변하고,

충돌하고 있는 동안 계속 이동하는게 맞습니다.

그리고 left, right tilt를 벗어나 충돌이 해제되면 moveObject가 다시 중앙 위치로 돌아옵니다.

0

ekdud_____님의 프로필 이미지
ekdud_____
질문자

2021. 03. 01. 17:21

강의를 많이 들었는데 놓친 부분이 있었나보네요... 도움 주셔서 정말 감사합니다!

0

고박사님의 프로필 이미지
고박사
지식공유자

2021. 03. 01. 17:13

isTrigger는 충돌 범위의 기능을 트리거의 용도로 사용할 것인지 입니다.

트리거의 용도란 게임에서 문을 열거나 트랩을 발동시키는 장치의 개념으로

isTrigger가 체크되어 있으면 해당 충돌 범위와 충돌했을 때 충돌이 되지 않고 통과됩니다.

그리고 그 대신 OnTriggerXX2D() 메소드가 호출되죠.

이 내용은 영상에서 언급하고 있을것입니다.

0

ekdud_____님의 프로필 이미지
ekdud_____
질문자

2021. 03. 01. 17:11

해결 됐습니다! isTrigger 변수가 정확히 무엇을 의미하는지 알 수 있나요?? 도움주셔서 정말 감사합니당!