본문 바로가기
반응형

개발900

코드) 원 운동 원 운동 public Vector3 GetAnglePosition(float _angle, float _radius) { Vector3 returnValue = Vector3.zero; returnValue.x = Mathf.Sin(Mathf.Deg2Rad * _angle) * _radius; returnValue.z = Mathf.Cos(Mathf.Deg2Rad * _angle) * _radius; return returnValue; } ★★☆☆☆ 2020. 3. 3.
코드) Debug Circle public void UpdateDebugCircle(float _diameter, Color _color) { float radius = (_diameter / 2f); Vector3 prevPos = this.GetPosition() + Utill.Instance.GetAnglePosition(0, radius); Vector3 endPos = Vector3.zero; int count = 360 + 1; for (int i = 0; i < count; i++) { endPos = this.GetPosition() + Utill.Instance.GetAnglePosition(i, radius); Debug.DrawLine(prevPos, endPos, _color); prevPos = endPos; .. 2020. 2. 28.
문제해결)Unity) Error - AnimationEvent has no function name specified! AnimationEvent has no function name specified! AnimationEvent has no function name specified!라는 에러가 콘솔에 찍히는 경우가 종종 발생한다. 이 에러가 나는경우에는 해당 애니메이션 클립의 이벤트가 정상적이지 않는 경우 (이름이 없거나, 제외된) 경우에 발생한다. 해결방법은 다음과 같다. 해당 애니메이션의 클립으로 선택해서 이벤트를 삭제해주면 된다. Unity Animation Event : [링크] 애니메이션 이벤트 사용 - Unity 매뉴얼 애니메이션 이벤트를 사용하여 애니메이션 클립을 최대한 활용할 수 있으며, 타임라인의 특정 시간에 오브젝트의 스크립트에 포함된 함수를 호출할 수 있습니다. docs.unity3d.com ★☆☆☆☆ 2020. 2. 28.
코드) 리스트 랜덤 리스트 랜덤 개발을 하다보면 중복되지 않는 값들을 랜덤으로 셔플해야하는 상황에서 사용하는 코드이다. for(int i =(0 ; i 0; i--){ int rnd = Random.Range(0, i); int temp = list[i]; list[i] = list[rnd]; list[rnd] = temp; } ★☆☆☆☆ 2020. 2. 28.
개인생각) 자택근무를 하게되면서.. 코로나-19 바이러스로 인해서 어떻게 하다 보니.. 첫 자택 근무를 하게 되었다. 회사에서는 보안과 업무보다 사람을 먼저 생각해줘서 한편으로는 너무 고맙다. 자택 근무를 한번도 생각해본적이 없는 월급쟁이인 나로써는 묘한기분을 느꼈다. 어떻게 보면 업계 특성상 자택근무를 할 수도 있는 환경인 것과 컴퓨터와 전기만 있으면 개발이 가능한 업무이기 때문인지도 모르겠다. 자택 근무를 하게 되더라도 업무의 일정은 변동이 없으니 꼼짝없이 일을 해야 하는 건 같으나 출근시간이 없어졌고, 혼자서 일하는 기분을 느낀다는 정도일까나..? 한편으로는 조금 더 삘받으면 업무를 미리 진행할 수 있다는 생각도 든다. 퇴근시간이 있는 상황에서는 집중을하다가도 퇴근을 하거나 좀 부담스럽기도한데. 자택근무를 하게되면 좀더 능동적으로 작.. 2020. 2. 26.
Unity) 3D Audio Sound 3D Audio Sound Uniy 3D에서는 3D 공간을 기반으로 사운드가 재생이 가능하다. Audio Listener의 위치를 기반으로 사운드의 distance를 이용해서 내부에서 처리하는 듯하다. 오디오의 설정은 다음과 같다. 3D Sound Setting 의 거리나 볼륨 등 수치를 설정하면 된다. 도플러 효과는 소리를 듣는 리스너가 움직이는 속도 등에 따라 소리가 다르게 들리는 정도이다. 설정은 다음과 같다. 3D Sound Settings Spatial Blend 매개 변수에 비례하여 적용되는 설정. Doppler Level 이 오디오 소스에 적용될 도플러 효과의 양을 결정합니다 (0으로 설정 한 경우 효과가 적용되지 않음). Spread 스피커 공간에서 확산 각도를 3D 스테레오 또는 멀티 채.. 2020. 2. 21.
Unity) 스크립트에서 자동으로 컴포넌트 추가하기 스크립트에서 자동으로 컴포넌트 추가하기 using System.Collections; using System.Collections.Generic; using UnityEngine; [RequireComponent(typeof(BoxCollider))] public class Test : MonoBehaviour { private BoxCollider m_Collider = null; void Start() { this.m_Collider = this.GetComponent(); } void Update() { } } RequireComponent 속성은 요구되는 의존 컴포넌트를 자동으로 추가해줍니다. 특정 스크립트에서 항상 필요한 컴포넌트가 있는 경우에 의존 컴포넌트로 처리를 하면 따로 일일이 신경 쓰지.. 2020. 2. 18.
게임개발)컷신(Cut Screen) 컷신(Cut Screen) 비디오 게임에서 특정 순간 연출을 말한다. 컷신, 이벤트신, 시네마틱, 인게임 무비 등으로도 불리기도 하고 각기 연출을 다르게 표현하기도 한다. 모바일 게임에서는 대체적으로 궁극기나 무게가 있는 장면에서 화면에서 주로 사용한다. 컷신을 잘 사용하면 스토리나 그 상황에서 몰입감을 주게되지만 적절하게 사용하지 않으면 이질적으로 느끼게된다. ★☆☆☆☆ 2020. 2. 13.
Unity) 플랫폼 의존 컴파일 플랫폼 의존 컴파일 Unity는 “플랫폼 의존 컴파일”이라는 기능이 있는데 Unity의 특성상 멀티 플랫폼을 지원하다 보니 생긴 기능으로 스크립트에 해당 플랫폼에 대한 정의를 하게되면 해당 플랫폼일 때 분기를 처리가 가능하다 사용법은 다음과 같다.\ #if UNITY_EDITOR //유니티 에디터에서 실행될 스크립트 코드 #endif 유니티로 개발을 하는 이유는 원소스 멀티 플랫폼 빌드를 지원하기 때문이라고 생각한다. 그 외 여러 가지 에디터적인 엔진 이점도 있지만 다중 플랫폼을 개발해야 하는 개발 입장에서는 원소스 멀티 빌드는 굉장히 이점이라고 생각한다. 유니티에서 지원하는 플랫폼 매크로는 다음과 같다. 플랫폼 매크로 정의 UNITY_EDITOR Unity 스크립트에서 지원하는 플랫폼 매크로 정의 : .. 2020. 2. 12.
개인생각) 개임 애니메이터의 협업방식 개임 애니메이터의 협업방식웹서핑을 하다가 게임 애니메이터의 협업방식에 대해서 글을 읽었다.애니메이터는 원화와 모델러랑 이펙터, 기획, 플머, 등등과의 협업을 해야한다는 말인데 게임업계의 대부분은 타부서와의 협업이 생각보다 많이 중요하다.더보기원화랑.@  이 원화대로가면 애니메이션 괜찮나? 애니메이션 문제없나? 물론 원화 꼴리는 대로 그리는곳도 있음. 애니가 알아서 잘해주겠지 마인드모델러랑.@   스킨이슈도 있고,  데이터 네이밍, 파츠분할,  텍스쳐문제 등등 스킨이슈의 경우 한번도 스킨 해본적 없는 모델러가 작업해서 주면 엣지들 개판일때 많음. 거기서 모델러 내공이 싹 보임이펙터랑.@   후반파트이기 때문에 모션의 동선이나  타이밍문제 등등  기타이슈 은근히 많음기획이랑.@ 제작한 모션 프레임가지고 이게.. 2020. 2. 4.
Tip) VSCode - Getter and Setter 생성 VSCode - Getter and Setter 생성 VSCode에서는 기본적으로 Getter 와 Setter 를 생성을 해주는 기능이 없다. 어쩔수없이 마켓에서 찾아봤는데 Getter and Setter Generator가 있어서 소개하고자 한다. 마켓에서 설치하면 사용방법은 다음과 같다. 짠!. 이렇게 쉽게 Getter 와 Setter가 생성된다. 접근제한에 대한 고려로 인해서 필수로 작업하는 기능이기 때문에 한번 설치해서 사용하면 편리하다. ★★★☆☆ 2020. 1. 31.
잡학지식) 인스턴스 던전(Instance Dungeon) 인스턴스 던전(Instance Dungeon) 인스턴스 던전은 필드의 던전과 다르게 특정 제한된 인원만 따로 지형을 생성해서 플레이하는 던전을 말한다. 한국에서는 인스턴스 던전을 줄여서 '인던'이라고 표현을 많이한다. RPG에서 스토리 모드나, 파티를 맺어서 하는 진행하는 시스템에서 많이 사용하는 방식이다. 인스턴스의 던전이기 때문에 게임의 설계가 디테일하게 되어야한다. 한정된 인원이 제한된 지형에서 플레이를 하기 때문이다. 유명한 게임 월드오브 워크래프트에서 차용한 시스템으로 많이 알려져있다. 시초는 '에버퀘스트'에서 처음으로 인스턴스 던전의 개념이 사용되었다고 한다. ★★☆☆☆ 2020. 1. 29.
알고리즘) 영향도 알고리즘(Influence Map Algorithm) 영향도 알고리즘(Influence Map Algorithm) 영향도 알고리즘은 어떤 선택을 하는 과정에서 많은 선택지 중에서 가장 좋은 선택을 할 수 있는 알고리즘이다. 여러 가지 다중 조건의 결과를 격자의 그리드인 영역에 가중치를 계속 추가하고 난 이후에 가중치를 기준으로 원하는 선택을 한다. 원리는 map에 가중치에 대한 값을 계속 누적하는 것으로 가중치에 대한 계산을 한다. 격자의 맵이 있는 상황에서 다중 조건에 의한 선택을 할 때 사용한다. Unity 에서 간단하게 원형으로 영향도에 대한걸 처리해보자. 먼저 영향도에 대한 체크를할 기준이 되는 오브젝트를 생성하고 기준이 되는 오브젝트의 주위 반경에 영향도 가중치를 추가한다. 오브젝트와 근접한 위치의 큐브는 좀더 영향도 있는 것을 나타내기 위해서 R.. 2020. 1. 22.
코드 ) 부채꼴 충돌 부채꼴 충돌 간단히 보채골 충돌에 대한 판단을 하는 코드이다. 벡터의 지름을 계산해서 판단한다. public class CirSector : MonoBehaviour { public Transform m_Target; public float m_fAngle = 45f; public float m_fDistance = 10f; public bool m_bCollision = false; Vector3 direction; float dotValue = 0f; void Update () { dotValue = Mathf.Cos(Mathf.Deg2Rad * (this.m_fAngle / 2)); direction = this.m_Target.position - transform.position; if (dire.. 2020. 1. 20.
개인생각) 좋은 피드백 과 나쁜 피드백 구분하기 좋은 피드백 과 나쁜 피드백 구분하기 피드백(Feed Back) 피드백은 어떤 작업이나 결과에 대한 정보나 의견을 주는 행위로 더 좋은 방향을 선택하는 과정에서는 필수적인 부분이다. 그러나 피드백을 받고 그 피드백을 수용하는 과정에서 좋은 피드백과 나쁜 피드백이 생기게되는데 그 상황에서 적당히 걸러 들어야하는 상황에 대한 이야기를 하고자 한다. 좋은 피드백과 나쁜 피드백을 구분하는 것이 가장 중요한데. 나쁜 피드백은 다음과 같다. 개인적인 취향이 포함된다. 작업에 대한 피드백이 아니고 작업자에 대한 피드백을 준다. 문제해결이 아닌 해결책에 집중한다. 문제의 논쟁을 모호하고 흐리게 만드는 피드백을 준다. 개인적인 취향이 포함되면 개인의 의견이지 피드백이라고 보기는 어렵다. 피드백은 어떠한 목적에 부합되는지.. 2020. 1. 16.
반응형