유니티 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;
}
}
}