반응형

혼자의 세상 *^^* 448

[Unity - 유니티] 스크린 터치(Screen Touch) - ScreenPointToRay 함수

모바일 스크린 터치 모바일 스크린에서 터치한 좌표는 2차원 좌표임.2차원 좌표를 3차원 좌표로 변화시켜 특정 오브젝트를 검출하는 방법으로ScreenPointToRay 함수가 있음. 모바일 스크린테 터치한 좌표는 Screen Point 좌표로 2차원 좌표임.이 좌표를 3차원에 투영하고 메인 카메라에서 투영된 3차원 좌표로Ray를 발사함. Ray를 통해 Raycast 함수를 사용하여 광선에 맞은 객체를 알아낼 수 있음. DrawRay(Vector3 start, Vector3 dir, Color color) 함수를 통해Ray를 확인할 수 있음. ScreenPointToRay ScreenPointToRay 함수는 Camera 클래스의 함수.스크린 좌표를 인수로 넘겨주면 카메라에서 시작하여스크린 좌표에 해당하는 ..

[Unity - 유니티] 래그돌(Ragdoll) - Rigidbody - isKinematic(래그돌 활성, 비활성화)

래그돌의 활성, 비활성화를 결정하는 것이라고 볼 수 있는Rigidbody 컴포넌트의 isKinematic 옵션. isKinematic 옵션이 true일 경우- Rigidbody 컴포넌트가 추가된 게임오브젝트가 물리시뮬레이션을 통해 이동하지 않고Transform 컴포넌트의 속성에 의해 이동함. - 애니메이션을 실행하고 있을 때는 각 관절이 애니메이션의 의해움직이고 있기 때문에 물리엔진의 연산작업이 의미가 없음. - isKinematic 옵션이 true일 경우 물리엔진의 영향을 받지 않음. - 래그돌을 활성화 하기 위해서는 반드시애니메이션은 반드시 정지시켜야함.=================================================================ex)// 애니메이션 정지anim..

[Unity - 유니티] 래그돌(Ragdoll) - Create Ragdoll, Character Joint

래그돌(Ragdoll)- 래그돌은 말그대로 "헝겁인형"을 의미. - FPS 또는 TPS 게임에서 총격 중 사망했을 때 "헝겁인형처럼 죽는다"라고 해서 붙여진 이름. - 캐릭터가 사망했을 때 미리 정의된 애니메이션을 실행하는 것이 아닌자연스럽게 주저 앉거나 쓰러지는 효과를 연출할때 쓰는 방법. - 래그돌은 3D 모델을 Scene뷰에 가져와 메뉴의 "GameObject -> Create Others -> Ragdoll"을 선택해 "Create Ragdoll"창을 통해서 만들 수 있음. - "Create Ragdoll" 창에서 본(Bone)을 하나씩 연결해서 만들어야함. - "Create Ragdoll" 창에서 연결한 본 맵핑(Bone Mapping) 정보를 토대로 각 관절 단위로 Capsule Collide..

[Unity - 유니티] Network 접속 종료처리

어떤 플레이어가 접속되거나 접속이 끊어지면 호출(콜백 함수)MonoBehavior의 Override 콜백함수. - Network.OnPlayerConnected(NetworkPlayer) - 플레이어 접속시 발생- Netrowk.OnplayerDisconnected(NetworkPlayer) - 플레이어 접속 종료시 발생. ===================================================================================ex) public class TestNet : MonoBehavior{ // 접속이 종료된 플레이어의 네트워크 객체를 모두 소멸처리void OnPlayerDisconnected(NetworkPlayer netPlayer){// 네트워크 ..

[Unity - 유니티] OnSerializeNetworkView 콜백함수

void OnSerializeNetworkView(BitStream stream, NetworkMessageInfo info)==============================================================================BitStream stream=> 데이터를 직렬화(Serialize)해 스트림에 저장. 속성- isWriting=> 데이터를 스트림에 쓰고 있는 중인지 체크(송신 상태) - isReading=> 데이터를 스트림에서 읽고 있는 중인지 체크(수신 상태) 메서드- Serialize=> 직렬화시키는 메서드. 송수신하는 메서드.=> 송수신 가능 데이터 타입public void Serialize(ref bool value);public void Seria..

[Unity - 유니티] NetworkView - 네트워크 플레이시 끊어짐 현상 처리

네트워크 게임시 다른 플레이어의 움직임이 끊어짐 현상이 있음. NetworkView의 Observed를 스크립트에 연결해 Lerp 함수를 통해 처리할 수 있음. ============================================================================================ private Transfomr tr;private NetworkView nv; private Vector3 curPos;private Quaternion curRot; void Awake(){tr = Getcomponent();nv = GetComponent();nv.observed = this; // 스크립트를 observed 속성에 연결} void Update(){if(nv.i..

[Unity - 유니티] Network 예제

Network.Instantiate(프리팹, 위치, 각도, 그룹)- 현재 게임에 접속한 모든 유저에게 프리팹 생성.- 내부적으로 Buffered RPC를 호출해 나중에 접속한 유저도 이미 생성된 프리팹을 볼 수 있음.- 그룹 지정시 동일 그룹의 유저들에게만 생성됨. =========================================================NetworkView- isMine => NetworkView 가 자신의 것인지 확인. ex)// NetworkView가 자신의 것인지 확인.if(networkView.isMine){ } ========================================================= ex)void OnGUI(){// 현재 유저의 네트워..

반응형