[Unity] Physics클래스

박호준·2022년 2월 14일
0

Unity

목록 보기
13/17

영역 안에 들어오면 총알 발사

public class emermy : MonoBehaviour
{
    private float createTime = 1f;
    private float currentCretateTime;
    [SerializeField] private GameObject go_BulletPrefeb;

    void Update()
    {
        Collider[] col = Physics.OverlapSphere(transform.position, 5f);

        if (col.Length > 0)
        {
            for (int i = 0; i < col.Length; i++)
            {
                Transform tf_Target = col[i].transform;

                if (tf_Target.tag == "Player")
                {
                    Quaternion rotation = Quaternion.LookRotation(tf_Target.position - this.transform.position);
                    currentCretateTime += Time.deltaTime;
                    transform.rotation = rotation;
                    if (currentCretateTime >= createTime)
                    {
                        GameObject _temp = Instantiate(go_BulletPrefeb, transform.position, rotation);
                       //총알 무시하게 만들기
                       //Physics.IgnoreCollision(_temp.GetComponent<Collider>(), tf_Target.GetComponent<Collider>());
                        currentCretateTime = 0;
                    }
                }
            }
        }
    }
}






public class bullet : MonoBehaviour
{
    [SerializeField] private float speed;
    [SerializeField] private float damage;

    void Update()
    {
        transform.position += transform.forward * speed * Time.deltaTime;
    }

    private void OnTriggerEnter(Collider other)
    {
        Debug.Log(other.transform.name + "에게 데미지" + damage + "를 입혔습니다.");
        Destroy(this.gameObject);
    }
}

회전하게 만들기

public class player : MonoBehaviour
{
    [SerializeField] private float speed;
    [SerializeField] private Transform tf_Target;

    void Update()
    {
        transform.RotateAround(tf_Target.position, Vector3.up, speed * Time.deltaTime);
    }
}
profile
hopark

0개의 댓글