[Unity, Editor]두개의 EditorWindw 창을 Split, Dock하기
·
Unity
오늘 신기한 시도를 해봤다, 이 InspectorWindow를이런 식으로 side by side 형태으로 만들고 싶었다. 일단 타입을 가지고 오는 것은 성공했고 생각보다 쉽다. public static System.Type inspectorType = System.Type.GetType("UnityEditor.InspectorWindow,UnityEditor.dll");리플렉션을 사용해서 dll 파일에서 Type을 뜯어올 수 있다. 결론을 말하겠다 실패했다.Docking은 가능하지만 위 창 처럼 분리를 하는 것은 불가능하다(임의로 Position을 옮겨서 따라하는 것은 가능함) 내부적으로 Split하는 부분이 어딨는지 모르겠고 그에 관한 문서도 존재하지 않는다.Docking두개의 Window를 Docki..
[졸업작품, Unity] 아이작 방 생성 알고리즘 구현
·
Unity
https://www.boristhebrave.com/2020/09/12/dungeon-generation-in-binding-of-isaac/ Dungeon Generation in Binding of IsaacThe Binding of Isaac, and its remake, Binding Of Isaac: Rebirth are one of my favourite games of all time. It’s a roguelite twin stick shooter, much like Enter the Gungeon. The dungeons it ge…www.boristhebrave.com먼저 이 문서을 참고하여 제작하였음을 알립니다.  알고리즘 소개아이작의 방 생성 알고리즘을 간단하게 설명하자면 다음과 ..
[Unity]UniTask란?
·
Unity
https://github.com/Cysharp/UniTask GitHub - Cysharp/UniTask: Provides an efficient allocation free async/await integration for Unity.Provides an efficient allocation free async/await integration for Unity. - Cysharp/UniTaskgithub.comUniTask는 Async, Await를 활용한 라이브러리 중 하나이다. 비동기 작업 메서드, Task가 존재함에도 불구하고 유니테스크를 사용하는 이유는 유니테스크가 싱글 스레드를 사용하는 유니티 환경에서의 Task가 가지는 단점을 보완하여 강력한 비동기 작업을 구현할 수 있도록 제작한 라이브러..
[Unity] 2D 환경에서 점프 구현 (y축 이동이 구현되어 있을 때)
·
Unity
오늘은 점프를 구현해봤다. 평범한 2D 사이드 뷰 환경에서 점프를 하는 것은 문제가 없지만 Y축이 구현 되어 있을 때에는 문제가 된다. 왜냐하면 점프도 Y축 이동인데 이동을 Y축으로 할 수 있으니 RigidBody를 사용하는 것의 중력을 활용하는 것은 불가능 하다(방법이 있긴함) 따라서 구현 방식을 좀 다르게 접근 할 필요가 있다. 로직 이런 식으로 실제 이동하는 플레이어는 그대로 바닥에 있는 대신 Visual 부분만(body Collider도 같이) 띄워서 점프 한 것 처럼 구현 하면 된다. 만약 카메라가 문제라면 카메라의 Follow위치를 Visual이나 Visual의 자식으로 해주면 된다. 구현 방법생각보다 간단하다. 원래는 코루틴을 써서 하려고 했는데 중간에 Easing 함수를 넣어야 할 것 같아..
[졸업작품, Unity] ItemSystem 구조 수정
·
Unity
지난번에 만들었던 ItemSystem의 UseItem 부분이 마음에 안들어서 구조를 수정해보았다. 로직 변경 사항 현의 로직은 이러하다.이게 전 로직전은 너무 더럽고 가독성이 없었는데 지금 좀 Interface로 분리해서 깔끔하게 만들었다.Interface를 분리 용도도 있지만 Assemly definition 때문에 교차 참조가 일어나기 때문에 사용한 것도 있다. 그래서 Utils 라는 admf를 만들어서 서로 참조하지 않도록 하였다. 코드 부분 변경 사항using LJS.Item.Effect;using Sirenix.OdinInspector;using System;using System.Collections.Generic;using LJS.Utils;using UnityEngine;namespace ..
[졸업작품, Unity]Assembly definition를 사용하는 방법
·
Unity
유니티를 하면 한번쯤 접해본 Assembly definition을 이번 프로젝트를 하면서 사용하게 되어서 다루어 볼려고 한다.자세한 내용은 공식 문서를 참고하자!https://docs.unity3d.com/kr/2019.4/Manual/ScriptCompilationAssemblyDefinitionFiles.html 어셈블리 정의 - Unity 매뉴얼프로젝트의 스크립트를 어셈블리에 정리하기 위해 어셈블리 정의를 만들 수 있습니다. 폴더에 어셈블리 정의 에셋을 만들면 Unity는 폴더의 모든 스크립트를 이용하여 별도의 관리되는 어셈블리docs.unity3d.com  이거 뭐임?정확히는 Assembly Definition이란 용어는 그 기능에 대한 명칭이고, 사실은 파일을 Assembly Definition..
[졸업작품, Unity]아이템 시스템 수정
·
Unity
저번에 만들었던 아이템 시스템에 개편이 필요해 보여서 수정을 했다. 수정 내용은 다음과 같다. #region itemValue [Header("Effect Value")] [BoxGroup(GroupName = "EffectValue")] public float healCount; [BoxGroup(GroupName = "EffectValue")] public float damageCount; [BoxGroup(GroupName = "EffectValue")] public float defenceDecrease; [BoxGroup(GroupName = "EffectValue")] ..
[졸업작품, Unity] 결과창 제작
·
Unity
오늘은 전투가 끝났을 때 보상을 받고 어떤 보상을 받았는지 확인 하는 결과창을 만들었다. 결과물은 다음과 같다. (아직 폴리싱을 안해서 안 예쁨)  HOW TO? (구현방법)구현 방법을 설명하자면. 먼저 UI틀을 만들어준다. 사실 변경되는 내용들을 결과 창의 아이템들이다.방법은 두가지가 있는데 미리 칸을 지정해두고 그 칸의 Image의 Sprite와 Text를 바꾸는 방식 직접 동적으로 Image와 Text를 생성하는 방법이다.필자는 2번째 방법을 선택하였다.  CODE (코드 쪽 구현 방법)결과물과 같지는 않아도 비슷한 형식의 UI를 만든다.이렇게 생긴 UI다여튼 만들었다면 Horizontal Layout Group과 Vertical LayOut Group를 활용하여라인을 Vertical로 그리고 라인..
[졸업 작품, Unity]Item System 제작
·
Unity
번 졸업 작품에서 아이템을 제작하게 되었다.아이템은 숨겨진 공간이나 상자을 통해서 획득할 수 있고 인벤토리에서 플레이어가 직접 사용하는 방식이 아닌 획득과 동시에 버프나 디버프 적용되는 방식이다. (약간 버프 장판 같은 느낌??) 기본적인 구조를 짜면서 얘기하겠다. using LJS.Item.Effect;using Sirenix.OdinInspector;using System;using System.Collections.Generic;using UnityEngine;namespace LJS.Item{ [Flags] public enum ItemType { None = 0, Healing = 1 effectList; public virt..
[엔진 프로젝트]Enemy Walking Around with BT
·
Unity
적 구조를 짜둔 BT를 설명하기 앞서 에셋은 Behavior Desginer를 사용했음을 알린다.https://assetstore.unity.com/packages/tools/visual-scripting/behavior-designer-behavior-trees-for-everyone-15277?srsltid=AfmBOopXb1yjcJMAv-zIJkzmU6y0K4EhlQYt1UPaeKHLiPW0htoa63Fb Behavior Designer - Behavior Trees for Everyone | 비주얼 스크립팅 | Unity Asset StoreGet the Behavior Designer - Behavior Trees for Everyone package from Opsive and speed up..