전체 글 (114)

11
15

해당 방식은 다운로드 폴더 경로를 바꾸는게 아닌 기존 경로에서 다른 경로로 참조하는 심볼릭 링크 방식입니다.

 

유니티에서 에셋을 구매한 뒤 다운로드하면 아래 경로에 저장됩니다.

C:\Users\유저명\AppData\Roaming\Unity\Asset Store-5.x

 

 

폴더를 열어주신 뒤 해당경로를 찾아가줍니다.

해당 폴더를 삭제하거나 다른 곳에 우선 백업해둡니다. 저는 바탕화면에 해뒀습니다.

 

옮기고 싶은 폴더로 가준 뒤 폴더 하나를 만들어줍니다. 이름은 자유롭게 하셔도 됩니다.

 

 

 

윈도우 키를 눌러서 cmd라 입력하여 명령 프롬프트를 관리자 권한으로 실행해줍니다.

 

 

mklink /D "C:\Users\사용자명\AppData\Roaming\Unity\Asset Store-5.x" "D:\AssetStoreLink"

mklink /D 링크 대상

명령어를 입력해줍니다.

 

이제 원래 경로를 보시면 아래처럼 바로가기같은게 생겼을겁니다.

그러면 에셋을 다운할 때 마다 링크된 대상 경로에 저장이됩니다. 

 

 

링크된 대상 폴더에서 보시면 다운한 에셋들이 잘 저장되어있습니다.

 

 

 


번외) 이동식 HDD를 위한 자동 심볼릭 링크 생성 

 

저는 이동식 HDD를 들고 다니기 때문에 HDD가 없을 때 에셋을 다운하질 못합니다.

그럴 땐 그냥 기존 경로에 다운하도록 하면 AssetStore 심볼릭 링크한 것이 사라집니다.

나중에 다시 HDD를 연결하면 또 이 작업을 반복해야하는데요.

 

해당작업을 bat 파일 실행하기만 하면 작동되게 작성해봤습니다.

AssetStoreLink.bat

@echo off
chcp 65001 > nul

mklink /D "%APPDATA%\Unity\Asset Store-5.x" "D:\AssetStoreLink"

pause

 

 

경로에 따라 다르므로 해당하시는 경로로 바꿔서 작성해서 관리자로 실행해보시면 됩니다.

 

 

 

 

 

출처

https://gall.dcinside.com/mgallery/board/view/?id=game_dev&no=20284

 

윈도우 운영체제에서 유니티 에셋스토어 다운로드 폴더 변경하기 - 인디 게임 개발 마이너 갤러

제목은 다운로드 폴더 변경하기인데 사실은 훼이크 입니다. 변경은 아니구요.그냥 변경된 효과를 보는 간단한 방법을 소개하겠습니다. 아실분은 아시겠지만 심볼릭링크를 이용합니다.SSD 쓰시

gall.dcinside.com

 

COMMENT
 
11
14

 

 

AsstStudio 깃허브 레포지토리

https://github.com/Perfare/AssetStudio

 

GitHub - Perfare/AssetStudio: AssetStudio is a tool for exploring, extracting and exporting assets and assetbundles.

AssetStudio is a tool for exploring, extracting and exporting assets and assetbundles. - Perfare/AssetStudio

github.com

 

 

 

추출되는 데이터들

Texture2D : convert to png, tga, jpeg, bmp
Sprite : crop Texture2D to png, tga, jpeg, bmp
AudioClip : mp3, ogg, wav, m4a, fsb. support convert FSB file to WAV(PCM)
Font : ttf, otf
Mesh : obj
TextAsset
Shader
MovieTexture
VideoClip
MonoBehaviour : json
Animator : export to FBX file with bound AnimationClip

 

Script와 같은 파일이나 유니티 씬은 추출이 안됩니다.

 


설치법

직접 빌드 또는 그냥 다운로드 방식이 있습니다.

 

 

