chore: Assets 디렉토리 구조 정리 및 네이밍 컨벤션 적용

- Assets/_Game/ 하위로 게임 에셋 통합
- External/ 패키지 벤더별 분류 (Synty, Animations, UI)
- 에셋 네이밍 컨벤션 확립 및 적용
  (Data_Skill_, Data_SkillEffect_, Prefab_, Anim_, Model_, BT_ 등)
- pre-commit hook으로 네이밍 컨벤션 자동 검사 추가
- RESTRUCTURE_CHECKLIST.md 작성

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-16 19:08:27 +09:00
parent 309bf5f48b
commit c265f980db
17251 changed files with 2630777 additions and 206 deletions

View File

@@ -0,0 +1,86 @@
// Copyright (c) 2024 Synty Studios Limited. All rights reserved.
//
// Use of this software is subject to the terms and conditions of the Synty Studios End User Licence Agreement (EULA)
// available at: https://syntystore.com/pages/end-user-licence-agreement
//
// For additional details, see the LICENSE.MD file bundled with this software.
#if UNITY_EDITOR
using System.Collections.Generic;
using System.Net;
using UnityEngine.Networking;
namespace Synty.SidekickCharacters.Network
{
/// <summary>
/// Manages all URLs used in the application to communicate with the Synty API.
/// </summary>
internal static class UrlManager
{
// Base URL
private const string _BASE_URL = "https://api.syntystudios.com/";
// API version we're connecting to
private const int _API_VERSION = 1;
// API URLs
private const string _API_GET_DB_UPDATE = "sidekick-database";
/// <summary>
/// Creates a new POST request built from the provided URL and form data with the api key added into the header if required.
/// </summary>
/// <param name="url">The URL to attach the post request to.</param>
/// <param name="formData">Any form data to attach to the request.</param>
/// <param name="apiKey">The api key to use, if required.</param>
/// <returns>A <c>UnityWebRequest.POST</c> with the given details.</returns>
public static UnityWebRequest CreatePostRequest(string url, List<IMultipartFormSection> formData, string apiKey = "")
{
UnityWebRequest webRequest = UnityWebRequest.Post(url, formData);
if (apiKey != "")
{
webRequest.SetRequestHeader("Authorization", "Bearer " + apiKey);
}
return webRequest;
}
/// <summary>
/// Creates a new GET request built from the provided URL with the api key added into the header if required.
/// </summary>
/// <param name="url">The URL to attach the post request to.</param>
/// <param name="apiKey">The api key to use, if required.</param>
/// <returns>A <c>UnityWebRequest.GET</c> with the given details.</returns>
public static UnityWebRequest CreateGetRequest(string url, string apiKey = "")
{
UnityWebRequest webRequest = UnityWebRequest.Get(url);
if (apiKey != "")
{
webRequest.SetRequestHeader("Authorization", "Bearer " + apiKey);
}
return webRequest;
}
/// <summary>
/// Returns the base API URL.
/// </summary>
/// <returns>The base API URL.</returns>
private static string GetBaseUrl()
{
return _BASE_URL + "api/v" + _API_VERSION + "/";
}
/// <summary>
/// Gets the Sidekick DB update URL.
/// </summary>
/// <returns>The Sidekick DB URL.</returns>
public static string GetDbUpdateUrl()
{
// TODO : do we still need this encoding?
// As this URL contains "unsafe" characters, we encode them first.
return GetBaseUrl() + WebUtility.UrlEncode(_API_GET_DB_UPDATE);
}
}
}
#endif

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 49e26bea33a6414183d894f7dd6f0db0
timeCreated: 1715237455