본문 바로가기

unity4

[Unity] FootIK 간단하게 FootIK 관한 개인 공부겸 테스트 했던 프로젝트 IK가 적용될때 애니메이션이 전환이 많이 어색한부분이있다. Reference https://www.youtube.com/watch?v=h5vdy0n7xt8&ab_channel=SharpAccent https://www.youtube.com/watch?v=_8XQAwtFGdw&ab_channel=CodeLikeMe_Unity https://www.youtube.com/watch?v=rGB1ipH6DrM&ab_channel=b3agz 2023. 10. 8.
옵저버 패턴(ObserverPattern) 옵저버 패턴이란 객체의 상태 변화를 관찰자(옵저버) 목록을 특정 객체(Subject)에 등록하여 옵저버의 상태변화가 있을때 마다 Subject에서 목록의 옵저버에게 통지하도록 하는 1:N 구조의 디자인패턴이다. 주로 이벤트 핸들링 시스템을 구현하는데 사용된다 하며 많이쓰는 패턴인거같아 간단하게 구현해보았다. 리스트를 사용하는방법과 델리게이트를 사용하여 구현하는방법이있으며 나는 후자의 방법으로 구현하였다. public abstract class Observer : MonoBehaviour { public abstract void Notify(); } 옵저버 베이스 코드, 상속과 재정의를 위해 추상클래스로 구성했으며 인터페이스로 구성해도 상관없다. public class KeySubject : MonoBeh.. 2022. 2. 25.
Vector3 Roatation(벡터 회전) 특정 방향벡터를 일정한 각도로 돌려서 사용이 필요할 때가 있다. 시야각을 구할 땐 삼각함수를 이용해 직접 계산해서 구했지만 비교적 간단한 방법이 있고 코드 또한 간결하게 수정할 수 있어 보여서 정리했다. Vector3 dir = Quaternion.AngleAxis(angle, Vector3.up) * transform.forward; 예를 들어 오브젝트 정면 방향벡터를 y축을 기준으로 angle만큼 회전한 벡터를 구할 땐 위와 같이 할 수 있고 Quaternion quaternion = Quaternion.Euler(0f, angle, 0f); Vector3 dir = quaternion * transform.Forward; 위처럼 작성해도 동일하게 변환할 수 있다고 한다. tranfrom.forwar.. 2022. 2. 16.
유니티3D 잔상효과 만들때 사용 SkinnedMeshRenderer.BakeMesh SkinnedMeshRenderer.BakeMesh 기능활용 현재 메쉬 형태를 bake하여 잔상으로 활용 GUI인스턴스 활용을위해 MeshFilter와 MeshRenderer를 사용하는잔상오브젝트를 별개로 생성하고 예시로 아래와같은 방식으로 메쉬정보를 넘겨 잔상효과를 줄수있다. Mesh mesh = new Mesh(); skinnedMeshRenderer.BakeMesh(mesh); GameObject obj = new GameObject("TrailTest"); MeshFilter mf = obj.AddComponent(); MeshRenderer mr = obj.AddComponent(); mf.mesh = mesh; 2021. 12. 22.