찾기
내용으로 건너뛰기
추적
문서의 이전 판을 선택했습니다!
저장하면 이 자료로 새 판을 만듭니다.
미디어 파일
======Layers====== ''Layers''는 씬의 한 부분만을 그리기 위해 ''Cameras''에 의해서 주로 사용되고 씬의 부분들만을 비추기위해 ''Lights''에 의해 사용되기도 합니다. 그러나 그들은[[LayerBasedCollision|collisions]]을 생성하기 위해서나 또는 colliders을 선택적으로 무시하기 위해 raycasting에 의해 사용될 수 있습니다. =====Creating Layers===== 첫 번째 스텝은 새로운 레이어를 생성하는 것이고 그것은 우리가 하나의 ''GameObject''를 지정할 수 있습니다. 새로운 레이어를 생성하기 위해서 Edit 메뉴를 열고 **Project Settings->Tags**를 선택합니다. 우리는 빈 User Layers 하나에서 새로운 레이어를 생성합니다. 우리는 레이어 8을 선택합니다. {{:unity3d:Layer-CreateNewLayer.png}} =====Assigning Layers===== 사용자는 새로운 레이어를 선택하고 게임 오브젝트의 하나에 그 레이어를 지정해야만 한다는 것을 명심해야 합니다. {{:unity3d:Layer-ChooseLayer.png}} 태그 manager에서 우리는 플레이어 레이어를 레이어 8이 되도록 지정했습니다. =====Drawing only a part of the scene with the camera's culling mask===== 카메라의 culling 마스크를 사용해서 사용자는 선택적으로 하나의 특정한 레이어에 있는 물체를 표현할 수 있습니다. 이것을 하기 위해서 선택적으로 물체를 표현해야 하는 카메라를 선택합니다. Culling 마스크 속성에서 체크하거나 또는 체크하지 않는 레이어에 의해 culling 마스크를 변경합니다. {{:unity3d:Layer-CullingMask.png}} =====Casting Rays Selectively===== 레이어를 사용해서 사용자는 광선을 캐스트할 수 있고 특정 레이어에서 colliders를 무시할 수 있습니다. 예를 들어 사용자는 플레이어 레이어에 반하여 하나의 광선을 캐스트하고 싶을지도 모르고 모든 다른 colliders를 무시할지도 모릅니다. Physics.Raycast 함수는 각 비트가 하나의 레이어가 무시되어질 것인지 아닌지를 결정하는 bitmask를 취합니다. layerMast에서 모든 비트들이 세팅된다면 우리는 모든 colliders에 반하여 충돌할 것입니다. 만약 layerMast가 0라면 우리는 광선과 함께인 어떠한 충돌도 결코 찾을 수 없을 것입니다. <file csharp> // bit shift the index of the layer to get a bit mask var layerMask = 1 << 8; // Does the ray intersect any objects which are in the player layer. if (Physics.Raycast (transform.position, Vector3.forward, Mathf.Infinity, layerMask)) print ("The ray hit the player"); </file> 실제 세상에서 우리는 그것의 반대를 원합니다. 그러나 우리는 플레이어 레이어에서 그것들 외에 모든 colliders에 반하여 하나의 광선을 캐스트하기를 원합니다. <file csharp> function Update () { // Bit shift the index of the layer (8) to get a bit mask var layerMask = 1 << 8; // This would cast rays only against colliders in layer 8. // But instead we want to collide against everything except layer 8. The ~ operator does this, it inverts a bitmask. layerMask = ~layerMask; var hit : RaycastHit; // Does the ray intersect any objects excluding the player layer if (Physics.Raycast (transform.position, transform.TransformDirection (Vector3.forward), hit, Mathf.Infinity, layerMask)) { Debug.DrawRay (transform.position, transform.TransformDirection (Vector3.forward) * hit.distance, Color.yellow); print ("Did Hit"); } else { Debug.DrawRay (transform.position, transform.TransformDirection (Vector3.forward) *1000, Color.white); print ("Did not Hit"); } }</file> 우리가 layerMast를 Raycast 함수로 패스하지 않을 때 그것은IgnoreRaycast 레이어를 사용하는 colliders을 무시할 것입니다. 이것이 광선을 캐스팅할 때 colliders을 무시하는 가장 쉬운 방법입니다. {{tag>유니티 unity}} * 출처: [[http://unitykoreawiki.com/index.php?n=KrMain.Layers|유니티코리아위키]] (CC BY-NC-SA 2.0)
2+1?
이 필드는 비어 있도록 유지하세요:
저장
미리 보기
취소
편집 요약
참고: 이 문서를 편집하면 내용은 다음 라이선스에 따라 배포하는 데 동의하는 것으로 간주합니다:
CC Attribution-Noncommercial-Share Alike 4.0 International
연결문서
카메라(Cameras)
카메라(Camera)
GameObject
Light
Tag Manager
Particle Collider
유니티3D ( Unity3D )
인터페이스 배우기
Reference Manual
What is a Tag?
0개 더 보기...
문서 도구
문서 보기
이전 판
연결문서
맨 위로
다크 모드로 보기
☀️
Toggle Menu
유니티3D ( Unity3D )
너두 고쳐두 됩니다.
사이트 도구
최근 바뀜
미디어 관리자
사이트맵
사용자 도구
등록
로긴
최근 수정된 문서
misuse_topical5
노박
unique_items
dinner_bell
deputy_beagle
ratslayer
one_for_my_baby
alerio
power_fist
제거됨
fixer
climb_ev_ry_mountain
companion
[장비 분실]
crashed_vertibird
brotherhood_t-51b_power_armor
marco
i_forgot_to_remember_to_forget
cateye