직접 빌드

Visual Studio 2022 혹은 더 최신버전 설치되있어야함

AssetStudioFBXNative는 FBX SDK 2020.2.1을 사용합니다. 

빌드하기 전에 FBX SDK를 설치하고 프로젝트 파일을 수정해야 하며 

참조 디렉터리와 라이브러리 디렉터리가 FBX SDK 디렉터리를 가리키도록 변경해야 합니다.

 

 

 

그냥 다운로드

 

닷넷 6 버전으로 지원되는 zip 파일을 설치 후 압축해제 해주시면 됩니다.

 

사용법

 

AssetStudioGUI.exe를 실행해줍니다.

 

실행시 아래와같이 창이 뜹니다.

File -> Load Folder 탭을 눌러 추출하고자하는 게임 폴더를 찾아줍니다.

 

해당하는 폴더에서 폴더 선택해주시면 추출이 시작됩니다.

Debug 탭에서 Show error message 기능이 체크되어있다면 꺼주시기 바랍니다.

해당 기능을 꺼주시면 에러메시지들을 안봐도 되니 더 편합니다.

 

추출이 끝나게 되면 사진과 같이 이미지들을 Asset List탭에서 sprite를 다 볼 수 있습니다.

 

게임의 유출데이터나 공부목적으로 이미지를 활용하기 좋은 툴인 것 같습니다.

당연히 2차 배포는 불법이라는거 기억해두시기 바랍니다. 

COMMENT
 
11
13

 

📢 학습 목표

  • 뷰 모델을 제대로 활용할 수 있다.
  • 유연하게 데이터를 가져올 수 있다.
  • MVVM UI 제작과정 익숙해지기.

지난 시간 복습

지난 시간 우리는 뷰 그룹을 간단하게 배워보고 간단한 데이터 가져오는 실습을 해봤습니다.

이번 시간에는 체력바를 만들고 이를 뷰 모델에서 가져와보는 시간을 가져보겠습니다.

체력 스크립트 만들기

우선 지난 시간 프로젝트에서 씬 하나를 생성해봅시다.

저는 Health라고 지었습니다.

이 빈 씬에 들어가줍니다.

체력바 UI 만들기

빈씬에 하이어라키에 우클릭한 뒤 Slider 하나 생성해봅시다.

그런 다음 Handle Slide Area 오브젝트를 찾아줍니다.

하이어라키에 있는 Handle Slide Area 오브젝트를 삭제합니다.

하이어라키에 있는 Fill 오브젝트를 눌러 색상을 빨강으로 바꿉니다.

체력바 뷰모델 만들기

스크립트를 하나 생성해줍시다.

저는 ViewModels 폴더에 HealthViewModel.cs를 생성했습니다.

스크립트 내부에 다음과 같이 작성해주세요.

using UnityWeld.Binding;

namespace UnityWeld
{
    [Binding]
    public class HealthViewModel : ViewModel
    {
        private float _healthPercent;

        [Binding]
        public float HealthPercent
        {
            get => _healthPercent;
            set
            {
                _healthPercent = value;
                OnPropertyChanged(nameof(HealthPercent));
            }
        }
    }
}

 

 

 

해당 스크립트를 Slider 오브젝트에 컴포넌트로 할당해줍시다.

 

 

그리고 사진과같이 OneWayPropertyBinding으로 HealthPercent를 바인딩합시다.

체력 스크립트 만들기

이제 체력 스크립트 하나 만들어봅시다.

폴더에 우클릭 → Create → C# Scripts

저는 Health.cs라고 지어줬습니다.

스크립트 내부에 다음과 같이 작성해주세요

using UnityEngine;
using UnityWeld;

public class Health : MonoBehaviour
{
    public float maxHealth; //* 최대 체력
    protected float curHealth; //* 현재 체력
    public HealthViewModel healthViewModel; //* 체력 뷰모델
    
