์ถฉ๋ํ ์ง์ฌ๊ฐํ ๋ธ๋ญ์ ์งํ ๋ฐฉํฅ์ ๋ฐ์์์ ์ง์ฌ๊ฐํ ๋ธ๋ญ์ ๊ทธ ๋ฐฉํฅ์ผ๋ก ๋์ด์ง๊ฒํจ ์คํฌ๋ฆฝํธ ํ๋์
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Play : MonoBehaviour
{
ย ย private string Rotate_Dir; //๋,์,๋จ,๋ถ ๊ฐ๋ฅ
ย ย public float Rotate_Timer = 0.5f, Rotate_Angle = 10f;
ย ย private float Timer;
ย ย public string Triger_Dir;
ย ย private int Col_Count=0;
ย ย public bool Triger = false;
ย ย private Rigidbody Target;
ย ย private void OnCollisionEnter(Collision collision)
ย ย {
ย ย ย ย if (Col_Count == 0 && Triger==false) /*์ถฉ๋ ์นด์ดํธ๊ฐ 0์ด๋ฉด 1๋ก ๋ง๋ค์ด์ ์๋ ๋ช ๋ น์ด 1๋ฒ๋ง ์คํ๋๊ฒํจ ํธ๋ฆฌ๊ฑฐ false๋ผ๋ ์กฐ๊ฑด์ ๋ถ์ด์ง ์์ผ๋ฉด
ย ย ย ย ย ย ํธ๋ฆฌ๊ฑฐ ๋ธ๋ญ๋ ์ถฉ๋ ์ด๋ฒคํธ๋ฅผ ์คํํ๋ฏ๋ก ์ค๋ฅ๊ฐ ์๊ธฐ๊ฒ๋จ*/
ย ย ย ย {
ย ย ย ย ย ย Col_Count = 1;
ย ย ย ย ย ย Rotate_Dir = collision.transform.GetComponent<Play>().Rotate_Dir; //์ถฉ๋๋ ๊ฐ์ฒด์ ํ์ ์งํ ๋ฐฉํฅ์ ์ฝ์ด์์ ์์ ์ ํ์ ์งํ ๋ฐฉํฅ์ ๋๊ธฐํ ์ํด
ย ย ย ย }
ย ย }
ย ย private void Awake()
ย ย {
ย ย ย ย Rotate_Dir = Triger_Dir;
ย ย }
ย ย void Start()
ย ย {
ย ย ย ย ย
ย ย ย ย Timer = Rotate_Timer;
ย ย }
ย ย void Update()
ย ย {
ย ย ย ย Timer -= Time.deltaTime; //ํ์ด๋จธ ๊ฐ์
ย ย ย ย if(Rotate_Dir=="๋" && transform.rotation.eulerAngles.z != 270f && Timer<0f)
ย ย ย ย {
ย ย ย ย ย ย Timer = Rotate_Timer;
ย ย ย ย ย ย transform.Rotate(0f, 0f, -Rotate_Angle);
ย ย ย ย }
ย ย ย ย if (Rotate_Dir =="์" && transform.rotation.eulerAngles.z <= 80f && Timer < 0f)
ย ย ย ย {
ย ย ย ย ย ย Timer = Rotate_Timer;
ย ย ย ย ย ย transform.Rotate(0f, 0f, Rotate_Angle);
ย ย ย ย }
ย ย ย ย if (Rotate_Dir == "๋จ" && transform.rotation.eulerAngles.x != 270f && Timer < 0f)
ย ย ย ย {
ย ย ย ย ย ย Timer = Rotate_Timer;
ย ย ย ย ย ย transform.Rotate(-Rotate_Angle, 0f, 0f);
ย ย ย ย }
ย ย ย ย if (Rotate_Dir == "๋ถ" && transform.rotation.eulerAngles.x != 90f && Timer < 0f)
ย ย ย ย {
ย ย ย ย ย ย Timer = Rotate_Timer;
ย ย ย ย ย ย transform.Rotate(Rotate_Angle, 0f, 0f);
ย ย ย ย }
ย ย }
}
๋๊ธ 0