일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- m590 수리
- networkobject
- NavMesh
- unity merge
- 유니티
- Github DeskTop Merge
- stateauthority
- Unity
- 유니티 머지
- 유니티 해상도 변경
- M590
- networkbehaviourid
- 유니티 해상도
- 깃허브 데스크탑 합치기
- nav오브젝트사이거리
- 유니티 브랜치 merge
- networkobject.networkid
- navigation
- githubdesktopmerge
- 몬스터
- m585
- 유니티 합치기
- unity 병합
- unity git
- 깃허브 데스크탑 병합
- 유니티 해상도 설정
- 오브젝트 깜빡임
- m585 수리
- nav거리
- Today
- Total
목록제작/영혼들 (10)
집게사장의 꿈
아이템 표시주요 아이템 사용을 위해 플레이어에게 해당 아이템을 식별 할 수 있어야 됩니다.그렇기에 아이템에 눈에 띌 수 있도록 RimShader를 적용합니다.Rim Shader?오브젝트 바깥쪽에서 안쪽으로 색의 농도를 약하게 면서 Alpha값을 0~1값으로 일정 시간마다 깜빡거리도록 만든 것입니다.쉐이더 코드오브젝트에서 카메라를 바라보는 Normal을 기준으로 Dot을 구해서 적용합니다.half face = saturate(dot(i.WorldSpaceViewDirection, i.normal));face 값으로 각 frag에서 카메라를 바라보는 각과 같은 경우 1이 나온다.half rim = 1.0 - ( pow(face, _RimPower));루트 곡선 형태의 증가률VertexOutput vert(V..
씬 불러오기씬을 로드하는 과정에서 중간 씬을 거치지 않고 바로 로드하니 메모리 사용 초과로 모바일에서 강제 종료되는 현상이 발생했습니다.그렇기에, 중간씬을 추가하여 로드하였습니다. SceneLoader씬을 불러올 때, static 함수를 사용하여 로딩 씬을 불러온 후 다음 씬에서 실행할 동작을 지정받습니다.로딩씬에서 Start()를 통해 지정된 다음씬을 로드합니다.//씬에 대한 정보를 가지고 있는다.public class SceneInformation{ public string SceneName = null; //로딩할 씬의 이름 public Action SceneEndAction = null; //씬 로딩 후 실행 할 것 public bool SceneLoadin..
사운드 추격몬스터는 기본적으로 사운드를 추격합니다.사운드의 거리에 따라 추격 여부를 결정할 수 있어야 됩니다.단, 사운드는 지역 사운드와 전역 사운드가 존재하며 몬스터의 우선 순위는 전역 사운드가 우선입니다.기본 구조사운드가 발생한 위치를 판단하기 위해 EventManger에서 필터링 후 몬스터에서 불러와 사용한다.지역 사운드 발생 시기존 사운드를 제거하고 새로운 사운드를 등록한다.public bool EventSound(Transform _target, float _distance){ //글로벌 사운드가 존재할 경우 실행하지 않음. if (GlobalSoundTarget != null) return false; //기존 로컬 사운드 존재 시 실행하지 않음. //if (LocalS..
플레이어 위치 판단게임의 구역은 2가지로 나누어져 있습니다.1. OutSide 바깥쪽 [저택 외부]2. Inside 안쪽 [저택 내부]플레이어의 위치에 따라 몬스터의 위치를 랜덤하게 지정 하는데,그렇기에 플레이어가 어느 "지역"에 있는지 알 수 있어야 됩니다. 컬라이더를 사용한 플레이어 지역 찾기컬라이더의 Boundary를 이용해 플레이어의 위치를 계산합니다. 각 구역에 해당하는 BoxCollider가 위치한 위치값과 크기를 고려하여 Boundary값을 저장해 놓고 활용합니다.public class Location{ public string Name; public Transform[] LocalLocation; //플레이어의 위치값을 확인하기 위한 경계값 public BoxCol..
기본적인 구조모든 아이템은 InteractionObjects 클래스의 파생클래스를 상속 받고InteractionObjects로부터 파생된 클래스는 각 아이템 종류[Interactiontype] 별로 필요한 함수를 정의한다. 아이템의 종류public enum InteractionType{ Throwing = 0, //단순히 던지는 오브젝트 Get, //획득하는 오브젝트 Self, //스스로 상호작용이 가능함. // musicBox Expand, //다른 오브젝트들과 상호작용 가능 //잡을 수 없습니다. Continues, //지속적인 상호작용을 해야 되는 오브젝트 EquipAu..
목적1. 오르골은 영혼을 승천하기 위해 '활성화' 시킨다는 개념으로 활성화된 영혼은 카메라로 촬영 시 승천이 가능하다. 고려 사항1. 영혼은 몬스터만나면 도망간다.2. 영혼이 승천하면 오르골이 파괴되며 사라진다.3. 몬스터가 오르골 근처에 온다면 파괴된다.4. 오르골이 켜지면 주변 영혼이 일정 범위에 존재하면 찾아온다. 플로우 차트 1. 기본적으로 영혼이 활성화를 시키는데, 만약 영혼이 활성화가 불가능한 상태[몬스터가 근처에 있다 / 승천 중이다.]일 경우 False를 반환해 다시 탐색을 한다.2. 탐색된 영혼이 오르골 범위를 벗어날 경우 영혼은 승천 불가능한 상태가 되고 보이지 않게 된다.3. 오르골 사운드와 승천 가능한 영혼 목록은 EventManager에서 관리하면서 필요할 때 불러서 사용한다..
보여지는 이동 -몬스터가 추격할 시 보여지는 플레이를 추격할 경우에는 빠르게 업데이트하고, 그렇지 않은 상태일 경우 느리게 업데이트를 한다.플레이어 주기 : 1.0f;기본 이동 주기 : 3.0f 구현-관절이 꺾이며 오는 기괴한 추격을 표현하고 싶었기 때문에 중간중간 딜레이를 주어 추격하게 만들었다.- 몬스터의 추격 알고리즘내에서 해당 함수를 사용하여 움직임을 보여준다.public void Movement(Vector3 _position, Vector3 _forward){ StartCoroutine(MovementCroutine(_position , _forward));}IEnumerator MovementCroutine(Vector3 _position, Vector3 _forward){ //다..
1에 이어 사지가 극단적으로 꺾이는 모션을 추가하였으나, 뭔가 부족해서 떨림을 주어 역동적으로 만들고자 하였다. 현재 문제1. 몸이 꺾인 채로 추격을 하니 정적인 모습만 보여 공포감이 줄어드는 느낌이 들었다.개선 사항1. 몸과 가까운 부분만 매 프레임 회전값을 조금 주어 역동적인 움직임을 보여준다. 확실히 이렇게 쫓아온다면 더욱 무서울 것 같다는 느낌이 들었다. 구현//각 파트들이 감전된 듯 튕기는 효과public void TrembleBody(float rot){ if (parts.Length == 0 || CantTremble) return; Vector3 rotate = Vector3.zero; rotate.x = Random.Range(0.0f, 1.0f); rotate.y..
문제점- 몬스터의 사지가 꺾이는 듯한 기괴한 움직임을 주고 싶지만, 역동적으로 꺾이는 모습을 구현하기에 고민이 생김*시도해본 내용 1. 각 Rotate좌표에 있는 X Y Z의 값에 가중치를 주어 각 가중치에 맞게 회전시킴.//1. X Y Z에 대한 가중치를 설정한다.Vector3 rotateW = Vector3.zero;rotateW.x = Random.Range(0, 1.0f);rotateW.y = Random.Range(0, 1.0f - rotateW.x);rotateW.z = 1.0f - rotateW.x - rotateW.y;//2. 지정된 값에서 랜덤한 값으로 회전값을 지정한다.float r = Random.Range(0.0f,parts[i].degree);rotateW = rotateW * r..
1. 목적- 플레이어에게 공포감을 주기 위한 동작과 추격을 하며, 사운드에 반응하여 움직인다. 기능1. 몬스터의 추격의 순서는 플레이어, 전역사운드, 로컬사운드, 맵순회 순으로 진행된다.2. 추격은 AI Nav를 사용하여 SetDestination으로 지정한다.3. 플레이어가 DeadRange에 들어왔을 경우에는 Dead이벤트를 발생시킨다. 문제점1. Update 내에 조건문을 통해 매 프레임마다 추격대상을 업데이트함으로서, 추격에 있어 대상이 지속적으로 바뀜해결1. 플레이어를 제외한 조건문에서 지정한 목적지에 도착을 했을 경우에만 위치값을 업데이트 하며, 그렇지 않다면 업데이트 하지 않는다. 또한, 추격 대상에 도착했을 경우에는 딜레이를 주어 그 곳을 살피도록 한다.Player조건1. 플레이어가 숨..