유니티 엔진 클라이언트

유니티 엔진 클라이언트/개인공부

텍스쳐 - 쉐이더 코드 정리

쉐이더 코드 정리 시작하기에 앞서 쉐이더 surf 함수 내의 필요없는 부분은 제거 해준다. 텍스쳐 입 출력에 필요 없는 부분일 뿐이니 참고. 1. surf 함수 내의 필요 없는 부분 제거 o.Metallic , o.Smoothness 부분을 제거 o.Metallic 의 경우 기본 default 값이 0 이었기 때문에 큰 변화는 없다. o.Smoothness 의 경우 default 값이 0.5 였기 때문에 표면이 좀 더 거칠어 진 것을 확인할 수 있다. 추가적으로 default로 적혀있는 주석 부분도 제거. 함수 내의 _Color 프로퍼티 부분도 제거 하여 텍스쳐가 색상의 영향을 받지 않도록 한다. surf 함수 전문 2. surf 함수 외부의 필요 없는 부분 제거 여기서 pragma target의 경우 ..

유니티 엔진 클라이언트

내적과 외적 이론 정리

내적과 외적에 대한 이론정리. 3D게임을 만들때 굉장히 자주 사용하는 만큼 이걸 설명할수 있을만큼 자세하게 알고 설명할수 있을만큼이 되어야 한다는 걸 알게 되어 내적과 외적에 대한 스터디를 진행. 이전 포스팅들 처럼 유니티 3D프로젝트 당시 자주 사용하였으나 이론적으로 설명하려들면 머리가 막막해지는 한계가 분명하였다 ㅎㅎ;; 내적이란?(Dot Product 또는 Inner Product) 두 개의 벡터를 내적하는 것은 두 벡터가 얼마나 비슷한 방향을 향하고 있는지를 측정하는 것. 벡터 A와 B의 내적은 A와 B의 길이를 곱한 후 그에 코사인 각도를 곱한 값. 수식으로는 A・B = |A| * |B| * cos(θ)로 표현. 내적의 결과는 스칼라(숫자) 값. 내적이 0이면 두 벡터는 수직(직교)하다고 할수있..

유니티 엔진 클라이언트/개인공부

유니티 라이프 사이클

유니티의 라이프사이클에 대해 정리해보려고 한다. 우선 유니티 라이프 사이클의 정의는 다음과 같다 유니티 라이프사이클은 유니티 엔진에서 실행되는 게임 또는 애플리케이션의 생명 주기를 나타낸다. 생명 주기는 게임 오브젝트와 스크립트 컴포넌트의 초기화, 업데이트, 렌더링 및 종료와 같은 단계로 구성된다. 초기화(Initialization): 게임 또는 애플리케이션 실행 시 최초로 호출되는 단계. 게임 오브젝트 및 리소스의 로딩, 컴포넌트 초기화 등이 수행됩니다. Awake() 메서드가 호출. 다른 게임 오브젝트와의 연결을 설정하고 초기 상태를 설정하는 등의 작업을 수행가능 활성화(Activation): 게임 오브젝트가 활성화되는 단계. 게임 오브젝트가 렌더링되고 업데이트되는 등의 동작이 수행. OnEnable..

유니티 엔진 클라이언트/개인공부

[유니티 프로젝트] ik 역 운동학을 적용한 좀비 서바이버

https://docs.unity3d.com/kr/530/Manual/InverseKinematics.html 역운동학(IK) - Unity 매뉴얼 대부분의 애니메이션은 스켈레톤의 조인트 각도를 미리 정해진 값으로 회전하여 만듭니다. 자식 조인트의 포지션은 부모의 회전에 따라 변하므로 조인트 체인의 끝 점은 체인에 포함된 각 조인 docs.unity3d.com https://docs.unity3d.com/ScriptReference/Animator.SetIKPosition.html Unity - Scripting API: Animator.SetIKPosition An IK goal is a target position and rotation for a specific body part. Unity can..

유니티 엔진 클라이언트/문제해결

[유니티] 동기로 데이터 불러오기 (Scene 전환 및 오브젝트 찾기)

