전체 글 604

MeleeWeapon 일때 때리기 모션이 1회만 나오는 거 해결

공격모션 애니매이션을 SingleUseAnimationParameter에 할당한다. 첫 한대만 때리는 문제가 발생할 때는 StartAnimatonParameter에 할당되어 있었다. 로그상 채크해보면 쟤는 WeaponState == WeaponStates.WeaponStart 일때만 발생. 이건 최초 무기 사용때만 적용됨. 참고로 UseAnimationParameter 은 사용하는동안 지속되는 한가지 모션을 뜻한다. 움직이지 않고 첫 프레임에만 멈춰있음.

Unity/TopdownEngine 2024.04.10

VideoPlayer에서 Graphics device is null

Error VideoPlayer 접근 시 아래와 같은 에러 발생. Graphics device is null. ① Firebase에 Login한 이후에 VideoPlayer 접근 시 발생 ② Editor에서는 아무 이상 없으나 Android 디바이스에 빌드해서 실행할 때 발생 ③ 최초 1회는 괜찮으나, 2회째 실행부터 발생 ④ 다른 씬으로 이동해서 VideoPlayer실행하면 괜찮음 .Firebase로그인이 일어난 씬에서 문제발생. Solution Unity자체의 버그 같음. Firebase ,Admob 사용시 이런 류의 버그가 발생하는 것 같음. 이것저것 해보다가.. 아무래도 Thraed문제인것 같아, 문제가 발생하는 부분을 코루틴으로 빼서 동작했더니 버그 없이 정상동작. private IEnumera..

Unity/Unity 이슈 2024.03.24

[StableDiffusion] Controlnet #2

https://www.youtube.com/watch?v=0PJZGpyM_Hs MLSD 이미지에서 직선을 추출. 건축이나 인테리어에 적합 Lineart, SoftEdge, Scibble/Sketch 선 따는 방식차이. Sciribble/Stecth가 가장 대충 선을 땄으므로 원본과 가장 다르다 Segmentation Object별로 색상으로구분 Refrence 원본의 특징을 그대로 참조한다. 위 결과를 보면 머리색, 동공 색 등이 비슷하게 나옴 특정 사람과 유사한 느낌으로 만들때 유용. 손만 고치는 방법 Upload independent control image는 img2img에서 참조 이미지 올리는 건데, 손 고치는 데는 참조 이미지 필요없으므로 체크 해제해둔다.

학문의 길/GenAI 2024.03.22

[StableDiffusion] Controlnet #1

https://youtu.be/J-9d8mF7dI4?si=tiatQ1V2U5sl8vTl ControlNet 설치 Controlnet 사용하려면 전용 모델이 필요 📌https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main pth확장자 .pth 확장자는 주로 PyTorch, 인기 있는 머신러닝 프레임워크에서 사용되는 파일 형식. PyTorch 모델의 가중치(weights), 즉 모델이 학습하는 동안 얻은 파라미터를 저장하기 위한 것. => 학습모델 같은거인듯 Canny enable: controlnet 을 쓸 것이다 Pixel Perpect: 자동으로 최적의 해상도 설정 Canny : 스케치를 딴 다음 그걸 기반으로 생성 나머지 옵션은 그냥 두는게 좋음 De..

학문의 길/GenAI 2024.03.21

Unity에 AdMob 구현

📗참고: https://learnandcreate.tistory.com/2365 패키지 설치 Admob Package 다운로드: https://github.com/googleads/googleads-mobile-unity/releases (v8.6.0 받음) 테스트 할거면 Android에 테스트 아이디 넣음 ca-app-pub-3940256099942544~3347511713 📃Document: https://developers.google.com/admob/unity/rewarded?hl=ko Admob에서 앱 추가 📌Admob: https://apps.admob.com/v2/home 광고단위 추가 구글 샘플프로젝트 📑Init하는 부분 https://github.com/googleads/googlead..

Weapon Life cycle Debug

