오브텍트의 재질 접근은 MeshRenderer를 통해서 접근한다. 

 MeshRenderer mesh;
    Material mat;

    void Start()
    {
        mesh = GetComponent<MeshRenderer>();
        mat = mesh.material;
    }

 

CollisionEnter :  물리적 충돌이 시작할 때 호출되는 함수.  --> 충돌 시작

CollisionStay: 충돌이 쭉 일어날때.  --> 충돌 중

CollisionExit : 물리적 충돌이 끝났을 때 호출되는 함수. --> 충돌 끝.

 

칼라

Color : 기본 색상 클래스,

Color32 : 255 색상 클래스

 

   private void OnCollisionEnter(Collision collision)
    {
        if(collision.gameObject.name == "My Ball")
            mat.color = new Color(1, 1, 1);
    }

 

  private void OnCollisionExit(Collision collision)
    {
        if (collision.gameObject.name == "My Ball")
            mat.color = new Color(0, 0, 0);
    }

 

Collision 충돌 정보 클래스

 

투명하게하기 : Rendering Mode를 Transparent로 설정하고 albedo color에서 a(알파)값을 내려야한다. 

 

트리거 이벤트

Box Collider에서 Is Trigger 체크함. 

TriggerStay: 콜라이더가 계속 충돌하고 있을 때 호출한다.

 

Rigidbody rigid; //선언

    // Start is called before the first frame update
    void Start()
    {
        //초기화
        rigid = GetComponent<Rigidbody>();
  
    }

    // Update is called once per frame
    void FixedUpdate()
    {
        float h = Input.GetAxisRaw("Horizontal");
        float v = Input.GetAxisRaw("Vertical");
        Vector3 vec = new Vector3(h, 0, v);
        rigid.AddForce(vec, ForceMode.Impulse); 
     
    }

    private void OnTriggerStay(Collider other)
    {
        if(other.name == "Cube")
        {
            rigid.AddForce(Vector3.up * 2, ForceMode.Impulse);

        }
    }

 

//실제 물리적인 충돌로 발생하는 이벤트

void OnCollisionEnter(Collision collision) {}

void OnCollisionStay(Collision collision) {}

void OnCollisionExit(Collision collision) {}

 

//콜라이더 충돌로 발생하는 이벤트

void OnTriggerEnter(Collider other){}

void OnTriggerStay(Collider other){}

void OnTriggerExit(Collider other){}

+ Recent posts