게임 구조를 짜던 중 동기 씬 로딩을 위한 구조를 짜는중에 이런 문제가 발생했다. 시나리오는 아래와 같았다. 1 .App 씬에서 Awake -> Start 시 Scene Change 메서드를 실행. 2. TestScene을 불러온 뒤 해당 씬에 있는 TestMain 오브젝트를 찾기 (FindObjectOfType 메서드 사용) 3. 해당 오브젝트의 컴포넌트를 가져오기 4. 당 컴포넌트의 SayHello메서드 실행 위와 같이 시나리오를 구성했는데 의외로 2번에서 문제가 생겼다 아래 스크린샷을 보자 코드는 아래와 같았다. App Script using UnityEngine; using UnityEngine.SceneManagement; public class App : MonoBehaviour { publi..

유니티 엔진 클라이언트/개인공부

[유니티] [유니티] Euler Angle (오일러 각) & Quaternion (쿼터니언) 정리 .2 - 메서드

1. 오일러각을 사용하지 않는 Quaternion 클래 메서드 1. 생성 Quaternion.LookRotation Quaternion.AngleAxis Quaternion.FromToRotation 2. 조작 Quaternion.Slerp Quaternion.Inverse Quaternion.RotateToWards Transform.Rotate Transform.RotateAround 2. 오일러 각을 처리하는 사용하는 Quaternion 클래스 메서드 - 쿼터니언에서 오일러 각을 검색하는것은 가능하지만 검색, 수정 및 다시 적용하면 문제가 발생할 수 있다기 때문에 각도를 변수로 유지하고 회전에 오일러 각을 적용하는 데에만 사용하는 편이 좋다. Quaternion.Euler 위의 각 메서드들중 가장 ..

유니티 엔진 클라이언트/개인공부

[유니티] Euler Angle (오일러 각) & Quaternion (쿼터니언) 정리 .1

유니티에서 3D 오브젝트의 회전은 일반적으로 Quaternion(쿼터니언) 또는 Euler Angle(오일러 각)으로 표현된다. Unity는 내부적으로 쿼터니언을 사용하지만 쉽게 편집할 수 있도록 Inspector에서는 해당 오일러 각의 값을 표시한다.(중요) https://docs.unity3d.com/kr/530/ScriptReference/Quaternion.html UnityEngine.Quaternion - Unity 스크립팅 API Quaternions are used to represent rotations. docs.unity3d.com Eulwe Angle(오일러각) 이란? 순차적으로 적용되는 X,Y,Z 에 대한 세가지 각도값으로 표현한다. 그러므로 사람에게 익숙한 것이 특징이다. 특정 ..

유니티 엔진 클라이언트/개인공부

[유니티] 3D월드에서의 FPS 시점(1인칭) 움직임 구현

VR 시티에서 타겟의 포지션으로 이동하는걸 구현하던 도중 VR이 아닌 일반적인 컴퓨터에서 마우스로 조작시 어떤식으로 조작을 해야할까를 고민하게 되어 공부도 해볼겸 처음으로 1인칭 시점을 구현해 보았다. 기존 VR 시티와 코드가 많이 겹쳐 수정된 부분만 보면 CharacterController controller; private float mouseX = 0; public void Start() { controller = this.GetComponent(); StartCoroutine(this.Move()); } public IEnumerator Move() { while (true) { MoveBody(); MoveHeadHorizontal(); yield return null; } } private v..

유니티 엔진 클라이언트/개인공부

[유니티] VrCity 오브젝트 위치로 이동 & VR City 마무리

타겟을 바라보고 gaze가 꽉차게 되면 Physics.Raycast 함수를 이용해 RaycastHit 타입을 반환받아 해당 오브젝트의 월드 좌표를 가져와 플레이어의 위치를 변경해주는 방식으로 오브젝트로의 이동을 구현하였다. using System.Collections; using UnityEngine; using UnityEngine.UI; public class RayContorller : MonoBehaviour { public Transform trans; private Ray ray; private RaycastHit hit; public float dist; public Player player; public Image img; public GameObject detailPopup; public..

유니티 엔진 클라이언트/개인공부

[유니티] VRCity 3D virtual 팝업 & 코루틴이용 & RayCast & 비트연산자 & Quaternion.Lerp사용 캐릭터 회전

사실상 처음으로 혼자 써본 (선생님 코드를 좀 많이 참고 하긴 했지만 ) 3D프로젝트 였다. 코루틴을 많이 이용하다보니 코루틴에 굉장히 취약했다는 것도 알게되었고 RayCast 를 이용한 물체 충돌 감지 및 이벤트 트리거 그리고 캐릭터 회전 과 관련하여 많은 경험을 얻을수 있었다. 코드가 좀 길다보니 하나하나 새로 배운걸 정리해보면 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class RectMain : MonoBehaviour { public Player player; public Car Car; public Transform targetTrans; pu..

Bueong_E
'유니티 엔진 클라이언트' 카테고리의 글 목록