    void Start()
    {
        UpdateHealth();
    }
    public void SetHp(float amount) //*Hp설정
    {
        maxHealth = amount;
        curHealth = maxHealth;
        UpdateHealth();
    }

    public void Damage(float damage) //* 데미지 받는 함수
    {
        if (maxHealth == 0 || curHealth <= 0) //* 이미 체력 0이하면 패스
            return;
        curHealth -= damage;
        if (curHealth <= 0)
        {
            //* 체력이 0 이하라 죽음
        }
        UpdateHealth();
    }
    public void UpdateHealth()
    {
        healthViewModel.HealthPercent = curHealth / maxHealth;
    }
}

아래 사진처럼 Health 오브젝트를 생성 후 Health.cs를 할당해주시고 세팅해주시기바랍니다.

테스트용 버튼 만들기

실제 Health.cs를 인게임에서 다양한 상황에서 호출가능하지만 지금은 간단한 실습을 위해 버튼을 만들어보겠습니다.

저는 아래 사진들처럼 버튼 두개를 만들어 세팅했습니다.

 
 

 결과

오늘 이렇게 간단하게 체력 뷰 모델을 만들어서 인게임에서의 Health와 상호작용 하는 실습을 해봤습니다.

실사용시 이벤트와 액션 등으로 더 유연하게 뷰 모델에게 데이터를 전달하여 UI에 데이터를 갱신해줄 수 있습니다.

MVVM을 연습 많이 하시고 UI 정복하시기 바랍니다. 수고하셨습니다.

 

💡핵심 정리

1. MVVM 패턴의 이해와 적용

  • View와 Model을 분리하여 유지보수성 향상
  • ViewModel을 통한 데이터 바인딩으로 UI 업데이트 자동화
  • 체력바 구현을 통해 MVVM 패턴의 실제 적용 방법 학습


📚
같이 보면 좋은 글

https://kimyir.tistory.com/20

 

유니티 체력바 구현하는 법

게임에서 체력바는 매번 구현할 때마다 템플릿이 필요하다고 생각했습니다.물론 이 글의 체력바는 모두 UI로 구현하고 있고 Sprite로 구현 가능합니다.참고로 이글에 있는 체력 UI는 WorldSpace 렌더

kimyir.tistory.com

체력바 가이드

 

COMMENT
 
11
12

 

구글 스토어 출시 세팅할 때 보려고 기록해둡니다.

 

● 회사 이름 제대로 설정하기

com.회사이름.게임이름

 

 

● 그래픽 세팅하기

 

Linear 색 영역 선택 후 텍스쳐 빌드 용량 감소를 위해 ASTC 선택

 

● API 세팅

 

패키지 이름 통일 시켜준 뒤,

대상 API 레벨을 최대한 높은걸로 설정, 만약에 너무 낮다면 프로젝트의 유니티 에디터 버전을 올려보기

 

스크립팅 선택

IL2CPP 골라준 뒤 아래 ARMv7와 ARM64 체크



 

● 에셋 빠진거 있는지 체크

 

 

● Publishing Settings로 키스토어 지정

키스토어 세팅해준 뒤 비번 까먹었다면 새로 만들기

 

 

● Minify 세팅

 

Release 체크해준 뒤 가능하면 해당 탭 위에 있는 Build에서 Custom Gradle Properties Template 체크해주기

 

그러면 아래와 같이 gradleTemplate가 생기는데

 

파일 안에 코드 한줄 추가

android.enableR8=true

 

 

● 최종 빌드 설정 체크

가능하다면 이미지 압축 설정 통일 시키기(ASTC)
빌드 앱 번들 체크

Create symbols.zip public으로 설정해주기 -> 추후 빌드 zip 심볼로 제출

 

체크해준뒤 심볼 제출하면 아래와 같이 됨

 

 

 

COMMENT
 
1 2 3 4 5 6 7 8 ··· 29