public void OnClickClaimBtn() { if(!m_AchievementItemData.IsAchieved || m_AchievementItemData.IsRewardClaimed) { return; } var userAchievementData = UserDataManager.Instance.GetUserData<UserAchievementData>(); if(userAchievementData == null) { Logger.LogError("UserAchievementData does not exist."); return; } var achievementData = DataTableManager.Instance.GetAchievementData(m_AchievementItemData.AchievementType); if(achievementData == null) { Logger.LogError("AchievementData does not exist."); return; } var userAchievedData = userAchievementData.GetUserAchievementProgressData(m_AchievementItemData.AchievementType); if(userAchievedData != null) { var userGoodsData = UserDataManager.Instance.GetUserData<UserGoodsData>(); if(userGoodsData != null) { userAchievedData.IsRewardClaimed = true; userAchievementData.SaveData(); m_AchievementItemData.IsRewardClaimed = true; switch (achievementData.AchievementRewardType) { case GlobalDefine.RewardType.Gold: userGoodsData.Gold += achievementData.AchievementRewardAmount; var goldUpdateMsg = new GoldUpdateMsg(); goldUpdateMsg.isAdd = true; Messenger.Default.Publish(goldUpdateMsg); userAchievementData.ProgressAchievement(AchievementType.CollectGold, achievementData.AchievementRewardAmount); break; case GlobalDefine.RewardType.Gem: userGoodsData.Gem += achievementData.AchievementRewardAmount; var gemUpdateMsg = new GemUpdateMsg(); gemUpdateMsg.isAdd = true; Messenger.Default.Publish(gemUpdateMsg); break; default: break; } userGoodsData.SaveData(); } } } 이 부분에서 8:17초 부분 보시면 보상 받고 바로 UI Sort가 호출되는게 OnAchievementProgressed가 호출 돼서 그런거 같은데 저 OnClickClaimBtn 함수 내에선 찾아봐도 OnAchievementProgressed가 호출 될 수 있는 부분이 안보여서 질문드립니다. 제 동작 역시 보상을 받고 Sort는 일어나지 않습니다. 저 userGoodsData.SaveData(); 밑에 var achievementProgressMsg = new AchievementProgressMsg(); Messenger.Default.Publish(achievementProgressMsg); 를 호출해야하나요..? 다시 확인해보니 골드업적이 깨지기 전이면 골드 업적 갱신부분에서 Sort가 호출되서 그러는거 같은데 이미 골드 업적을 깬 상태면 Sort가 발생하지 않습니다.
Hello, games are known from deep performance optimizations that going to thinking about getting data alligned in cache lines. Does Job Scheduler isnt killing it? Isnt this days more like One room = one thread and everything is flaten to array of structs / structs of arrays without lambdas, linq and events? Isnt context switching adding pauses even if there is no allocs because of locks?
답글이 등록되지 않아 새로 올립니다. 말씀해주신대로 내부 테스트, 비공개 테스트, 공개 테스트 등 활성되어있는 부분을 모두 비활성 상태로 변경해봤으나 사전등록시작 버튼은 여전히 비활성화 되어있습니다. 사전 체험판도 혹시 몰라서 모두 일시중지 트랙으로 옮겨 놔봤습니다. 사전 등록 국가 선택 부분에서 이미 서비스되고 있는 국가는 선택할 수 없게 되어있더라구요. 특별한 원인을 찾지 못해 새로운 앱으로 등록 테스트를 진행해봐야 할 것 같고요 아래와 같은 질문이 있습니다~ 강사님께서는 내부 테스트를 진행하셨는지 궁금합니다. 현재 프로덕션으로 출시 국가가 있는지 궁금합니다. 사전 예약 버튼 출시 국가가 없는 상태에서 활성화 되어있었는지 궁금합니다. 비공개 테스트를 진행하셨는지 궁금합니다. (앱을 프로덕션으로 버전 승급을 하려면 14일간 이 테스트를 무조건 진행해야 하더라구요) 비공개 테스트를 진행하셨다면 현재는 트랙을 일시 중지 시켜놓은 상태이신지 궁금하니다. 강사님께서 현재 앱 상태를 알려주시면 참고가 많이 될 것 같습니다. 여러모로 도움 주셔서 너무 감사드립니다~!!
안녕하세요. 강의 잘 듣고 있습니다. 🙂 일부 특정 국가에 먼저 서비스를 진행중인 상태(프로덕션)이고요 그외 서비스하지 않은 나머지 국가에는 사전등록을 진행해볼려고 합니다. 구글 플레이 콘솔이 업데이트 되어서 그런지 모르겠지만 사전 등록 트랙을 활성화 시키는 방법을 모르겠습니다. 위 스크린샷에서 사전 등록 트랙을 활성화 시켜볼려고 빌드 파일도 올려보고 나라도 선택하고 다른것들도 해 보았으나 트랙 요약이 계속 비활성화 된 상태입니다. 혹시 사전 등록을 어떤 순서로 진행하는건지 알려주시면 감사하겠습니다~!!
안녕하세요. 강의 잘 듣고 있습니다. 모바일 게임에서 흔히 볼 수 있는 우편을 통해 재화를 보상을 주는 우편 시스템에 대해 궁금합니다. 강의 내에는 우편 관련 기능이 없긴 하지만 혹시 강사님께서는 우편 기능을 어떻게 구현해서 사용하시는지 알려주시면 큰 도움이 될 것 같습니다. 국내에서는 뒤끝과 같은 외부 서비스에 도움을 받아 할수있지만 혹시 개인이 다른 방법으로도 사용할 수 있을지 궁금해서 여쭤봅니다~!! 감사합니다~
절대강좌! 유니티6 - 네트워크 게임 개발 마스터클래스 (Part3) : Netcode로 개발하는 2D RPG
Warrior가 Gobin에게 달려가 충돌하면 Gobin이 뒤로 튀겨나가는 현상이 있습니다. ChaseState 상태에서는 뒤로 튀겨나가도 다시 앞으로 가는데 Warrior가 계속 밀다가 사망 상태가 되면 Gobin은 IdleState가 되면서 계속해서 뒤로 밀리는 현상이 있습니다. 아래와 같이 IdleState 상태로 진입하면 enemy.StopMoving(); 를 추가 해서 멈추도록 했는데 public void Enter(Enemy enemy) { Logger.Log("Idle 진입"); enemy.animator.SetBool(Enemy.hashIsRun, false); // Idle 상태 진입 시 물리 엔진으로부터 발생하는 이동/힘을 즉시 차단합니다. // Enemy.StopMoving()을 호출하면 리지드바디 속도를 0으로 만들어 밀림을 방지합니다. enemy.StopMoving(); } 이 것도다 정확한 방법을 알 수 있을까요?
안녕하세요, 강사님. 자꾸 번거롭게 질문드려 죄송합니다. 저는 현재 타 부트캠프에서 개인 프로젝트로 카타나 제로 스타일의 게임을 제작하고 있습니다. 관련 에셋을 찾기가 쉽지 않아 우연히 강사님의 영상을 보고 큰 도움을 받게 되었습니다. 강사님께서 제공해주신 자료(이미지)를 활용하여 현재 제 개인 프로젝트와 포트폴리오에 적용하고 있는 상황입니다. 다만, 플레이어가 다음 씬으로 넘어갈 때 사용할 배경 이미지를 추가로 찾고 있는데, 혹시 사용 가능한 다른 배경 이미지가 있다면 공유해주실 수 있을까요? 또한, 강사님께서 제공해주신 자료의 에셋들을 제 개인 포트폴리오에 사용해도 되는지도 허락을 부탁드리고 싶습니다. 항상 좋은 자료와 영상 공유해주셔서 감사드립니다.
절대강좌! 유니티6 - 네트워크 게임 개발 마스터클래스 (Part3) : Netcode로 개발하는 2D RPG
Warrior의 공격에 문제점 발견 마우스 왼쪽 버튼 Down 할 때 공격 애니메이션 동작 마우스 왼쪽 버튼 Up 할 때 공격 애니메이션 동작 마우스 한번 클릭(Down, Up) 동작에서 두 번의 공격 동작을 함. 이 부분에서 canceled 부분==>마우스 Up 에서 애니메이션이 발생함. 수정 전 코드 attackAction.preformed += HandleAttack; attackAction.canceled += HandleAttack; 수정 후 코드 attackAction.started += HandleAttack; //attackAction.canceled += HandleAttack; 이렇게 수정하면 정상적으로 마우스 한 번 클릭에 한 번 공격함. 전체 수정 코드 private void OnEnable() { inputActions.Enable(); // 이벤트 연결 moveAction.performed += HandleMove; moveAction.canceled += HandleMove; attackAction.started += HandleAttack; // attackAction.canceled += HandleAttack; // 버튼을 뗄 때 공격이 발생하는 문제를 막기 위해 제거 } private void OnDisable() { inputActions.Disable(); // 이벤트 해제 moveAction.performed -= HandleMove; moveAction.canceled -= HandleMove; attackAction.started -= HandleAttack; // attackAction.canceled -= HandleAttack; }
안녕하세요. 유니티 시스템 프로그래밍 파트 1, 파트 2 강의 잘 듣고 있습니다. (두개 모두 번갈아 가며 필요한 부분 먼저 듣고 있는 상태입니다. ) 모바일 게임 서비스에 중요한 요소중에 하나로 로컬 알림과 서버 알림이 있는데 이 중에서도 로컬 알림에 대한 강의는 없는 것 같습니다. 혹시 제가 못 찾은 건지 아니면 이 강의가 없다면 추가로 강의를 만들어주실 수 있으신지 궁금합니다. 다국어 부분에서 CSV 파일을 로드해서 각 나라에 맞게 언어를 바꾸고 있긴 한데 CSV 파일 내 문자열에서 , 가 포함되어 있는 경우는 문제가 되지 않을까 싶습니다. 혹시 이런 경우일 때 어떻게 처리를 하실지 궁금합니다. 이상입니다. 유용한 강의 감사드립니다~
프로젝트 다운받아서 빌드 해보니 Assets\Scripts\Test\NPOIExample.cs(2,7): error CS0246: The type or namespace name 'NPOI' could not be found (are you missing a using directive or an assembly reference?) 이런오류들이 발생하는데 혹시 원인이 뭘까요? 제미나이에 물어보니 NPOI 관련해서 설정을 이것저것 해줬는데도 해결이 안되네요.. Assets\Scripts\Test\ExcelConvertTest.cs(656,45): error CS0246: The type or namespace name 'IRow' could not be found (are you missing a using directive or an assembly reference?) 이런오류들도 발생을 하네요 ㅜㅜ