특이한 케이스에서 발생하는 엔진 자체의 버그인것 같음 다소 복잡하므로 나중을 대비하여 기록. Error Enemy의 Weapon이 재장전 상태에 있을 때 Enemy의 시야에서 벗어났다가 다시 재진입하면 공격을 하지 않는 버그 Description Weapon의 Lifecycle은 아래와 같음 (이 순서대로임) protected virtual void ProcessWeaponState() { if (WeaponState == null) { return; } UpdateAnimator(); switch (WeaponState.CurrentState) { case WeaponStates.WeaponIdle: CaseWeaponIdle(); break; case WeaponStates.WeaponStart: C..

Unity/TopdownEngine 2023.12.18

WeaponAim의 Unrestrict3DAim 옵션 선택 시 다리를 조준하는 원인

코드를 분석결과 Weapon과 같은 GameObject에 있는 WeaponAutoAim에서 목표지점의 방향벡터를 구하는 부분 WeaponAutoAim.cs protected override void SetAim() { _aimDirection = (Target.transform.position - _raycastOrigin).normalized; _weaponAim.SetCurrentAim(_aimDirection, ApplyAutoAimAsLastDirection); } Target.transform.position 에서 타겟의 포지션을 받아오는데, 현제 게임의 Character들은 Root Transform의 y좌표가 0이고, 그로부터 위로 쌓아져 있다. Solution 1 Chracter의 Root..

Unity/TopdownEngine 2023.12.11

Character에 새 애니매이션 추가

📌https://futurecatlabs.store/413 위 블로그를 참조하면 원하는 애니매이션 Cip을 생성 할 수 있다. 단 위 예제에서는 단일 애니매이션 재생만 가능하고, 이를 기존에 제작된 AnimationController에 넣으면 제대로 동작을 하지 않는다. 👹 Error some generic clip animate transforms taht ar already bound by a Humanoid avatar. These transforms can only be changed by Humanoid clips. Avatar는 Animation과 3D 모델의 본 구조를 정의하고, 이 본들이 애니메이션 데이터에 어떻게 연결되는지 결정한다. 그리고 이 avatar와 연동되려면 Animation형..

Unity 2023.11.19

Strategy Pattern을 이용한 Unity Firebase 로그인

플랫폼별 로그인 분기에 사용 Android, UnityEditor, Ios일때 Firebase로그인 방법을 각각 다르게 구현하여야 한다. 연습용으로 해보기 좋은 것 같아 블로그에 기록해둠. 이 패턴으로 안하면 클래스에 If문으로 나누고, 여러 매소드를 만들어서 구현하면 된다. ex) private void MockLogin(); private void AndroidLogin(); private void IosLogin(); 📌Monobehavior 상속 비동기 처리를 위해 코루틴이 사용된다. 코루틴은 Monobehavior에서만 동작하므로 BaseLoginController는 Monobehavior를 상속하고, new가 아니라 addComponent로 씬에 추가하여야 함. 📌UnityAction 사용 비..

Unity 2023.10.15

Inspector에서 변수 타입을 동적으로 설정 (MMEnumCondition)

* 자세한 구현은 MMLoot 클래스 참조 List의 경우 바로 쓰면, 다른 enum이 선택되어도 사라지지 않고 계속 남아있어서 클래스로 한번 싸서 적용. public enum ExpModes { Unique, List, ScriptableObject } [Space(10)] [Header("데이터 타입")] public ExpModes ExpMode = ExpModes.Unique; [MMEnumCondition("ExpMode", (int)ExpModes.Unique)] [SerializeField] private int expPoint; [MMEnumCondition("ExpMode", (int)ExpModes.List)] [SerializeField] private MMCustomList expL..

Unity/TopdownEngine 2023.08.15

스크롤뷰 두개 동시에 움직이기

Horizontail과 Vertical을 각각 만들거나, ScrollView끼리 Hierachy관계인 경우 입력에 따라 단 하나의 스크롤뷰만 움직인다. (직접 해보면 덜걱거려서 부자연스러운 UX가 됨) 기본적으로 한놈만 작동하고 다른건 다 쌩까도록 구현되어있음. 동시에 움직이고 싶을 경우 무시받고 있는 ScrollView에게 직접 Event를 전달해주면 된다. using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public class DragDispatcher : MonoBehaviour, IBeginDragHandler..