묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
Addressables로 등록한 Slice된 Sprite의 하위 Sprite 접근법에 대해 질문드립니다
현재 Effect animation을 만드는 중, animator의 사용 대신 SpriteRenderer의 sprite만 교체하는 방식으로 최적화를 시도하고 있습니다.여기서 문제된 점이 class에 sprite[]를 선언 후 해당 class를 부착한 GameObject에 inspector에서 미리 slice된 sprite의 내용물들을 할당해줄 경우, Sprite(2D and UI)타입은 메인 스레드 외에서 할당되면 안된다는 에러가 나서 런타임 내에 할당하는 방식을 시도중입니다.Addressables를 이용하여 slice된 Sprite를 로딩할 경우, Sprite의 slice된 첫번째 sprite만 Load가능하고 나머지는 호출이 불가능합니다. 이를 해결하기 위해 LoadAssetAsync대신 LoadAssetsAsync를 이용한 LoadAsync 생성 등 여러가지로 시도해보았으나 전부 실패하여 결국 Sprite를 Unity 내에서 slice하는 대신 각자 개별 Sprite로 만들어서 import해야 한다는 방식에 이르렀습니다.다만, 이 방식은 최적화를 위해 굳이 animator를 사용하지 않으려고 한 의미가 없어진다고 판단되어 Addressables에서 Slice된 Sprite의 사용 방법에 대한 의견 여쭤보고 싶습니다.
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
안녕하세요 선생님 공부중에 궁금한게 있어서 질문 드려요
안녕하세요 선생님 현재 올려주신 게임을 하나하나 분석하면서 공부하고 있는 취준생 입니다.다름이 아니라 이건 치트를 쓰지 않으면 잘 찾을수 없는 부분인데 제가 이해한게 맞는지 궁금하여 질문 드립니다.일단 첫번째 버그? 이상한 부분은 서포트 스킬을 배웠을때 수치 변화 입니다. 예를들어 공격력을 5프로 올리는 서포트 스킬을 배웠을때 5프로 수치가 상승해야 하는데 10프로가 상승을 하길래 브레이크 포인트로 차근차근 넘겨보니 UpdatePlayerStat 함수를 호출할대 InitCreaureStat 을 호출하는데 거기서 Atk,MaxHp 등의 값을 곱해주고 다시 updateplayerstat 에서 처리를 또 해주더라구요 그래서 일단은 InitCreautreStat 함수 부분에 Stat 처리를 해주는 부분을 주석처리 해서 중복으로 서포트 스킬의 general 타입들이 적용되는걸 막았는데 이렇게 하는게 맞는건지 궁금합니다. 두번째 이상한 부분은 special 서포트 스킬 부분입니다.이것도 역시 치트를 쓰지않으면 정말 찾기가 힘든 부분인데 현재 skillbook 스크립트 부분에서 addsupportskill 을 통해서 서포트 스킬을 추가하고 있는데 여기서 special 서포트 스킬의 경우에 skillbase 에 updateskilldata 함수에서 해당 공격스킬의 추가 값을 처리해 주는걸로 알고 있습니다 근데 여기서 예를들어 일렉트로닉 필드의 범위를 0.1 증가해주는 스킬을 배웠다고 했을때 처음에 배울때는 0.1이 정상적으로 증가를 하는데 두번째 일렉트로닉 필드 0.1 증가를 배웠을때 SupportSkills 리스트를 순회하면서 값을 적용하는데 이미 0.1이 증가된 specail 스킬을 한번 더 순회를 하여 0.1 + 0.1 해서 0.2가 되어야 하는데 0.1증가되서 0.2가 된 상태에서 한번 더 순회를 해서 0.3이 되는 현상이 있다는걸 알게 되었습니다.그래서 현재 해결책으로는 AddSupportSkill 에서 Special 서포트 스킬을 SkillBase 의 updateskillData 부분에서 처리를 넘겨줬는데 그러지 않고 그냥 AddSupportSkill 함수 내에서 변경된 값을 추가를 하고 UpdateSkillData 함수로 넘기지 않고 처리 하는 방식으로 수정을 해서 이상하게 수치가 나오는 부분을 수정을 하고 기존의 Skillbase 스크립트 부분의 UpdateSKillData 함수 부분에서 처리하는 부분을 주석처리 해줘서 일단 중첩되서 처리가 되는 값을 수정을 해주었는데 혹시 더 나은 방법이 있는지 궁금하여 질문을 남깁니다.일단 이렇게 좋은 자료를 주셔서 너무 감사드리고 앞으로도 계속 꾸준히 코드를 뜯어보며 공부를 열심히 하겠습니다. 날씨가 많이 추운데 감기 조심하시고 공부하다가 궁금한 부분은 이곳에 또 남기도록 하겠습니다.
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
상속 구조에서의 awake흐름 및 init 함수 질문있습니다
강의 중에 사용하신 init 관련 코드에서 하나 궁금한 점이 있습니다.BaseController의 Awake() 안에서 _init = true를 먼저 설정한 다음 init()을 호출하게 되면, init() 안에서는 이미 _init == true 상태라서 실제 초기화 로직이 수행되지 않고 false만 반환하게 되는 것 같습니다.그런데 MonsterController에서는 base.init()이 true일 때 return 하도록 돼 있어서, 결과적으로 자식 클래스의 초기화 로직이 실행되지 않을 수도 있어 보인다는 생각이 들었습니다. 혹시 의도된 흐름이 맞는지, 아니면 _init = true 설정 위치나 분기 조건 쪽에 조정이 필요한 부분이 있는지 궁금합니다.
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
젬 스프라이트가 로딩되지 않습니다.
스프라이트 리소스를 비동기 로딩할 때 EXPGem_01.sprite 키값을 EXPGem_01.sprite[EXPGem_01]형태로 수정하여 Addressables.LoadAssetAsync함수를 호출해도 Texture2D타입의 오브젝트가 로딩되는데 왜 이런 현상이 생길까요? string key = Random.Range(0, 2) == 0 ? "EXPGem_01.sprite" : "EXPGem_02.sprite"; Texture2D texture = Managers.Resource.Load<Texture2D>(key); Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f)); go.GetComponent<SpriteRenderer>().sprite = sprite;강제로 스프라이트를 생성해서 영상처럼 랜덤하게 젬이 드랍되긴 하는데 어디가 문제인지 모르겠어서 질문 드립니다.
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
혹시 스프라이트 드래그 앤 드롭으로 애니메이션 생성할 때
시스템 폴더로 경로 뜨는게 저는 Assets 로 뜨는데 그 스프라이트가 있는 폴더로 경로가 뜨게 하는 방법이 따로 있을까요?
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
init() 2번 실행? 등 스킬 마무리 강의에서 질문 있습니다.
스킬 마무리 강의 수강 후 질문이 있습니다.1. PlayerController에서 init 이 2번 되는 것 같습니다.2. FireBall 은 빈 오브젝트로 해도 되나요?( 코드상 egoswordPrefab에 생성되고 있어요)3. fireprojectile이 Destroy 되지 않아요 ObjectManager - Player 스폰 부분에서 init을 주석 처리해서 했는데 init에서 반복 실행 안 되게 되어 있는 것 같은데 왜 두 번 되나요? 강의에서도 egoSword가 여러 개 생성되어 질문 올려봅니다
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
상업적 출시에 대한 질문입니다.
강의 정말 도움이 많이 되었습니다.스킬 이펙트, 아이콘, 폰트등 제가 사용해도 되는것들이 있을까요??감사합니다.
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
EquipmentData 관련해서 질문드립니다
EquipmentData에서 보면 방어구와 무기가 부여하는 능력치의 종류가 다른데 이 둘을 상속해서 추가 분류하지 않고 그냥 해당 변수를 0으로 처리해서 하셨더라구요 이런 방식으로 다른 부분에서도 처리하신 것 같은데 상속을 받아서 불필요한 변수가 뜨게 하지 않는 것보다 이러한 방식이 더 처리하기 편하기 때문에 이렇게 구현하신걸까요?
-
해결됨[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
Data관리 관련해서 질문드립니다.
혹시 Data를 json으로 직접 입력해줘서 관리하시는 이유가 따로있을까요?ScriptableObject를 활용해서 관리하는 것은 별로 좋은 방법이 아닐까요??
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
MonsterControllelr 에서 State Dead 사용
MonsterController 에서 질문 있습니다.protected virtual void UpdateDead() { OnDead(); } public override void OnDamaged(BaseController attacker, int damage) { if (Hp <= 0) return; Hp -= damage; if (Hp <= 0) { Hp = 0; // 왜 ? 스테이트로 했을때는 버그가 있는거지? _creatureState = Define.CreatureState.Dead; // OnDead(); } }위와 같이 MonsterController 에서 OnDead() 대신에 State 로 작성을 하면 데미지를 입지 않은 몬스터도 죽어버립니다. 왜 그렇게 되는지 잘 모르겠는데 설명 부탁 드립니다.
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
안드로이드 빌드에서는 LoadAllAsync , LoadAsync 가 동작 하지 않고 있습니다.
안녕하세요.강의를 마지막까지 공부하고, 에디터에서 실행할시에 잘 동작 함을 확인 했습니다.그런데, 안드로이드 빌드를 해보면 빌드 실패도 하지 않습니다.생성된 APK 를 핸드폰에도 넣어보고, 녹스플레이어, 블루 스택에서 넣어서 실행해보면 파란 에디터에서 보이는 최초 파란 화면만 뜨고, 게임씬이 동작 하지 않고 있습니다.혹시나 해서, UI_TextMeshPro 에서Text 를 넣고, 테스트하던중 에디터 실행할때는 bbb 가 출력되고, 게임도 잘 돌아가는데, 안드로이드 플레이어나, 모바일 기기에서는 aaa 까지만 출력되고 다음줄이 실행 되지 않습니다. 비동기를 디버그 해보려고 노력했는데, 에디터에서는 오류가 나지 않고,F11 눌러서 한단계씩 들어가다보면 "모듈에 프레임 없음" 페이지가 나오고, 어드레서블에 있는 목록이 Resource 에 채워지는 것을 확인 하기가 어렵습니다. 비동기 이후에는 Resource 에 22개 딕셔너리가 채워진것을 확인 가능하긴 하더군요. 해결이 몇일째 안되고 있는데, 도움 부탁드립니다.public TextMeshProUGUI textComponent; // Start is called before the first frame update void Start() { textComponent.text = "aaa"; // "F:\p4v\TangTang\Assets\Scripts\Scenes\GameScene.cs" Managers.Resource.LoadAllAsync<Object>("PreLoad", (key, count, totalCount) => { Debug.Log($"로딩바 추가 {key}, {count}/{totalCount}"); if (count == totalCount) { textComponent.text = "bbb"; // Debug.Log("test"); // StartLoaded(); } }); }
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
Instantiate 관련 질문 드립니다
GameObject Instantiate(string key, Transform parent = null, bool pooling = false) 함수에서 GameObject prefab = Load<GameObject>($"{key}"); 이 부분에 Load<GameObject>(key)가 계속 null이 반환 되는데 왜 그런걸까요 나머진 전부 똑같이 했고 어드레서블에 넣은 프리팹만 제가 아무 오브젝트나 이름만 바꿔서 프리팹으로 만든 뒤에 넣은거 말곤 차이가 없는데 이게 차이가 있는걸까요
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
포트폴리오 문서작성에 있어서 질문드립니다.
안녕하세요 신입 클라이언트 프로그래머 취업을 준비하고 있습니다.다름이아니라.. 제가 강사님의 강의를 열심히 듣고 3D로 포트폴리오를 프로토타입 수준으로 제작을 완료했습니다.플레이어가 메인씬으로 이동해 상점에서 물품을 구매하고 인벤토리를 통해 장비를 장착하고 NPC를 통해서 스테이지로 들어가서 잡몹을 처리후 보스를 처치하고 스테이지를 클리어 하는 부분까지 구현을 했는데요...이번에 포트폴리오를 제출하려고 하는데 포트폴리오에 얼마나 디테일한 부분까지 작성을 해야할까요?? 그리고 영상을 꼭 필요할까요??? 커뮤니티를 찾아봤는데 말이 다 달라서 질문드립니다...
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
UI 연동방식에 대해서 질문드립니다.
하나의 예시를 들자면 HP를 UI에 표시할때 저는 Playercontroller에서 프로퍼티로 set를 해주었는데 강사님께서 올려주신 프로젝트를 보니 action을 통해서 해당 UI 스크립트에서 처리하신 것 같더라구요..제가 한 방식으로 구현을 해도 되는지 궁금해서 질문을 드립니다...강사님께서 하신 방식은 어디서 구독 신청을 해줬는지 찾기가 너무 어렵더라구요 ㅠㅠ
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
인디게임출시경험이 중요할까요?
국비 교육과정을 마치고 OJT기간이 끝났는데 OJT를 진행한 회사에서 회사와 협업해서 팀을 이루어 인디게임을 출시해보겠냐는 제안을 받았습니다.신입이고 리소스는 회사에서 지원받는데 해보는게 좋을까요? 아님 개인 포트폴리오로 취업을 하는게 좋을까요?
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
Coroutine과 uniTask 질문드립니다.
Coroutine을 적극 권장하신다고 하셨는데 new연산자로 코루틴은 인스턴스를 만들고 그로인해 가비지가 생성된다고 알고 있습니다. 이런 이유로 대안으로 uniTask가 나왔다고 들었습니다. 아직 uniTask보다 Coroutine이 보편화되어있고 성능적 이점이 크게 차이가 나지 않는 지 궁굼합니다.
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
ResourceManager 메서드 역할
ResourceManager 의 메서드 중 LoadAllAsync<T>() 는 Addressables 에 있는 특정 label이 붙은 애들을 가져와서 _resource 에 넣어서 메모리에 올리는 역할을 하는 것이고, Load, instantiate 함수는 _resource 에 있는 애들을 불러와서 로드 하거나 게임에 생성하는 역할을 하는 게 맞는지 확인 부탁 드립니다.
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
스프라이트 자료
아무리봐도 스프라이트 자료가 안보이는데 어디서 다운받을 수 있을까요? 같은 질문을 찾아봣는데 구름모양이 없어서요
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
xml 에
xml 관련 코드 추가이후에 실행이 되지않는 현상이 발생합니다.구글링해본결과설정창에서 adaptive perfomance 탭의 설정을 수정해보았고패키지 매니저에서의 패키지를 삭제하였지만문제 해결이 안되어 질문 남깁니다.
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
UI 리소스 사용문의
몬스터랑 나머지 리소스 전부 UI랑 사용해도 문제없나요 ??