- Today
- Total
목록Unity (90)
프로그래밍 농장
유니티 내에서 스크린샷을 찍는 기능을 구현하던중 두가지 경우가 생겨 정리차 글을 쓴다. 기본적으로 유니티 내의 Camera 시점 ( UI 제외 . . 등 ) 을 PC등 외부경로로 저장하려할때에는 RenderTexture을 사용하여 이미지를 그릴 판으로 생성하고, 해당 비율에 맞는 화면을 Texture2D 를 통하여 ReadPixels로 그려주고 이를 byte로 변환하여 뽑아주는 형식이다. 이때 1920 x 1080 크기의 이미지를 스크린샷 찍어보고, 이를 절반크기인 960 x 540 으로도 스크린샷 찍어본다고 하였을때는 아래와 같다. public void OnClickScreenShot() { //만약 스크린샷 찍을때 Canvas 상의 UI ( 팝업창 등..) 은 안넣고싶으면, 아래와 같이 하면된다. /..
기존 Camera를 UI / Main 두개로 두었을시, 카메라 컴포넌트의 depth only 를 통하여 레이어를 맞추어 줄수있었지만, 만약 URP를 임포트할시 카메라의 컴포넌트가 변경되어 기존 설정해놓은 옵션들이 날라가서 꼬이는 현상이 발생한다. 이때에는 가장 밑바닥에 깔 카메라 (ex. Main) 을 Base로 두고 Stack에 UI Camera를 Overlay로 추가해주는 방식으로 쌓아줄수있다. 기존 Depth 방식의 구현또는 Rendering - Priority에서의 선언방식은 아래깔린 카메라가 그려주는 랜더링들을 전부 밀고 가장 위의 화면을 띄워주는 방식이다.
Post Processing : 말그대로 뒤에(후에) 전체내용을 처리한다는 의미. 이전까지의 단일 이펙트 등. . 은 오브젝트 1개가 있을떄 하나하나가 작동하지만, 해당사항에서는 카메라 자체에다가 필터를 씌우는것처럼 오브젝트 전체에 영향을 주는 방식이기때문에 오브젝트 1개마다 주는것보다 카메라 하나에 효과를 주는것이 더 효과적이기때문에 이와같이 동작되는 방식이다. 1. 카메라에 post-process Layer 를 붙혀줌 2. - Global : world전체에 영향을 미침 - local : 일정범위내에 영향을 미침 --> 이 외에 카메라에 안붙히는 경우도 있음. (TPS : 3인칭 슈팅게임같은경우는 -> 캐릭터가 기준이되어 트리거가 들어와야함 )
Fixed Update()는 정해진 deltatime별로 움직인다. -> ( 0.02) Animator -> stateMachine -> FSM (유한상태 . .) -> 무슨말이냐 ? Animation은 시간에 관계받지않고 흐른다. ( 애니메이션은 별도의 시간체계를 가지고있기 떄문 ) A. Sript가 흐르는 시간 : 1. Physic를 다루는 시간 / 2. Render/Logic을 다루는 시간 => 총 두개로 구분되어있다. B. Animator가 흐르는 시간 IK? : (Inverse Kinematic) : -> 동작 : transform의 영향을 받는다 -> 그렇기에 물리가 먼저 일어나야한다. 만약 물리가 안일어날경우? -> / 물리는 원래 RigidBody가 붙은것에서 동작하는것이다. FK? : (..
유니티에서 물리엔진 -> Physics 는 기존에는 외부 물리엔진인데 유니티가 자체적으로 삽입해놓은것이다. habok 엔진 : 고퀄리티 엔진 . . --> 여하튼 유니티는 Physics 물리엔진을 제공한다. -> 3D : PhysicsX 물리엔진 사용 / 2D: Box2D 물리엔진 사용 (상식 ) 강체 ? ----- 3D에서는 Rigid body -> kinematice : 물리법칙을 받지 않는 상태 / dynamic : 물리법칙을 받는 상태 2D에서는 Static : 3D의 kinematic과 동치 / dynamic --> Kinematic은 직접적인힘으로 움직이지 않고, 간접적인힘으로 움직임 ( 자기힘으로는 못움직임 ) \ ( 직접적이라는건 : 물리의 힘을 받는다는 뜻이고 / 간접적이라는건 : 스크립..
유니티에서 오브젝트를 동작할때, 앞뒤좌우의 입력을 받으면 Animator에서 대응시킨 동작방식에 따라 동작하게 된다. 이때, 단순히 Input에 따른 동작을 수행하는것이 아니라, 동작간의 Translation Duration 의 조작, 그리고 Blend Tree를 활용한 다양한 애니메이션의 블랜딩을 통한 자연스러운 오브젝트 동작을 구현할수있다. 단순히 각 Input에 따른 Animator 동작을 수행하도록 구현하는것이 아닌, 예를 들어 앞뒤좌우의 이동동작에 대한 입력을 동시에 받아서 동작하도록 구현하고자 할때, 아래와 같이 Blend Tree를 하나 만들고 아래와 같이 각 Input에 대한 동작을 블랜딩해주면된다. -> 위와 같이 Blend Tree는 여러개의 Animation을 부드럽게 섞으면서 현재 ..