본문 바로가기

유니티엔진

c# Collider 충돌체크로 공튀기기

유니티 Collider 충돌체크로 공튀기기

<코드외에 체크할점>

충돌체 모두에 해당

1. "Box" Collider 2D 컴포넌트 추가

2. "Box" Collider 2D컴포넌트에 Is Trigger체크

-- 충돌체크를 원하는 경우 Is Trigger을체크하기

3. Rigibody 2D 컴포넌트 추가

4. Rigibody 2D 컴포넌트에 Body Type을 "Kinematic"로 변경.

-- Dynamic(동적) / Kinematic(운동학) / Static(정적)

-- Dynamic(동적) 중력과 힘의영향을 받음. 가장 인터랙티브 한 바디임.

-- Kinematic(운동학) : Dynamic(동적)보다 가벼움. 중력의 영향을 받지않음.

-- Static(정적) : 가장 가벼움. 마치 질량이 무한인것처럼 움직이지않음.(움직이지않는것은 Static체크)


using System.Collections; using System.Collections.Generic; using UnityEngine; public class Sphere_collider : MonoBehaviour { public float speed = 10.0f; bool goal = true; bool goal2 = true; public GameObject ball2; Vector3 right = new Vector3(1, 0, 0); Vector3 start = new Vector3(0, 0, 0); private void Start() { ball2.transform.position = start; } private void Update() { if (goal == true || goal2 == true) { ball2.transform.position = transform.position + speed * right * Time.deltaTime; } else if (goal == false || goal2 == false) { ball2.transform.position = transform.position + speed * -right * Time.deltaTime; } else { } } private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.tag == "wall") { Debug.Log("오른쪽 벽도착"); goal = false; goal2 = false; } if (collision.gameObject.tag == "wall2") { Debug.Log("왼쪽 벽도착"); goal = true; goal2 = true; } } }


'유니티엔진' 카테고리의 다른 글

Culling  (0) 2021.11.09
C# 유니티 공튀기기  (0) 2020.03.08
Unity Clear Flag(유니티에서 스카이박스가 안보일때)  (0) 2020.03.05
유니티 Tag와 Layer  (0) 2020.03.04
유니티 Pivot  (0) 2020.03.04