유니티:충돌 이벤트
편집하기
둘러보기로 이동
검색으로 이동
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
미리 보기
편집기 전환
원본 편집으로 전환했습니다.
닫기
이 아이콘을 클릭하면 언제든지 시각 편집으로 다시 전환할 수 있습니다.
시각 편집
원본 편집
더 보기
고급
특수 문자
도움말
문단 제목
2단계
3단계
4단계
5단계
형식
넣기
라틴 문자
확장 라틴 문자
IPA 문자
기호
그리스 문자
그리스어 확장
키릴 문자
아랍 문자
아랍어 확장
히브리 문자
뱅골어
타밀어
텔루구어 문자
싱할라 문자
데바나가리어
구자라트 문자
태국어
라오어
크메르어
캐나다 원주민 언어
룬 문자
Á
á
À
à
Â
â
Ä
ä
Ã
ã
Ǎ
ǎ
Ā
ā
Ă
ă
Ą
ą
Å
å
Ć
ć
Ĉ
ĉ
Ç
ç
Č
č
Ċ
ċ
Đ
đ
Ď
ď
É
é
È
è
Ê
ê
Ë
ë
Ě
ě
Ē
ē
Ĕ
ĕ
Ė
ė
Ę
ę
Ĝ
ĝ
Ģ
ģ
Ğ
ğ
Ġ
ġ
Ĥ
ĥ
Ħ
ħ
Í
í
Ì
ì
Î
î
Ï
ï
Ĩ
ĩ
Ǐ
ǐ
Ī
ī
Ĭ
ĭ
İ
ı
Į
į
Ĵ
ĵ
Ķ
ķ
Ĺ
ĺ
Ļ
ļ
Ľ
ľ
Ł
ł
Ń
ń
Ñ
ñ
Ņ
ņ
Ň
ň
Ó
ó
Ò
ò
Ô
ô
Ö
ö
Õ
õ
Ǒ
ǒ
Ō
ō
Ŏ
ŏ
Ǫ
ǫ
Ő
ő
Ŕ
ŕ
Ŗ
ŗ
Ř
ř
Ś
ś
Ŝ
ŝ
Ş
ş
Š
š
Ș
ș
Ț
ț
Ť
ť
Ú
ú
Ù
ù
Û
û
Ü
ü
Ũ
ũ
Ů
ů
Ǔ
ǔ
Ū
ū
ǖ
ǘ
ǚ
ǜ
Ŭ
ŭ
Ų
ų
Ű
ű
Ŵ
ŵ
Ý
ý
Ŷ
ŷ
Ÿ
ÿ
Ȳ
ȳ
Ź
ź
Ž
ž
Ż
ż
Æ
æ
Ǣ
ǣ
Ø
ø
Œ
œ
ß
Ð
ð
Þ
þ
Ə
ə
서식 지정
링크
문단 제목
목록
파일
토론
각주
설명
입력하는 내용
문서에 나오는 결과
기울임꼴
''기울인 글씨''
기울인 글씨
굵게
'''굵은 글씨'''
굵은 글씨
굵은 글씨와 기울인 글씨
'''''굵고 기울인 글씨'''''
굵고 기울인 글씨
설명
입력하는 내용
문서에 나오는 결과
각주
Page text.<ref>[https://www.example.org/ Link text], additional text.</ref>
Page text.
[1]
이름이 지정된 각주
Page text.<ref name="test">[https://www.example.org/ Link text]</ref>
Page text.
[2]
같은 각주의 추가 사용
Page text.<ref name="test" />
Page text.
[2]
각주 표시
<references />
↑
Link text
, additional text.
↑
Link text
{{유니티}} ==개요== 물체들끼리 부딪혔을 때 스코어가 올라간다든가, 어떤 범위 내에 진입했을 때 특정 효과를 부여한다든가.. 이러한 조건들에 대한 기능이 유니티에선 이미 구현되어 있다. =충돌 이벤트= 콜라이더끼리 충돌이 일어나면 다음의 함수들이 실행된다. {| class="wikitable" !충돌관련함수 !설명 |- |OnCollisionEnter |충돌이 일어날 때 |- |OnCollisionStay |충돌중 |- |OnCollisionExit |충돌이 끝났을 때 |} On만 입력해도 다양한 함수의 선택지가 나온다. 스크립트를 만든 후,<syntaxhighlight lang="c#"> MeshRenderer mesh; //오브젝트의 재질에 접근. Material mat; void Start() { mash = GetComponent<MeshRenderer>(); mat.mesh.material //필요한 속성을 가져온다. } private void OnCollisionEnter(Collision collision) //Collision =충돌 정보 클래스. 콜리더를 매개변수로 받아온다. { if(collision.gameObject.name=="My Ball"){ //어떤 오브젝트와 충돌할 것인가?? mat.color=new Color(1,1,1); //충돌이 일어나면 색을 바꾼다. } } // collision.contacts[0] 형태로, 닿은 물체와의 충돌점 대해 순서대로 배열에 담아주는 기능도 있다. </syntaxhighlight>if(collision.gameObject..tag=='태그명'){} //이 형태로 레이어에 따라 다르게 반응하게 할 수도 있다. Collision 충돌 정보 클래스. collision.contacts[0].normal.y 로, 접촉한 게 위에서부터 접촉한 거라면 양수, 수직하게 접촉하면 1을 반환해주어 어떤 경사로 접촉했는지도 알 수 있다. 이로부터 천장과 부딪힌건지, 바닥과 부딪힌건지 알 수 있다. 전염병 전파 시뮬레이션을 만드는 데에도 좋겠다. ===충돌여백=== 분명 물체끼리 충돌을 하는데, 약간의 공백이 있는 경우가 있다. 빠르게 충돌하는 경우라면 모를까, 캐릭터와 땅이 맞닿아 있는 상황이라면 위화감이 생긴다. 이런 경우엔 Project Settings의 Physics에서 Default Contact Offset을 0으로 조절해준다.(0은 허락되지 않지만.. 0.0001로 맞춰진다.) =공간= Collider 컴포넌트 안에서 is Treeger를 체크를 하면 해당 오브젝트는 트리거가 된다.(충돌판정은 생기지만, 물리효과는 없다.) 물리적 물체처럼 반응하진 않지만, 내부에 들어오면 반응한다. 양쪽 다 트리거일 필요 없이, 한쪽만 트리거여도 양쪽 모두 트리거 이벤트가 실행된다. 다음과 같은 함수가 실행된다. {| class="wikitable" !충돌관련함수 !설명 |- |OnTriggerEnter |충돌이 일어날 때 |- |OnTriggerStay |충돌중 |- |OnTriggerExit |충돌이 끝났을 때 |} 온콜리더 함수와 동일한 형태이다. Enter, Stay, Exit가 있다.<syntaxhighlight lang="c#"> void OnTriggerEnter(Collider other) { // 충돌한 물체의 정보가 other변수에 담긴다. if(other.name == "player") { Rigidbody rigid = other.GetComponent<Rigidbody>(); // 접촉한 물체의 컴포넌트를 가져올 수도 있다. } if(other.tag == "player") { // 태그를 검사할 수도 있다. } </syntaxhighlight> ==충돌예외== 물리충돌하지 않게 많들기. ProjectSettings의 Physics에서 레이어별로 충돌하지, 하지 않을지 체크할 수 있다. gameObject.layer //게임오브젝트의 레이어값을 가져온다. 레이어번호로 레이어를 설정한다. <br /> ===이거 어따두지;;?=== Color(R, G, B, 투명도); 형태이다. 투명도는 제외 가능.(디폴트 1)
요약:
학교의 모든 지식. SMwiki에서의 모든 기여는 크리에이티브 커먼즈 저작자표시 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
학교의 모든 지식. SMwiki:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
틀:유니티
(
편집
)
둘러보기 메뉴
개인 도구
로그인하지 않음
토론
기여
로그인
이름공간
문서
토론
한국어
보기
읽기
편집
원본 편집
역사 보기
더 보기
검색
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보