void OnCollisionEnter(Collision other){
if(other.transform.tag == "cube" || other.transform.tag == "door" ){ //충돌한 tag가 cube 또는 door 라면 JumpB가 참.
JumpB = true;
}
if(other.transform.tag == "JumpUp"){
/* 1.5와 jump변수값을 곱한 힘의 백터 위의 방향으로 힘을 가함.*/
rigidbody.velocity = Vector3.up * jump * 1.5f *Time.deltaTime;
}
}
void OnTriggerEnter(Collider other){
if(other.transform.tag == "Player"){ //충돌한 물체 tag가 Player라면, End 씬으로 씬을 넘긴다.
Application.LoadLevel("End");
}
}
RaycastHit hit_0; // RaycastHit 선언.
void Update () {
Vector3 ray_position = transform.position; //현재 위치.
Vector3 ray_direction_R = transform.TransformDirection(1, 0, 0); //x값이 1, y값이 0, z값이 0 방향.
if(Physics.Raycast(ray_position, ray_direction_R, out hit_0, 0.51f)) // 0.5거리가 떨어져있는 위치에 닿는 다면.{
if(hit_0.collider.tag == "Block_R"){ //Block_R tag라면 -0.75 위치로 이동한다. (접근을 제한한 것.).
float pos_x = hit_0.collider.transform.position.x -0.75f;
transform.position = new Vector3(pos_x, 0, transform.position.z);
transform.Translate (Vector3.right * h * Speed * Time.deltaTime);
}
}
}
4Raycast는 응용 분야가 다양하기 때문에 국한되어 사용하는 실수를 범하지 말자
void AddRigidbody(){ //함수가 호출되면 Hierarchy 창 안에 있는 Box_s 안에 있는 box0~ 물체에 Rigidbody를 넣어준다.
GameObject.Find("Box_s/box"+i).AddComponent("Rigidbody");
}
[Unity] 자주쓰는 함수_(4) OnMouse (0) | 2023.07.19 |
---|---|
[Unity] 자주쓰는 함수_(3) GUI, OnGUI, 3D Text (0) | 2023.07.19 |
[Unity] 자주쓰는 함수_(1) Player 움직임 (0) | 2023.07.19 |
[Unity] MonoBehaviour Life Cycle (0) | 2023.07.19 |
[Unity] Unity 3D 최적화 하기 (0) | 2023.07.19 |