first commit
@@ -0,0 +1,225 @@
|
||||
using System;
|
||||
using Unity.Multiplayer.Center.Analytics;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace Unity.Multiplayer.Center.Window
|
||||
{
|
||||
internal class MultiplayerCenterWindow : EditorWindow, ISerializationCallbackReceiver
|
||||
{
|
||||
const string k_PathInPackage = "Packages/com.unity.multiplayer.center/Editor/MultiplayerCenterWindow";
|
||||
const string k_SpinnerClassName = "processing";
|
||||
const string k_SessionStateDomainReloadKey = "MultiplayerCenter.InDomainReload";
|
||||
|
||||
VisualElement m_SpinningIcon;
|
||||
|
||||
/// <summary>
|
||||
/// Nest the main container in a VisualElement to allow for easy enabling/disabling of the entire window but
|
||||
/// without the spinning icon.
|
||||
/// </summary>
|
||||
VisualElement m_MainContainer;
|
||||
|
||||
Vector2 m_WindowSize = new(350, 300);
|
||||
|
||||
public int CurrentTab => m_TabGroup.CurrentTab;
|
||||
|
||||
// Testing purposes only. We don't want to set CurrentTab from window
|
||||
internal int CurrentTabTest
|
||||
{
|
||||
get => m_TabGroup.CurrentTab;
|
||||
set => m_TabGroup.SetSelected(value);
|
||||
}
|
||||
|
||||
[SerializeField]
|
||||
bool m_RequestGettingStartedTabAfterDomainReload = false;
|
||||
|
||||
[SerializeField]
|
||||
TabGroup m_TabGroup;
|
||||
|
||||
/// <summary>
|
||||
/// This is the reference Multiplayer Center analytics implementation. This class owns it.
|
||||
/// </summary>
|
||||
IMultiplayerCenterAnalytics m_MultiplayerCenterAnalytics;
|
||||
|
||||
IMultiplayerCenterAnalytics MultiplayerCenterAnalytics => m_MultiplayerCenterAnalytics ??= MultiplayerCenterAnalyticsFactory.Create();
|
||||
|
||||
[MenuItem("Window/Multiplayer/Multiplayer Center")]
|
||||
public static void OpenWindow()
|
||||
{
|
||||
var showUtility = false; // TODO: figure out if it would be a good idea to have a utility window (always on top, cannot be tabbed)
|
||||
GetWindow<MultiplayerCenterWindow>(showUtility, "Multiplayer Center", true);
|
||||
}
|
||||
|
||||
void OnEnable()
|
||||
{
|
||||
// Adjust window size based on dpi scaling
|
||||
var dpiScale = EditorGUIUtility.pixelsPerPoint;
|
||||
minSize = new Vector2(m_WindowSize.x * dpiScale, m_WindowSize.y * dpiScale);
|
||||
|
||||
AssemblyReloadEvents.beforeAssemblyReload -= OnBeforeDomainReload;
|
||||
AssemblyReloadEvents.afterAssemblyReload -= OnAfterDomainReload;
|
||||
AssemblyReloadEvents.beforeAssemblyReload += OnBeforeDomainReload;
|
||||
AssemblyReloadEvents.afterAssemblyReload += OnAfterDomainReload;
|
||||
}
|
||||
|
||||
void OnDisable()
|
||||
{
|
||||
AssemblyReloadEvents.beforeAssemblyReload -= OnBeforeDomainReload;
|
||||
AssemblyReloadEvents.afterAssemblyReload -= OnAfterDomainReload;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Changes Tab from Recommendation to the Quickstart tab.
|
||||
/// </summary>
|
||||
public void RequestShowGettingStartedTabAfterDomainReload()
|
||||
{
|
||||
m_RequestGettingStartedTabAfterDomainReload = true;
|
||||
|
||||
// If no domain reload is necessary, this will be called.
|
||||
// If domain reload is necessary, the delay call will be forgotten, but CreateGUI will be called like after any domain reload
|
||||
// An extra delay is added to make sure that the visibility conditions of the Quickstart tab have been
|
||||
// fully evaluated. This solves MTT-8939.
|
||||
EditorApplication.delayCall += () =>
|
||||
{
|
||||
rootVisualElement.schedule.Execute(CallCreateGuiWithQuickstartRequest).ExecuteLater(300);
|
||||
};
|
||||
}
|
||||
|
||||
internal void DisableUiForInstallation()
|
||||
{
|
||||
SetSpinnerIconRotating();
|
||||
m_MainContainer.SetEnabled(false);
|
||||
}
|
||||
|
||||
internal void ReenableUiAfterInstallation()
|
||||
{
|
||||
RemoveSpinnerIconRotating();
|
||||
m_MainContainer.SetEnabled(true);
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
// Restore the GUI if it was cleared in OnBeforeSerialize.
|
||||
if (m_TabGroup == null || m_TabGroup.ViewCount < 1)
|
||||
{
|
||||
CreateGUI();
|
||||
}
|
||||
}
|
||||
|
||||
void CreateGUI()
|
||||
{
|
||||
rootVisualElement.name = "root";
|
||||
m_MainContainer ??= new VisualElement();
|
||||
m_MainContainer.name = "recommendation-tab-container";
|
||||
m_MainContainer.Clear();
|
||||
rootVisualElement.Add(m_MainContainer);
|
||||
m_SpinningIcon = new VisualElement();
|
||||
var theme = EditorGUIUtility.isProSkin ? "dark" : "light";
|
||||
rootVisualElement.styleSheets.Add(AssetDatabase.LoadAssetAtPath<StyleSheet>($"{k_PathInPackage}/UI/{theme}.uss"));
|
||||
rootVisualElement.styleSheets.Add(AssetDatabase.LoadAssetAtPath<StyleSheet>($"{k_PathInPackage}/UI/MultiplayerCenterWindow.uss"));
|
||||
|
||||
if (m_TabGroup == null || m_TabGroup.ViewCount < 1 || !m_TabGroup.TabsAreValid())
|
||||
m_TabGroup = new TabGroup(MultiplayerCenterAnalytics, new ITabView[] {new RecommendationTabView(), new GettingStartedTabView()});
|
||||
else // since we are not serializing the analytics provider, we need to set it again
|
||||
m_TabGroup.MultiplayerCenterAnalytics = MultiplayerCenterAnalytics;
|
||||
|
||||
m_TabGroup.CreateTabs();
|
||||
m_MainContainer.Add(m_TabGroup.Root);
|
||||
|
||||
var installationInProgress = !PackageManagement.IsInstallationFinished();
|
||||
SetWindowContentEnabled(installationInProgress, m_RequestGettingStartedTabAfterDomainReload);
|
||||
ShowAppropriateTab(installationInProgress);
|
||||
}
|
||||
|
||||
void ShowAppropriateTab(bool installationInProgress)
|
||||
{
|
||||
if (installationInProgress)
|
||||
{
|
||||
PackageManagement.RegisterToExistingInstaller(b => RequestShowGettingStartedTabAfterDomainReload());
|
||||
m_TabGroup.SetSelected(0, force: true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_RequestGettingStartedTabAfterDomainReload)
|
||||
{
|
||||
m_RequestGettingStartedTabAfterDomainReload = false;
|
||||
m_TabGroup.SetSelected(1, force: true);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_TabGroup.SetSelected(m_TabGroup.CurrentTab, force: true);
|
||||
}
|
||||
}
|
||||
|
||||
void SetWindowContentEnabled(bool installationInProgress, bool quickstartRequested)
|
||||
{
|
||||
m_MainContainer.SetEnabled(!installationInProgress || quickstartRequested);
|
||||
|
||||
// if we are current already processing an installation, show the spinning icon
|
||||
if (installationInProgress)
|
||||
{
|
||||
// Wait a bit because the animation does not trigger when we call this in CreateGUI
|
||||
EditorApplication.delayCall += SetSpinnerIconRotating;
|
||||
}
|
||||
|
||||
rootVisualElement.Add(m_SpinningIcon);
|
||||
}
|
||||
|
||||
void CallCreateGuiWithQuickstartRequest()
|
||||
{
|
||||
// Interestingly, setting this before registering the delay call sometimes results in the value
|
||||
// being false when CreateGUI starts, so we set it again here.
|
||||
m_RequestGettingStartedTabAfterDomainReload = true;
|
||||
CreateGUI();
|
||||
}
|
||||
|
||||
void SetSpinnerIconRotating()
|
||||
{
|
||||
m_SpinningIcon.AddToClassList(k_SpinnerClassName);
|
||||
}
|
||||
|
||||
void RemoveSpinnerIconRotating()
|
||||
{
|
||||
m_SpinningIcon?.RemoveFromClassList(k_SpinnerClassName);
|
||||
}
|
||||
|
||||
void ClearTabs()
|
||||
{
|
||||
m_TabGroup?.Clear();
|
||||
m_TabGroup = null;
|
||||
}
|
||||
|
||||
// This will not get called when the Editor is closed.
|
||||
void OnDestroy()
|
||||
{
|
||||
ClearTabs();
|
||||
}
|
||||
|
||||
static void OnBeforeDomainReload()
|
||||
{
|
||||
SessionState.SetBool(k_SessionStateDomainReloadKey, true);
|
||||
}
|
||||
|
||||
static void OnAfterDomainReload()
|
||||
{
|
||||
SessionState.SetBool(k_SessionStateDomainReloadKey, false);
|
||||
}
|
||||
|
||||
public void OnBeforeSerialize()
|
||||
{
|
||||
// ClearTabs if the Window gets serialized, but we are not in DomainReload
|
||||
// This happens when the Editor closes or the WindowLayout is saved by the user.
|
||||
// This ensures that the State of the Tabs is not serialized into the WindowLayout of the User.
|
||||
if (SessionState.GetBool(k_SessionStateDomainReloadKey, false) == false)
|
||||
{
|
||||
ClearTabs();
|
||||
}
|
||||
}
|
||||
|
||||
public void OnAfterDeserialize()
|
||||
{
|
||||
// Empty on purpose.
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7e006510f5f4425ca971c7de0bfbb77a
|
||||
timeCreated: 1695036798
|
||||
@@ -0,0 +1,197 @@
|
||||
using System;
|
||||
using Unity.Multiplayer.Center.Analytics;
|
||||
using Unity.Multiplayer.Center.Common;
|
||||
using Unity.Multiplayer.Center.Questionnaire;
|
||||
using Unity.Multiplayer.Center.Recommendations;
|
||||
using Unity.Multiplayer.Center.Window.UI;
|
||||
using Unity.Multiplayer.Center.Window.UI.RecommendationView;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace Unity.Multiplayer.Center.Window
|
||||
{
|
||||
internal class RecommendationTabView : ITabView
|
||||
{
|
||||
QuestionnaireView m_QuestionnaireView;
|
||||
RecommendationView m_RecommendationView;
|
||||
|
||||
RecommendationViewBottomBar m_BottomBarView;
|
||||
|
||||
bool m_IsVisible;
|
||||
bool m_ShouldRefresh = true;
|
||||
|
||||
[SerializeField]
|
||||
PreReleaseHandling m_PreReleaseHandling = new();
|
||||
|
||||
[field: SerializeField] // Marked as redundant by Rider, but it is not.
|
||||
public string Name { get; private set; }
|
||||
|
||||
public VisualElement RootVisualElement { get; set; }
|
||||
public IMultiplayerCenterAnalytics MultiplayerCenterAnalytics { get; set; }
|
||||
|
||||
// Access to QuestionnaireView for testing purposes
|
||||
internal QuestionnaireView QuestionnaireView => m_QuestionnaireView;
|
||||
|
||||
public RecommendationTabView(string name = "Recommendation")
|
||||
{
|
||||
Name = name;
|
||||
m_PreReleaseHandling.OnAllChecksFinished += PatchData;
|
||||
m_PreReleaseHandling.CheckForUpdates();
|
||||
Undo.undoRedoPerformed += OnUndoRedoPerformed;
|
||||
}
|
||||
|
||||
void OnUndoRedoPerformed()
|
||||
{
|
||||
UserChoicesObject.instance.Save();
|
||||
m_QuestionnaireView?.Refresh();
|
||||
UpdateRecommendation(keepSelection:true);
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
Undo.undoRedoPerformed -= OnUndoRedoPerformed;
|
||||
m_RecommendationView?.Clear();
|
||||
m_QuestionnaireView?.Clear();
|
||||
RootVisualElement?.Clear();
|
||||
m_QuestionnaireView = null;
|
||||
m_RecommendationView = null;
|
||||
}
|
||||
|
||||
public void SetVisible(bool visible)
|
||||
{
|
||||
RootVisualElement.style.display = visible ? DisplayStyle.Flex : DisplayStyle.None;
|
||||
m_IsVisible = visible;
|
||||
}
|
||||
|
||||
public void Refresh()
|
||||
{
|
||||
Debug.Assert(MultiplayerCenterAnalytics != null, "MultiplayerCenterAnalytics != null");
|
||||
RefreshPreReleaseHandling();
|
||||
if (!m_ShouldRefresh && RootVisualElement.childCount > 0) return;
|
||||
CreateStandardView();
|
||||
m_ShouldRefresh = false;
|
||||
}
|
||||
|
||||
void RefreshPreReleaseHandling()
|
||||
{
|
||||
if (!m_PreReleaseHandling.IsReady)
|
||||
{
|
||||
m_PreReleaseHandling.OnAllChecksFinished += PatchData;
|
||||
m_PreReleaseHandling.CheckForUpdates();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_PreReleaseHandling.PatchRecommenderSystemData();
|
||||
}
|
||||
}
|
||||
|
||||
void CreateStandardView()
|
||||
{
|
||||
Clear();
|
||||
Undo.undoRedoPerformed -= OnUndoRedoPerformed;
|
||||
Undo.undoRedoPerformed += OnUndoRedoPerformed;
|
||||
MigrateUserChoices();
|
||||
|
||||
// We need this because Bottom bar is a part of the Recommendations Tab and it should always stay
|
||||
// at the bottom of the view. So we need to make sure that the root tab element is always 100% height.
|
||||
RootVisualElement.style.height = Length.Percent(100);
|
||||
|
||||
var horizontalContainer = new TwoPaneSplitView(0, 250, TwoPaneSplitViewOrientation.Horizontal);
|
||||
horizontalContainer.AddToClassList(StyleClasses.MainSplitView);
|
||||
horizontalContainer.name = "recommendation-tab-split-view";
|
||||
|
||||
// This is used to make sure the left side does not grow to 100% as this is what would happen by default.
|
||||
// It feels not 100% correct. But it seems to be the only way to match the height of the 2 sides with how
|
||||
// our views are build currently.
|
||||
horizontalContainer.contentContainer.style.position = Position.Relative;
|
||||
|
||||
m_QuestionnaireView = new QuestionnaireView(QuestionnaireObject.instance.Questionnaire);
|
||||
m_QuestionnaireView.OnQuestionnaireDataChanged += HandleQuestionnaireDataChanged;
|
||||
m_QuestionnaireView.OnPresetSelected += OnPresetSelected;
|
||||
m_QuestionnaireView.Root.AddToClassList(StyleClasses.MainSplitViewLeft);
|
||||
horizontalContainer.Add(m_QuestionnaireView.Root);
|
||||
|
||||
m_RecommendationView = new RecommendationView();
|
||||
m_RecommendationView.Root.AddToClassList(StyleClasses.MainSplitViewRight);
|
||||
horizontalContainer.Add(m_RecommendationView.Root);
|
||||
RootVisualElement.Add(horizontalContainer);
|
||||
|
||||
m_BottomBarView = new RecommendationViewBottomBar(MultiplayerCenterAnalytics);
|
||||
m_RecommendationView.OnPackageSelectionChanged +=
|
||||
() => m_BottomBarView.UpdatePackagesToInstall(m_RecommendationView.CurrentRecommendation, m_RecommendationView.AllPackages);
|
||||
RootVisualElement.Add(m_BottomBarView);
|
||||
UpdateRecommendation(keepSelection: true);
|
||||
|
||||
m_BottomBarView.SetInfoTextForCheckingPackages(!m_PreReleaseHandling.IsReady);
|
||||
}
|
||||
|
||||
void HandleQuestionnaireDataChanged()
|
||||
{
|
||||
UpdateRecommendation(keepSelection: false);
|
||||
}
|
||||
|
||||
static void MigrateUserChoices()
|
||||
{
|
||||
var questionnaire = QuestionnaireObject.instance.Questionnaire;
|
||||
var userChoices = UserChoicesObject.instance;
|
||||
|
||||
// make sure the version of the questionnaire is the same as the one in the user choices.
|
||||
if (questionnaire.Version != userChoices.QuestionnaireVersion && userChoices.UserAnswers.Answers.Count > 0)
|
||||
{
|
||||
Logic.MigrateUserChoices(questionnaire, userChoices);
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateRecommendation(bool keepSelection)
|
||||
{
|
||||
var questionnaire = QuestionnaireObject.instance.Questionnaire;
|
||||
var userChoices = UserChoicesObject.instance;
|
||||
|
||||
var errors = Logic.ValidateAnswers(questionnaire, userChoices.UserAnswers);
|
||||
foreach (var error in errors)
|
||||
{
|
||||
Debug.LogError(error);
|
||||
}
|
||||
|
||||
var recommendation = userChoices.Preset == Preset.None? null
|
||||
: RecommenderSystem.GetRecommendation(questionnaire, userChoices.UserAnswers);
|
||||
m_PreReleaseHandling.PatchPackages(recommendation);
|
||||
if (keepSelection)
|
||||
{
|
||||
RecommendationUtils.ApplyPreviousSelection(recommendation, userChoices.SelectedSolutions);
|
||||
}
|
||||
else if (recommendation != null) // we only send the event if there is a recommendation and it is a new one
|
||||
{
|
||||
MultiplayerCenterAnalytics.SendRecommendationEvent(userChoices.UserAnswers, userChoices.Preset);
|
||||
}
|
||||
|
||||
m_RecommendationView.UpdateRecommendation(recommendation, m_PreReleaseHandling);
|
||||
m_BottomBarView.UpdatePackagesToInstall(recommendation, m_RecommendationView.AllPackages);
|
||||
}
|
||||
|
||||
void PatchData()
|
||||
{
|
||||
m_PreReleaseHandling.PatchRecommenderSystemData();
|
||||
m_PreReleaseHandling.OnAllChecksFinished -= PatchData;
|
||||
m_ShouldRefresh = true;
|
||||
if(m_IsVisible)
|
||||
Refresh();
|
||||
}
|
||||
|
||||
void OnPresetSelected(Preset preset)
|
||||
{
|
||||
var (resultAnswerData, recommendation) = Logic.ApplyPresetToAnswerData(
|
||||
UserChoicesObject.instance.UserAnswers, preset, QuestionnaireObject.instance.Questionnaire);
|
||||
|
||||
UserChoicesObject.instance.UserAnswers = resultAnswerData;
|
||||
UserChoicesObject.instance.Save();
|
||||
|
||||
if (recommendation != null)
|
||||
MultiplayerCenterAnalytics.SendRecommendationEvent(resultAnswerData, preset);
|
||||
|
||||
m_QuestionnaireView.Refresh();
|
||||
m_RecommendationView.UpdateRecommendation(recommendation, m_PreReleaseHandling);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 052c764978664486a9c04518899ddf57
|
||||
timeCreated: 1700489744
|
||||
@@ -0,0 +1,124 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Unity.Multiplayer.Center.Analytics;
|
||||
using Unity.Multiplayer.Center.Questionnaire;
|
||||
using Unity.Multiplayer.Center.Recommendations;
|
||||
using Unity.Multiplayer.Center.Window.UI;
|
||||
using UnityEditor;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace Unity.Multiplayer.Center.Window
|
||||
{
|
||||
class RecommendationViewBottomBar : VisualElement
|
||||
{
|
||||
readonly Label m_PackageCount;
|
||||
readonly Button m_InstallPackageButton;
|
||||
readonly Label m_InfoLabel;
|
||||
|
||||
IMultiplayerCenterAnalytics m_Analytics;
|
||||
|
||||
MultiplayerCenterWindow m_Window = EditorWindow.GetWindow<MultiplayerCenterWindow>();
|
||||
List<string> m_PackagesToInstallIds = new ();
|
||||
List<string> m_PackagesToInstallNames = new ();
|
||||
RecommendationViewData m_RecommendationViewData;
|
||||
SolutionsToRecommendedPackageViewData m_SolutionToPackageData;
|
||||
|
||||
public RecommendationViewBottomBar(IMultiplayerCenterAnalytics analytics)
|
||||
{
|
||||
m_Analytics = analytics;
|
||||
name = "bottom-bar";
|
||||
m_PackageCount = new Label {name = "package-count"};
|
||||
m_InfoLabel = new Label();
|
||||
|
||||
// Setup Install Button
|
||||
m_InstallPackageButton = new Button(OnInstallButtonClicked) {text = "Install Packages"};
|
||||
m_InstallPackageButton.AddToClassList(StyleClasses.NextStepButton);
|
||||
|
||||
// Put the button in a container
|
||||
var installPackageContainer = new VisualElement() {name = "install-package-container"};
|
||||
installPackageContainer.Add(m_InstallPackageButton);
|
||||
|
||||
Add(m_PackageCount);
|
||||
Add(m_InfoLabel);
|
||||
Add(installPackageContainer);
|
||||
}
|
||||
|
||||
void OnInstallButtonClicked()
|
||||
{
|
||||
if (!PackageManagement.IsAnyMultiplayerPackageInstalled() || WarnDialogForPackageInstallation())
|
||||
{
|
||||
SendInstallationAnalyticsEvent();
|
||||
InstallSelectedPackagesAndExtension();
|
||||
}
|
||||
}
|
||||
|
||||
void SendInstallationAnalyticsEvent()
|
||||
{
|
||||
var answerObject = UserChoicesObject.instance;
|
||||
var selectedNetcode = RecommendationUtils.GetSelectedNetcode(m_RecommendationViewData);
|
||||
var selectedHostingModel = RecommendationUtils.GetSelectedHostingModel(m_RecommendationViewData);
|
||||
m_Analytics.SendInstallationEvent(answerObject.UserAnswers, answerObject.Preset,
|
||||
AnalyticsUtils.GetPackagesWithAnalyticsFormat(m_RecommendationViewData, m_SolutionToPackageData),
|
||||
selectedNetcode.Title, selectedNetcode.RecommendationType == RecommendationType.MainArchitectureChoice,
|
||||
selectedHostingModel.Title, selectedHostingModel.RecommendationType == RecommendationType.MainArchitectureChoice);
|
||||
}
|
||||
|
||||
bool WarnDialogForPackageInstallation()
|
||||
{
|
||||
var warningMessage =
|
||||
"Ensure compatibility with your current multiplayer packages before installing or upgrading the following:\n" +
|
||||
string.Join("\n", m_PackagesToInstallNames);
|
||||
return EditorUtility.DisplayDialog("Install Packages", warningMessage, "OK", "Cancel");
|
||||
}
|
||||
|
||||
void InstallSelectedPackagesAndExtension()
|
||||
{
|
||||
SetInfoTextForInstallation(isInstalling:true);
|
||||
m_Window.DisableUiForInstallation();
|
||||
PackageManagement.InstallPackages(m_PackagesToInstallIds, onAllInstalled: OnInstallationFinished);
|
||||
}
|
||||
|
||||
void OnInstallationFinished(bool success)
|
||||
{
|
||||
SetInfoTextForInstallation(isInstalling:false);
|
||||
m_Window.RequestShowGettingStartedTabAfterDomainReload();
|
||||
m_Window.ReenableUiAfterInstallation();
|
||||
}
|
||||
|
||||
public void UpdatePackagesToInstall(RecommendationViewData data, SolutionsToRecommendedPackageViewData packageViewData)
|
||||
{
|
||||
m_RecommendationViewData = data;
|
||||
m_SolutionToPackageData = packageViewData;
|
||||
var packages = RecommendationUtils.PackagesToInstall(data, packageViewData);
|
||||
RecommendationUtils.GetPackagesWithAdditionalPackages(packages, out m_PackagesToInstallIds, out m_PackagesToInstallNames, out var toolTip);
|
||||
m_PackageCount.tooltip = toolTip;
|
||||
|
||||
// Note: quickstart is counted in the list of packages to install, but not the names
|
||||
m_PackageCount.text = $"Packages to install: {m_PackagesToInstallNames.Count}";
|
||||
// if the list is empty, disable the button
|
||||
m_InstallPackageButton.SetEnabled(m_PackagesToInstallNames.Count > 0);
|
||||
}
|
||||
|
||||
internal void SetInfoTextForInstallation(bool isInstalling)
|
||||
{
|
||||
SetInfoLabelTextAndVisibility("Downloading packages, please wait ...", isInstalling);
|
||||
}
|
||||
|
||||
internal void SetInfoTextForCheckingPackages(bool isChecking)
|
||||
{
|
||||
SetInfoLabelTextAndVisibility("Querying packages information ...", isChecking);
|
||||
|
||||
// Handle the case of reopening the window during the installation.
|
||||
// When reopening the window, the packages are being checked. Once that check is done, we still want to
|
||||
// display the installation package text if there is an ongoing installation.
|
||||
if(!isChecking && !PackageManagement.IsInstallationFinished())
|
||||
SetInfoTextForInstallation(isInstalling:true);
|
||||
}
|
||||
|
||||
void SetInfoLabelTextAndVisibility(string text, bool isVisible)
|
||||
{
|
||||
m_InfoLabel.text = text;
|
||||
m_InfoLabel.visible = isVisible;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d1084186a4004823abee9b87c8ddf198
|
||||
timeCreated: 1710930997
|
||||
@@ -0,0 +1,197 @@
|
||||
using System;
|
||||
using Unity.Multiplayer.Center.Analytics;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace Unity.Multiplayer.Center.Window
|
||||
{
|
||||
// Note: there is a TabView API in UI Toolkit, but only starting from 2023.2
|
||||
internal interface ITabView
|
||||
{
|
||||
/// <summary>
|
||||
/// The name as displayed in the tab button
|
||||
/// Should be serialized.
|
||||
/// </summary>
|
||||
string Name { get; }
|
||||
|
||||
/// <summary>
|
||||
/// The root visual element of the tab view.
|
||||
/// The setter will only be used if the root visual element is null when the tab is created.
|
||||
/// </summary>
|
||||
VisualElement RootVisualElement { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Sets the tab view visible or not.
|
||||
/// </summary>
|
||||
/// <param name="visible">If true, visible.</param>
|
||||
void SetVisible(bool visible);
|
||||
|
||||
/// <summary>
|
||||
/// If true the Tab can be selected by the user.
|
||||
/// </summary>
|
||||
bool IsEnabled => true;
|
||||
|
||||
/// <summary>
|
||||
/// Tooltip which will be shown on the Tab Button.
|
||||
/// </summary>
|
||||
string ToolTip => "";
|
||||
|
||||
/// <summary>
|
||||
/// Refreshes the UI Elements according to latest data.
|
||||
/// If the UI is not created yet, it does it.
|
||||
/// </summary>
|
||||
void Refresh();
|
||||
|
||||
/// <summary>
|
||||
/// Unregister all events and clear UI Elements
|
||||
/// </summary>
|
||||
void Clear();
|
||||
|
||||
/// <summary>
|
||||
/// The Multiplayer Center Analytics provider.
|
||||
/// </summary>
|
||||
IMultiplayerCenterAnalytics MultiplayerCenterAnalytics { get; set; }
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
internal class TabGroup
|
||||
{
|
||||
const string k_TabViewName = "tab-view";
|
||||
const string k_TabZoneName = "tab-zone";
|
||||
const string k_TabButtonUssClass = "tab-button";
|
||||
|
||||
// The container for all the tabs
|
||||
const string k_TabsContainerUssClass ="tabs-container";
|
||||
|
||||
// Gets applied to the root of each tab
|
||||
const string k_TabContentUssClass = "tab-content";
|
||||
|
||||
[field: SerializeField]
|
||||
public int CurrentTab { get; private set; } = -1;
|
||||
|
||||
public int ViewCount => m_TabViews?.Length ?? 0;
|
||||
|
||||
VisualElement[] m_TabButtons;
|
||||
|
||||
[SerializeReference]
|
||||
ITabView[] m_TabViews;
|
||||
|
||||
public VisualElement Root { get; private set; }
|
||||
|
||||
VisualElement m_MainContainer;
|
||||
|
||||
IMultiplayerCenterAnalytics m_MultiplayerCenterAnalytics;
|
||||
|
||||
internal IMultiplayerCenterAnalytics MultiplayerCenterAnalytics
|
||||
{
|
||||
get => m_MultiplayerCenterAnalytics;
|
||||
set
|
||||
{
|
||||
m_MultiplayerCenterAnalytics = value;
|
||||
foreach (var tabView in m_TabViews)
|
||||
{
|
||||
if(tabView != null)
|
||||
tabView.MultiplayerCenterAnalytics = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public TabGroup(IMultiplayerCenterAnalytics analytics, ITabView[] tabViews, int defaultIndex = 0)
|
||||
{
|
||||
m_TabViews = tabViews;
|
||||
CurrentTab = defaultIndex;
|
||||
MultiplayerCenterAnalytics = analytics;
|
||||
}
|
||||
|
||||
public void SetSelected(int index, bool force = false)
|
||||
{
|
||||
// Select the first tab, if the requested tab is not enabled.
|
||||
// This assumes the first tab is always enabled.
|
||||
if (!m_TabViews[index].IsEnabled)
|
||||
index = 0;
|
||||
|
||||
if (index == CurrentTab && !force)
|
||||
return;
|
||||
|
||||
if (CurrentTab >= 0 && CurrentTab < m_TabViews.Length)
|
||||
{
|
||||
m_TabButtons[CurrentTab].RemoveFromClassList("selected");
|
||||
m_TabViews[CurrentTab].SetVisible(false);
|
||||
}
|
||||
|
||||
EditorPrefs.SetInt(PlayerSettings.productName + "_MultiplayerCenter_TabIndex", index);
|
||||
CurrentTab = index;
|
||||
m_TabViews[CurrentTab].Refresh();
|
||||
m_TabButtons[CurrentTab].AddToClassList("selected");
|
||||
m_TabViews[CurrentTab].SetVisible(true);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Instantiates the visual elements for all the tabs.
|
||||
/// Use this to create the tabs for the first time the UI is shown or after a domain reload.
|
||||
/// </summary>
|
||||
public void CreateTabs()
|
||||
{
|
||||
Root ??= new VisualElement();
|
||||
m_MainContainer ??= new VisualElement();
|
||||
|
||||
if (Root.Q(k_TabZoneName) != null)
|
||||
Root.Q(k_TabZoneName).RemoveFromHierarchy();
|
||||
|
||||
var tabZone = new VisualElement() {name = k_TabZoneName};
|
||||
Root.Add(tabZone);
|
||||
Root.name = k_TabViewName;
|
||||
m_TabButtons = new VisualElement[m_TabViews.Length];
|
||||
for (var i = 0; i < m_TabViews.Length; i++)
|
||||
{
|
||||
var tabView = m_TabViews[i];
|
||||
var index = i; // copy for closure
|
||||
var tabButton = new Button(() => SetSelected(index));
|
||||
tabButton.enabledSelf = tabView.IsEnabled;
|
||||
tabButton.tooltip = tabView.ToolTip;
|
||||
tabButton.AddToClassList(k_TabButtonUssClass);
|
||||
tabButton.text = tabView.Name;
|
||||
tabZone.Add(tabButton);
|
||||
m_TabButtons[i] = tabButton;
|
||||
tabView.RootVisualElement ??= new VisualElement();
|
||||
tabView.RootVisualElement.AddToClassList(k_TabContentUssClass);
|
||||
tabView.RootVisualElement.style.display = DisplayStyle.None;
|
||||
m_MainContainer.Add(m_TabViews[i].RootVisualElement);
|
||||
}
|
||||
|
||||
m_MainContainer.AddToClassList(k_TabsContainerUssClass);
|
||||
Root.Add(m_MainContainer);
|
||||
CurrentTab = EditorPrefs.GetInt(PlayerSettings.productName + "_MultiplayerCenter_TabIndex", 0);
|
||||
}
|
||||
|
||||
static void SetVisible(VisualElement e, bool visible)
|
||||
{
|
||||
e.style.display = visible ? DisplayStyle.Flex : DisplayStyle.None;
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
if(m_TabViews == null)
|
||||
return;
|
||||
|
||||
foreach (var tabView in m_TabViews)
|
||||
{
|
||||
tabView?.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
public bool TabsAreValid()
|
||||
{
|
||||
if (m_TabViews == null)
|
||||
return false;
|
||||
|
||||
foreach (var tab in m_TabViews)
|
||||
{
|
||||
if (tab == null)
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fdefed6b790f4373b0feb7d25854d8ac
|
||||
timeCreated: 1700582398
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9bd34ec3fe8f4aed936c3a0cf2f32e56
|
||||
timeCreated: 1695037065
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 34a09eb4d6e8d44989194a25525c5147
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 3.5 KiB |
@@ -0,0 +1,127 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4f78a544322c742b89e63fb68557b1d2
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 2
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 631 B |
@@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b2ce704e56cc84fb3b347499263c6244
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c7a38e6eccbfc49778cb8b77f594a971
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 550 B |
@@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ad1d29f4654194951a3c8bf507914d05
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 987 B |
@@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a23c0dd570fd44b57a03a8880002fcca
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 897 B |
@@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dce12af736e0a4a1ba35d6424f897dc9
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d7711b0cc806d430b8a95f1e33ec3649
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 657 B |
@@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3fe892784421e47f5aa40c2784a6cb3e
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 38b78df4a34c94fa6a52c90239606ff1
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 432 B |
@@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d63245ece6d8f476c8c7ca24da9937f6
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 802 B |
@@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0354877031b64465ea7e5cafea1a2653
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 7.6 KiB |
@@ -0,0 +1,115 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 84e4bbd00035e4671bf14e0380a89001
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 16 KiB |
@@ -0,0 +1,115 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2adffcc506285402aa795dee6f3166d0
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 6.1 KiB |
@@ -0,0 +1,115 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 424a8de5def3b46dcb08edd00ad1c7bd
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 974 B |
@@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e9669051ff70449b5923861e0e0b8838
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2cb589d4e01184d928bb698f06e77561
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 99da7b3894f364efdb5fa1443952a55d
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 83b28bcaaf34b4fd580114fb05d9f160
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 407 B |
@@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1daed49eec0f94f7ebb36dfef6159884
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 609 B |
@@ -0,0 +1,128 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b58a826ca804e4c67bab4283ad5a6102
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 5.1 KiB |
@@ -0,0 +1,114 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9d9689eab72c8480c90679f4dcf18820
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 2
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 427 B |
@@ -0,0 +1,115 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4616b2fa4acd1429e931835b80966c2a
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 841 B |
@@ -0,0 +1,115 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0423146d9f51c4563a0f2a8200b6cd38
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 236 B |
@@ -0,0 +1,115 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 679f9999c6f8f497e806a2d5d0511879
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 309 B |
@@ -0,0 +1,115 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9431e8221045c4af189b2fa7174b9e9f
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
@@ -0,0 +1,127 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dd70cd654275d47db807e918055e004f
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 2
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 6.3 KiB |
@@ -0,0 +1,117 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dab91f148d99946e7b3c3a87ecf4b973
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 5.1 KiB |
@@ -0,0 +1,114 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 525a6cca8dd9a4d28875a8fe824710d9
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 2
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 428 B |
@@ -0,0 +1,115 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 77be953cf28de42a4ad8532539fef3f5
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 792 B |
@@ -0,0 +1,115 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 318df756abab5463e9aa361360784865
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 235 B |
@@ -0,0 +1,115 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1b4c88814ec6241eb8e327515399c006
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 322 B |
@@ -0,0 +1,115 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a6fd0c627f5aa48fa81512221e70a11e
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
@@ -0,0 +1,127 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 741761e72e6f24446bd8ba03ea3d0261
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 2
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 32
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,626 @@
|
||||
#root {
|
||||
--dark-grey: var(--unity-colors-window-background);
|
||||
--standard-grey: var(--unity-colors-app_toolbar_button-background-hover);
|
||||
--standard-background-color: var(--unity-colors-window-background);
|
||||
--light-grey: var(--unity-colors-dropdown-background);
|
||||
--border-color: var(--unity-colors-dropdown-border);
|
||||
--card-background: var(--unity-colors-inspector_titlebar-border_accent);
|
||||
|
||||
--doc-separator-color: #5D5D5D;
|
||||
|
||||
--tab-button-bar-height: 32px;
|
||||
|
||||
--bottom-bar-height: 56px;
|
||||
|
||||
--card-width: 300px;
|
||||
--card-min-width: 200px;
|
||||
--card-poster-icon-width: 92px;
|
||||
--card-poster-icon-height: 64px;
|
||||
|
||||
--checkmark-icon: url("Icons/Check.png");
|
||||
--questionnaire-empty-view-icon: url('Icons/EmptyViewIcon.png');
|
||||
}
|
||||
|
||||
.color-recommendation-badge {
|
||||
color: var(--recommendation-badge-color);
|
||||
border-color: var(--recommendation-badge-color);
|
||||
}
|
||||
|
||||
.icon{
|
||||
min-width: 16px;
|
||||
max-width: 16px;
|
||||
min-height: 16px;
|
||||
max-height: 16px;
|
||||
}
|
||||
|
||||
Label{
|
||||
overflow: hidden;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.view-headline{
|
||||
font-size: 14px;
|
||||
padding-bottom: 16px;
|
||||
}
|
||||
|
||||
.recommendation-view-headline{
|
||||
font-size: 14px;
|
||||
padding-bottom: 16px;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.icon-package-manager{
|
||||
background-image: var(--package-manager-icon);
|
||||
}
|
||||
|
||||
.icon-questionmark {
|
||||
background-image: var(--info-icon);
|
||||
}
|
||||
|
||||
.icon-three-dots {
|
||||
background-image: var(--three-dot-icon);
|
||||
-unity-background-scale-mode: scale-to-fit;
|
||||
}
|
||||
|
||||
.icon-package-installed{
|
||||
margin-left: 4px;
|
||||
background-image: var(--package-installed-icon);
|
||||
}
|
||||
|
||||
.icon-NGO{background-image:url('Icons/Ngo.png')}
|
||||
.icon-N4E{background-image:url('Icons/N4E.png')}
|
||||
.icon-LS{background-image:url('Icons/ClientHosted.png')}
|
||||
.icon-DS{background-image:url('Icons/DedicatedServer.png')}
|
||||
.icon-DA{background-image:url('Icons/DistributedAuthority.png')}
|
||||
.icon-CustomNetcode{background-image:url('Icons/CustomNetcode.png')}
|
||||
.icon-NoNetcode{background-image:url('Icons/NoNetcode.png')}
|
||||
.icon-CloudCode{background-image:url('Icons/CloudCode.png')}
|
||||
|
||||
/*Utilities*/
|
||||
|
||||
.processing{
|
||||
background-image: var(--spinner-icon-big);
|
||||
rotate: 360000deg;
|
||||
transition-property: rotate;
|
||||
transition-timing-function: linear;
|
||||
transition-duration: 2000s;
|
||||
min-width: 64px;
|
||||
max-width: 64px;
|
||||
min-height: 64px;
|
||||
max-height: 64px;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
translate: -50% -50%;
|
||||
}
|
||||
|
||||
.flex-wrap{
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.color-grey {
|
||||
color: var(--badge-color-grey);
|
||||
opacity: 0.8;
|
||||
border-color: var(--badge-color-grey);
|
||||
}
|
||||
|
||||
.highlight-background-color {
|
||||
background-color: var(--standard-background-color);
|
||||
}
|
||||
|
||||
.next-step-button {
|
||||
padding: 6px;
|
||||
margin-top: 6px;
|
||||
min-height: 32px;
|
||||
max-height: 32px;
|
||||
}
|
||||
|
||||
.packageIcon {
|
||||
background-image: var(--package-icon);
|
||||
-unity-background-scale-mode: scale-to-fit;
|
||||
margin-right: 4px;
|
||||
background-size: 16px 16px;
|
||||
}
|
||||
|
||||
.questionnaireIcon {
|
||||
background-image: var(--questionnaire-icon);
|
||||
-unity-background-scale-mode: scale-to-fit;
|
||||
background-size: 14px 14px;
|
||||
}
|
||||
|
||||
/* Questionnaire view */
|
||||
|
||||
#questionnaire-view {
|
||||
margin: 10px;
|
||||
padding-bottom: 4px;
|
||||
}
|
||||
|
||||
|
||||
#questionnaire-view Label {
|
||||
padding-left: 0px;
|
||||
padding-right: 0px;
|
||||
}
|
||||
|
||||
#questionnaire-view Toggle {
|
||||
margin-left: 0px;
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
#advanced-questions > Toggle {
|
||||
-unity-font-style: bold;
|
||||
}
|
||||
|
||||
/*question-view One single question in question-view*/
|
||||
|
||||
.question-view{
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
#advanced-questions .question-view > Label {
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.question-view Toggle {
|
||||
background-color: var(--dark-grey);
|
||||
}
|
||||
|
||||
.question-view .question-text {
|
||||
margin: 5px;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.question-view .unity-radio-button__label {
|
||||
left: 32px;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.question-view .unity-radio-button__input {
|
||||
position: absolute;
|
||||
left: 16px;
|
||||
}
|
||||
|
||||
.mandatory-question Label {
|
||||
padding-bottom: 4px;
|
||||
-unity-font-style: bold;
|
||||
}
|
||||
|
||||
.question-section {
|
||||
}
|
||||
|
||||
.question-section__no-scrollbar{
|
||||
align-content: flex-start;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
/*bottom bar - holding the install button, spinning icon and the package count */
|
||||
#bottom-bar {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
max-height: var(--bottom-bar-height);
|
||||
min-height: var(--bottom-bar-height);
|
||||
flex-direction: row;
|
||||
border-width: 1px;
|
||||
background-color: var(--unity-colors-window-background);
|
||||
border-top-color: var(--border-color);
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
#bottom-bar #install-package-container {
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
EnumField, DropdownField {
|
||||
margin: 0px;
|
||||
min-height: 19px;
|
||||
}
|
||||
|
||||
/* recommendation view*/
|
||||
|
||||
#main-sections-container{
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.main-section{
|
||||
background-color: var(--card-background);
|
||||
border-width: 1px;
|
||||
border-color: var(--border-color);
|
||||
padding-bottom: 16px;
|
||||
margin: 0px 8px 8px 0px;
|
||||
width: var(--card-width);
|
||||
min-width: var(--card-min-width);
|
||||
flex-grow: 1;
|
||||
flex-shrink: 1;
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
}
|
||||
|
||||
.main-section .recommendation-item{
|
||||
padding: 0px;
|
||||
margin-left: -4px;
|
||||
margin-right: -4px;
|
||||
|
||||
}
|
||||
|
||||
.main-section DropdownField{
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.main-section .unity-help-box{
|
||||
margin-top: 4px;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.sub-section{
|
||||
margin-top: 0px;
|
||||
margin-left: 0px;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.subsection-headline{
|
||||
font-size: 12px;
|
||||
-unity-font-style: bold;
|
||||
}
|
||||
|
||||
.subsection-headline > .unity-base-field{
|
||||
margin-top: 6px;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
/*recommendation section - foldout that holds recommendations*/
|
||||
#card-headline{
|
||||
font-size: 12px;
|
||||
-unity-font-style: bold;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
#associated-features-headline{
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
#card-poster-image{
|
||||
margin-right: -16px;
|
||||
margin-left: -16px;
|
||||
min-width: 100%;
|
||||
min-height: 92px;
|
||||
|
||||
background-color: var(--card-poster-image-bg-color);
|
||||
margin-bottom: 16px;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
#card-poster-image >*{
|
||||
|
||||
min-width: var(--card-poster-icon-width);
|
||||
max-width: var(--card-poster-icon-width);
|
||||
min-height: var(--card-poster-icon-height);
|
||||
max-height: var(--card-poster-icon-height);
|
||||
}
|
||||
|
||||
#recommendation-view-section-container {
|
||||
flex-grow: 1;
|
||||
margin-left: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
/*recommendation item - One Item that a user can select or unselect within recommendation section*/
|
||||
|
||||
.recommendation-item {
|
||||
border-width: 1px;
|
||||
-unity-font-style: normal;
|
||||
background-color: var(--card-background);
|
||||
overflow: hidden;
|
||||
flex-grow: 0;
|
||||
flex-shrink: 1;
|
||||
min-height: 32px;
|
||||
margin-top: 4px;
|
||||
padding:4px;
|
||||
}
|
||||
|
||||
.recommendation-item #sub-info-text {
|
||||
margin-left: 20px;
|
||||
-unity-font-style: italic;
|
||||
white-space: normal;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.recommendation-item #header {
|
||||
|
||||
flex-direction: row;
|
||||
align-content: center;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.recommendation-item-top-left-container {
|
||||
flex-direction: row;
|
||||
flex-grow: 1;
|
||||
flex-shrink: 1;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.recommendation-item-top-left-container Label {
|
||||
flex-shrink: 1;
|
||||
}
|
||||
|
||||
.recommendation-item-top-right-container {
|
||||
max-width: 64px;
|
||||
flex-shrink: 0;
|
||||
flex-direction: row;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.badge {
|
||||
font-size: 9px;
|
||||
padding: 1px;
|
||||
margin-left: 4px;
|
||||
padding-left: 3px;
|
||||
padding-right: 3px;
|
||||
border-width: 1px;
|
||||
border-radius: 3px;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
min-width: 24px;
|
||||
flex-shrink: 1;
|
||||
}
|
||||
|
||||
.pre-release-badge {
|
||||
color: var(--pre-release-badge-color);
|
||||
background-color: var(--pre-release-badge-color-bg);
|
||||
border-color: var(--pre-release-badge-color);
|
||||
}
|
||||
|
||||
/*Tab views - if we are sure we will not support 2022, we should merge this with TabView uss*/
|
||||
#tab-view{
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
#tab-zone {
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
min-height: var(--tab-button-bar-height);
|
||||
max-height: var(--tab-button-bar-height);
|
||||
}
|
||||
|
||||
.tabs-container {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.tab-content{
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
#recommendation-tab-container
|
||||
{
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.main-split-view {
|
||||
border-top-width: 1px;
|
||||
border-top-color: var(--border-color);
|
||||
height: 100%;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.main-split-view-right{
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#unity-dragline-anchor{
|
||||
background-color: var(--border-color);
|
||||
}
|
||||
|
||||
#unity-dragline-anchor:hover{
|
||||
background-color: white;
|
||||
opacity: 0.3;
|
||||
}
|
||||
|
||||
.tab-button {
|
||||
margin: 0;
|
||||
padding-top: 4px;
|
||||
border-width: 0px;
|
||||
border-bottom-width: 2px;
|
||||
min-height: var(--tab-button-bar-height);
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
border-color: var(--dark-grey);
|
||||
background-color: var(--dark-grey);
|
||||
padding-left: 12px;
|
||||
padding-right: 12px;
|
||||
align-items: center;
|
||||
|
||||
}
|
||||
|
||||
.tab-button:hover {
|
||||
background-color: var(--standard-grey);
|
||||
}
|
||||
|
||||
.tab-button.selected {
|
||||
border-bottom-width: 2px;
|
||||
border-bottom-color: var(--tab-button-highlight-color);
|
||||
}
|
||||
|
||||
/* Getting started views */
|
||||
.onboarding-categories{
|
||||
margin: 0px;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.onboarding-categories .unity-button-group{
|
||||
flex-direction: column;
|
||||
align-self: stretch;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.onboarding-category-button{
|
||||
margin: 0px;
|
||||
padding-left: 20px;
|
||||
-unity-text-align: middle-left;
|
||||
width: 100%;
|
||||
min-height: 28px;
|
||||
border-width: 0px;
|
||||
background-color: transparent;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
.onboarding-category-button:hover {
|
||||
background-color: var(--standard-grey);
|
||||
}
|
||||
|
||||
.onboarding-category-button:checked {
|
||||
background-color: var(--unity-colors-highlight-background);
|
||||
-unity-font-style: bold;
|
||||
color: var(--onboarding-button-selected-text-color);
|
||||
}
|
||||
|
||||
.onboarding-section-category-container{
|
||||
padding-left: 12px;
|
||||
padding-right: 12px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.onboarding-section-mainbutton{
|
||||
max-height: 24px;
|
||||
align-self: flex-start;
|
||||
padding: 2px 4px 2px 4px;
|
||||
margin-left: 0;
|
||||
margin-top: 4px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
/*onboarding section*/
|
||||
.onboarding-section {
|
||||
background-color: var(--unity-colors-inspector_titlebar-border_accent);
|
||||
padding: 16px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.section-foldout {
|
||||
background-color: var(--card-background);
|
||||
padding: 16px;
|
||||
padding-top: 8px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.section-foldout .unity-foldout__checkmark {
|
||||
/* Use width instead of display: none, which results in the title being cut */
|
||||
width: 0;
|
||||
}
|
||||
|
||||
.section-foldout .unity-foldout__text {
|
||||
font-size: 14px;
|
||||
-unity-font-style: Bold;
|
||||
margin-bottom: 8px;
|
||||
margin-left: -6px;
|
||||
}
|
||||
|
||||
.section-foldout .onboarding-section-short-description {
|
||||
margin-left: -16px;
|
||||
}
|
||||
|
||||
.onboarding-section-title {
|
||||
font-size: 14px;
|
||||
-unity-font-style: Bold;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.three-dot-button {
|
||||
background-color: transparent;
|
||||
border-width: 0px;
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
}
|
||||
|
||||
.three-dot-button:hover {
|
||||
background-color: var(--standard-grey);
|
||||
}
|
||||
|
||||
.onboarding-section-short-description {
|
||||
max-width: 700px;
|
||||
overflow: hidden;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.horizontal-container {
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.flex-spacer {
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.doc-button {
|
||||
border-width: 0px;
|
||||
padding: 1px;
|
||||
margin-left: 0px;
|
||||
margin-right: 2px;
|
||||
background-color: var(--card-background);
|
||||
color: var(--link-color);
|
||||
}
|
||||
|
||||
.doc-button:hover {
|
||||
background-color: var(--dark-grey);
|
||||
}
|
||||
|
||||
#doc-button-separator {
|
||||
margin: 2px;
|
||||
color: var(--doc-separator-color);
|
||||
}
|
||||
|
||||
.checkmark-icon {
|
||||
background-image: var(--checkmark-icon);
|
||||
-unity-background-scale-mode: scale-to-fit;
|
||||
background-size: 16px 16px;
|
||||
min-width: 16px;
|
||||
max-width: 16px;
|
||||
min-height: 16px;
|
||||
max-height: 16px;
|
||||
}
|
||||
|
||||
/* Empty view which is shown when no recommendations are shown*/
|
||||
|
||||
#empty-view {
|
||||
flex-grow: 1;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
#empty-view-content{
|
||||
height: 100%;
|
||||
width: 75%;
|
||||
max-width: 400px;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
#empty-view-icon {
|
||||
min-height: 50%;
|
||||
background-image: var(--questionnaire-empty-view-icon);
|
||||
background-size: contain;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
#empty-view-message {
|
||||
flex-shrink: 0;
|
||||
flex-grow: 0;
|
||||
width: 100%;
|
||||
-unity-text-align: upper-left;
|
||||
overflow: hidden;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bac00d6e07f0b4305bb395363c89d92b
|
||||
ScriptedImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0}
|
||||
disableValidation: 0
|
||||
@@ -0,0 +1,149 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Unity.Multiplayer.Center.Common;
|
||||
using Unity.Multiplayer.Center.Questionnaire;
|
||||
using Unity.Multiplayer.Center.Recommendations;
|
||||
using UnityEditor;
|
||||
using UnityEditor.UIElements;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace Unity.Multiplayer.Center.Window.UI
|
||||
{
|
||||
/// <summary>
|
||||
/// Questions that go together in the Questionnaire view.
|
||||
/// Example: mandatory questions in "Game Specs" section, optional questions in "Advanced" section.
|
||||
/// </summary>
|
||||
internal class QuestionSection : VisualElement
|
||||
{
|
||||
EnumField m_PresetDropdown;
|
||||
public VisualElement ContentRoot { get; private set; }
|
||||
public event Action<AnsweredQuestion> QuestionUpdated;
|
||||
|
||||
public event Action<Preset> OnPresetSelected;
|
||||
|
||||
const string k_AdvancedFoldoutName = "advanced-questions";
|
||||
|
||||
public void CreateAdvancedFoldout(Question[] questions, IEnumerable<AnsweredQuestion> existingAnswers, string headerTitle)
|
||||
{
|
||||
var foldout = new Foldout
|
||||
{
|
||||
text = headerTitle,
|
||||
name = k_AdvancedFoldoutName
|
||||
};
|
||||
foreach (var question in questions)
|
||||
{
|
||||
if (question.IsMandatory)
|
||||
continue;
|
||||
|
||||
foldout.Add(CreateSingleQuestionView(question, existingAnswers));
|
||||
}
|
||||
|
||||
ContentRoot.Insert(1, foldout);
|
||||
}
|
||||
|
||||
public QuestionSection(Question[] questions, IEnumerable<AnsweredQuestion> existingAnswers, string headerTitle,
|
||||
bool mandatoryQuestions)
|
||||
{
|
||||
var title = new VisualElement();
|
||||
title.Add(new Label() {text = headerTitle});
|
||||
title.AddToClassList(StyleClasses.ViewHeadline);
|
||||
Add(title);
|
||||
|
||||
ContentRoot = CreateContentRoot(true);
|
||||
|
||||
Add(ContentRoot);
|
||||
|
||||
for (var index = 0; index < questions.Length; index++)
|
||||
{
|
||||
if ((!mandatoryQuestions && questions[index].IsMandatory) || (mandatoryQuestions && !questions[index].IsMandatory))
|
||||
continue;
|
||||
|
||||
ContentRoot.Add(CreateSingleQuestionView(questions[index], existingAnswers));
|
||||
}
|
||||
|
||||
Undo.undoRedoPerformed += OnUndoRedoPerformed;
|
||||
}
|
||||
|
||||
~QuestionSection()
|
||||
{
|
||||
Undo.undoRedoPerformed -= OnUndoRedoPerformed;
|
||||
}
|
||||
|
||||
void OnUndoRedoPerformed()
|
||||
{
|
||||
m_PresetDropdown?.SetValueWithoutNotify(UserChoicesObject.instance.Preset);
|
||||
}
|
||||
|
||||
public void AddPresetView()
|
||||
{
|
||||
ContentRoot.Insert(0, CreatePresetView());
|
||||
}
|
||||
|
||||
static VisualElement CreateContentRoot(bool withScrollView)
|
||||
{
|
||||
if (!withScrollView)
|
||||
return new VisualElement();
|
||||
|
||||
var root = new ScrollView();
|
||||
root.horizontalScrollerVisibility = ScrollerVisibility.Hidden;
|
||||
return root;
|
||||
}
|
||||
|
||||
VisualElement CreateSingleQuestionView(Question question, IEnumerable<AnsweredQuestion> existingAnswers)
|
||||
{
|
||||
Logic.TryGetAnswerByQuestionId(existingAnswers, question.Id, out var existingAnswer);
|
||||
existingAnswer ??= new AnsweredQuestion { QuestionId = question.Id };
|
||||
|
||||
var questionView = GetQuestionHeader(question, out var questionContainer);
|
||||
questionContainer.Add(QuestionViewFactory.CreateQuestionViewInput(question, existingAnswer, RaiseQuestionUpdated));
|
||||
return questionView;
|
||||
}
|
||||
|
||||
static VisualElement GetQuestionHeader(Question question, out VisualElement inputContainer)
|
||||
{
|
||||
return QuestionViewFactory.StandardQuestionHeader(question, out inputContainer);
|
||||
}
|
||||
|
||||
void RaiseQuestionUpdated(AnsweredQuestion question)
|
||||
{
|
||||
QuestionUpdated?.Invoke(question);
|
||||
}
|
||||
|
||||
VisualElement CreatePresetView()
|
||||
{
|
||||
const string description = "Select the game genre that is the closest match to your project to generate common game specifications for this genre and recommended solutions. Recommendations are based solely on player count and game specifications.";
|
||||
var presetQuestion = new Question()
|
||||
{Title = "Genre of your Game", Description = description, IsMandatory = true};
|
||||
|
||||
var questionView = GetQuestionHeader(presetQuestion, out var questionContainer);
|
||||
questionContainer.Add(PresetDropdown());
|
||||
return questionView;
|
||||
}
|
||||
|
||||
EnumField PresetDropdown()
|
||||
{
|
||||
m_PresetDropdown = new EnumField(UserChoicesObject.instance.Preset);
|
||||
m_PresetDropdown.RegisterValueChangedCallback(RaiseValueChangedCallback);
|
||||
m_PresetDropdown.name = "preset-dropdown";
|
||||
m_PresetDropdown.tooltip = "Select your game type";
|
||||
return m_PresetDropdown;
|
||||
}
|
||||
|
||||
void RaiseValueChangedCallback(ChangeEvent<Enum> eventData)
|
||||
{
|
||||
if (!Equals(eventData.newValue, eventData.previousValue))
|
||||
{
|
||||
Undo.RecordObject(UserChoicesObject.instance, "Selected Preset");
|
||||
var newVal = (Preset) eventData.newValue;
|
||||
UserChoicesObject.instance.Preset = newVal;
|
||||
OnPresetSelected?.Invoke(newVal);
|
||||
}
|
||||
}
|
||||
|
||||
public void SetAdvancedSectionVisible (bool isVisible){
|
||||
var advanced = ContentRoot.Q<Foldout>(k_AdvancedFoldoutName);
|
||||
advanced.style.display = isVisible ? new StyleEnum<DisplayStyle>(DisplayStyle.Flex) : new StyleEnum<DisplayStyle>(DisplayStyle.None);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 157e1606dfbd48dda6f01acbf49435b0
|
||||
timeCreated: 1710925980
|
||||
@@ -0,0 +1,162 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Unity.Multiplayer.Center.Common;
|
||||
using Unity.Multiplayer.Center.Questionnaire;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
using Toggle = UnityEngine.UIElements.Toggle;
|
||||
|
||||
namespace Unity.Multiplayer.Center.Window.UI
|
||||
{
|
||||
/// <summary>
|
||||
/// Creates visual elements that represent a question / the overview of the questionnaire
|
||||
/// </summary>
|
||||
internal static class QuestionViewFactory
|
||||
{
|
||||
public static VisualElement CreateOverview(QuestionnaireData questionnaire, int currentQuestionIndex)
|
||||
{
|
||||
if (currentQuestionIndex < 0 || currentQuestionIndex >= questionnaire.Questions.Length)
|
||||
throw new ArgumentOutOfRangeException(nameof(currentQuestionIndex));
|
||||
|
||||
var label = new Label($"Question {currentQuestionIndex + 1} of {questionnaire.Questions.Length}");
|
||||
label.AddToClassList("questionnaireOverview");
|
||||
return label;
|
||||
}
|
||||
|
||||
public static VisualElement StandardQuestionHeader(Question question, out VisualElement inputContainer)
|
||||
{
|
||||
var root = new VisualElement();
|
||||
root.AddToClassList(StyleClasses.QuestionView);
|
||||
if (question.IsMandatory)
|
||||
{
|
||||
root.AddToClassList(StyleClasses.MandatoryQuestion);
|
||||
}
|
||||
|
||||
var title = new Label(question.Title);
|
||||
title.tooltip = question.Description;
|
||||
root.Add(title);
|
||||
inputContainer = root;
|
||||
return root;
|
||||
}
|
||||
|
||||
public static VisualElement CreateQuestionViewInput(Question question, AnsweredQuestion answer, Action<AnsweredQuestion> onAnswerChanged)
|
||||
{
|
||||
return question.ViewType switch
|
||||
{
|
||||
ViewType.Toggle => CreateToggle(question, answer, onAnswerChanged),
|
||||
ViewType.Radio => CreateRadio(question, answer, onAnswerChanged),
|
||||
ViewType.Checkboxes => CreateCheckboxes(question, answer, onAnswerChanged),
|
||||
ViewType.DropDown => CreateDropDown(question, answer, onAnswerChanged),
|
||||
_ => throw new ArgumentOutOfRangeException()
|
||||
};
|
||||
}
|
||||
|
||||
static VisualElement CreateDropDown(Question question, AnsweredQuestion answer, Action<AnsweredQuestion> onAnswerChanged)
|
||||
{
|
||||
var dropdown = new DropdownField();
|
||||
var choices = new List<string>(question.Choices.Length);
|
||||
foreach (var choice in question.Choices)
|
||||
{
|
||||
choices.Add(choice.Title);
|
||||
}
|
||||
dropdown.choices = choices;
|
||||
|
||||
if (answer.Answers?.Count > 0)
|
||||
{
|
||||
var currentAnswer = Array.Find(question.Choices, choice => choice.Id == answer.Answers[0]);
|
||||
dropdown.SetValueWithoutNotify(currentAnswer.Title);
|
||||
}
|
||||
|
||||
dropdown.RegisterValueChangedCallback(evt =>
|
||||
{
|
||||
RecordUndo();
|
||||
string selectedId = default;
|
||||
foreach (var choice in question.Choices)
|
||||
{
|
||||
if (choice.Title == evt.newValue)
|
||||
{
|
||||
selectedId = choice.Id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
answer.Answers = new List<string>(1) {selectedId};
|
||||
onAnswerChanged?.Invoke(answer);
|
||||
});
|
||||
return dropdown;
|
||||
|
||||
}
|
||||
|
||||
public static VisualElement CreateCheckboxes(Question question, AnsweredQuestion answeredQuestion, Action<AnsweredQuestion> onAnswerChanged = null)
|
||||
{
|
||||
var root = new VisualElement();
|
||||
|
||||
foreach (var possibleAnswer in question.Choices)
|
||||
{
|
||||
var toggle = new Toggle(possibleAnswer.Title);
|
||||
toggle.tooltip = possibleAnswer.Description;
|
||||
var answerCopy = possibleAnswer;
|
||||
toggle.RegisterValueChangedCallback(evt => UpdateAnswersWithCheckBoxes(answeredQuestion, answerCopy.Id, evt.newValue, onAnswerChanged));
|
||||
root.Add(toggle);
|
||||
}
|
||||
|
||||
return root;
|
||||
}
|
||||
|
||||
static void UpdateAnswersWithCheckBoxes(AnsweredQuestion question, string id, bool newValue, Action<AnsweredQuestion> onAnswerChanged)
|
||||
{
|
||||
RecordUndo();
|
||||
if (newValue && !question.Answers.Contains(id))
|
||||
{
|
||||
question.Answers.Add(id);
|
||||
onAnswerChanged?.Invoke(question);
|
||||
}
|
||||
else if (!newValue && question.Answers.Contains(id))
|
||||
{
|
||||
question.Answers.Remove(id);
|
||||
onAnswerChanged?.Invoke(question);
|
||||
}
|
||||
}
|
||||
|
||||
public static RadioButtonGroup CreateRadio(Question question, AnsweredQuestion answeredQuestion, Action<AnsweredQuestion> onAnswerChanged = null)
|
||||
{
|
||||
var group = new RadioButtonGroup();
|
||||
|
||||
foreach (var q in question.Choices)
|
||||
{
|
||||
var radioButton = new RadioButton(q.Title);
|
||||
radioButton.tooltip = q.Description;
|
||||
|
||||
// Todo: just checking for the first question for now.
|
||||
if (answeredQuestion.Answers != null && q.Id == answeredQuestion.Answers[0])
|
||||
radioButton.SetValueWithoutNotify(true);
|
||||
group.Add(radioButton);
|
||||
}
|
||||
|
||||
// this was not working, so I had to use the foreach loop above
|
||||
|
||||
// var answerIndex = question.Choices.ToList().FindIndex(c => c.Id == answeredQuestion.Answers[0]);
|
||||
// group.SetValueWithoutNotify(answerIndex);
|
||||
|
||||
group.RegisterValueChangedCallback(evt =>
|
||||
{
|
||||
RecordUndo();
|
||||
answeredQuestion.Answers = new List<string>(1) {question.Choices[evt.newValue].Id};
|
||||
onAnswerChanged?.Invoke(answeredQuestion);
|
||||
});
|
||||
|
||||
return group;
|
||||
}
|
||||
|
||||
public static VisualElement CreateToggle(Question question, AnsweredQuestion answeredQuestion, Action<AnsweredQuestion> onAnswerChanged)
|
||||
{
|
||||
return CreateRadio(question, answeredQuestion, onAnswerChanged);
|
||||
}
|
||||
|
||||
static void RecordUndo()
|
||||
{
|
||||
Undo.RecordObject(UserChoicesObject.instance,"Game Spec Change");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e4439b4b4bb24a5eb61c59c5a67aa5a0
|
||||
timeCreated: 1695633353
|
||||
@@ -0,0 +1,98 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Unity.Multiplayer.Center.Common;
|
||||
using Unity.Multiplayer.Center.Questionnaire;
|
||||
using Unity.Multiplayer.Center.Recommendations;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace Unity.Multiplayer.Center.Window.UI
|
||||
{
|
||||
internal class QuestionnaireView
|
||||
{
|
||||
public VisualElement Root { get; private set; }
|
||||
readonly QuestionnaireData m_Questions;
|
||||
|
||||
public event Action OnQuestionnaireDataChanged;
|
||||
public event Action<Preset> OnPresetSelected;
|
||||
|
||||
public QuestionnaireView(QuestionnaireData questions)
|
||||
{
|
||||
m_Questions = questions;
|
||||
Root = new VisualElement();
|
||||
Root.name = "questionnaire-view";
|
||||
Refresh();
|
||||
}
|
||||
|
||||
public void Refresh()
|
||||
{
|
||||
RefreshData();
|
||||
ReCreateVisualElements();
|
||||
}
|
||||
|
||||
void ReCreateVisualElements()
|
||||
{
|
||||
Root.Clear();
|
||||
|
||||
var existingAnswers = UserChoicesObject.instance.UserAnswers.Answers;
|
||||
var questions = m_Questions.Questions;
|
||||
|
||||
|
||||
var gameSpecs = new QuestionSection(questions, existingAnswers, "Game Specifications", true);
|
||||
gameSpecs.AddPresetView();
|
||||
gameSpecs.OnPresetSelected += RaisePresetSelected;
|
||||
gameSpecs.QuestionUpdated += QuestionUpdated;
|
||||
Root.Add(gameSpecs);
|
||||
gameSpecs.CreateAdvancedFoldout(questions, existingAnswers, "Detailed Game Specifications");
|
||||
EvaluateAdvancedSectionVisibility();
|
||||
}
|
||||
|
||||
void EvaluateAdvancedSectionVisibility()
|
||||
{
|
||||
var showAdvanced = UserChoicesObject.instance.Preset != Preset.None &&
|
||||
Logic.AreMandatoryQuestionsFilled(QuestionnaireObject.instance.Questionnaire, UserChoicesObject.instance.UserAnswers);
|
||||
|
||||
Root.Q<QuestionSection>().SetAdvancedSectionVisible(showAdvanced);
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
OnQuestionnaireDataChanged = null;
|
||||
Root.Clear();
|
||||
}
|
||||
|
||||
static void RefreshData()
|
||||
{
|
||||
UserChoicesObject.instance.UserAnswers.Answers ??= new List<AnsweredQuestion>();
|
||||
}
|
||||
|
||||
internal void QuestionUpdated(AnsweredQuestion answeredQuestion)
|
||||
{
|
||||
Logic.Update(UserChoicesObject.instance.UserAnswers, answeredQuestion);
|
||||
UserChoicesObject.instance.Save();
|
||||
if (IsAllQuestionsAnswered())
|
||||
{
|
||||
OnQuestionnaireDataChanged?.Invoke();
|
||||
}
|
||||
EvaluateAdvancedSectionVisibility();
|
||||
}
|
||||
|
||||
internal void RaisePresetSelected(Preset preset)
|
||||
{
|
||||
OnPresetSelected?.Invoke(preset);
|
||||
}
|
||||
|
||||
bool IsAllQuestionsAnswered()
|
||||
{
|
||||
foreach (var question in m_Questions.Questions)
|
||||
{
|
||||
if (!RecommendationUtils.IsQuestionAnswered(question))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bcf305fff4614e26a6979b63e954f6d6
|
||||
timeCreated: 1695632775
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eab7f42d361b483aaa760c5909002312
|
||||
timeCreated: 1700052014
|
||||
@@ -0,0 +1,109 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Unity.Multiplayer.Center.Recommendations;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace Unity.Multiplayer.Center.Window.UI.RecommendationView
|
||||
{
|
||||
internal class RecommendedPackagesSection : PackageSelectionView
|
||||
{
|
||||
VisualElement m_Container;
|
||||
protected override VisualElement ContainerRoot => m_Container;
|
||||
public RecommendedPackagesSection()
|
||||
{
|
||||
var headline = new Label("Recommended Multiplayer Packages");
|
||||
headline.AddToClassList(k_HeadlineUssClass);
|
||||
Add(headline);
|
||||
Add(m_Container = new VisualElement());
|
||||
m_Container.AddToClassList(k_SubSectionClass);
|
||||
}
|
||||
}
|
||||
|
||||
internal class OtherSection : PackageSelectionView
|
||||
{
|
||||
readonly Foldout m_Foldout;
|
||||
|
||||
protected override VisualElement ContainerRoot => m_Foldout;
|
||||
|
||||
public OtherSection()
|
||||
{
|
||||
m_Foldout = new Foldout(){text = "Other Packages"};
|
||||
m_Foldout.AddToClassList(k_HeadlineUssClass);
|
||||
Add(m_Foldout);
|
||||
m_Foldout.contentContainer.AddToClassList(k_SubSectionClass);
|
||||
}
|
||||
}
|
||||
|
||||
internal class PackageSelectionView : VisualElement
|
||||
{
|
||||
List<RecommendedPackageViewData> m_Packages;
|
||||
List<RecommendationItemView> PackageViews => ContainerRoot.Query<RecommendationItemView>().ToList();
|
||||
|
||||
protected virtual VisualElement ContainerRoot => this;
|
||||
|
||||
protected const string k_HeadlineUssClass = "subsection-headline";
|
||||
|
||||
protected const string k_SubSectionClass = "sub-section";
|
||||
|
||||
public event Action OnPackageSelectionChanged;
|
||||
|
||||
protected PackageSelectionView()
|
||||
{
|
||||
}
|
||||
|
||||
public void UpdatePackageData(List<RecommendedPackageViewData> packages)
|
||||
{
|
||||
m_Packages = packages;
|
||||
foreach (var view in PackageViews)
|
||||
{
|
||||
view.RemoveFromHierarchy();
|
||||
}
|
||||
|
||||
SetVisible(ContainerRoot, packages.Count > 0);
|
||||
|
||||
for (var index = 0; index < packages.Count; index++)
|
||||
{
|
||||
var feature = packages[index];
|
||||
if (PackageViews.Count <= index)
|
||||
ContainerRoot.Add(new RecommendationItemView(isRadio: false));
|
||||
|
||||
var view = PackageViews[index];
|
||||
view.UpdateData(feature);
|
||||
view.OnUserChangedSelection -= OnSelectionChanged;
|
||||
view.OnUserChangedSelection += OnSelectionChanged;
|
||||
|
||||
// Todo: remove dirty hack to select multiplayer sdk for distributed authority.
|
||||
// i tried to put it as mainPackage but it currently is not really supported, to have a main package that is an optional package
|
||||
// in another hostingmodel choice. It caused issues with analytics.
|
||||
if (this is HostingModelSelectionView)
|
||||
{
|
||||
if (feature.PackageId == "com.unity.services.multiplayer")
|
||||
{
|
||||
view.SetCheckboxEnabled(false);
|
||||
view.SetIsSelected(true);
|
||||
view.SetRecommendedBadgeVisible(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void OnSelectionChanged(RecommendationItemView view, bool isSelected)
|
||||
{
|
||||
var featureToSet = RecommendationUtils.FindRecommendedPackageViewById(m_Packages, view.FeatureId);
|
||||
|
||||
if (featureToSet == null)
|
||||
{
|
||||
Debug.LogError($"Feature {view.FeatureId} not found");
|
||||
return;
|
||||
}
|
||||
featureToSet.Selected = isSelected;
|
||||
OnPackageSelectionChanged?.Invoke();
|
||||
}
|
||||
|
||||
protected static void SetVisible(VisualElement element, bool visible)
|
||||
{
|
||||
element.style.display = visible ? DisplayStyle.Flex : DisplayStyle.None;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5262b119dc3e4259a40e6d93c8ea1048
|
||||
timeCreated: 1700052102
|
||||
@@ -0,0 +1,241 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Unity.Multiplayer.Center.Recommendations;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace Unity.Multiplayer.Center.Window.UI.RecommendationView
|
||||
{
|
||||
/// <summary>
|
||||
/// View to show one option to the user
|
||||
/// Option can be shown as a radio button or as a checkbox.
|
||||
/// </summary>
|
||||
internal class RecommendationItemView : VisualElement
|
||||
{
|
||||
string m_DocsUrl;
|
||||
|
||||
BaseBoolField m_RadioButton;
|
||||
Label m_PackageNameLabel = new();
|
||||
Label m_Catchphrase = new();
|
||||
RecommendationBadge m_RecommendedBadge;
|
||||
PreReleaseBadge m_PreReleaseBadge;
|
||||
Image m_PackageManagerIcon;
|
||||
Image m_HelpIcon;
|
||||
Image m_InstalledIcon;
|
||||
|
||||
/// <summary>
|
||||
/// Feature Id stores a unique identifier that identifies the feature.
|
||||
/// Usually this is the title of the solution or the package id.
|
||||
/// </summary>
|
||||
public string FeatureId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Triggered when the user changes the selection.
|
||||
/// </summary>
|
||||
public Action<RecommendationItemView, bool> OnUserChangedSelection;
|
||||
|
||||
public RecommendationItemView(bool isRadio = true)
|
||||
{
|
||||
AddToClassList("recommendation-item");
|
||||
|
||||
var topContainer = new VisualElement();
|
||||
topContainer.name = "header";
|
||||
|
||||
m_RadioButton = isRadio ? new RadioButton() : new Toggle();
|
||||
m_RadioButton.RegisterValueChangedCallback(evt =>
|
||||
{
|
||||
if (OnUserChangedSelection != null)
|
||||
OnUserChangedSelection(this, evt.newValue);
|
||||
});
|
||||
|
||||
var topContainerLeft = new VisualElement();
|
||||
m_RecommendedBadge = new RecommendationBadge();
|
||||
m_PreReleaseBadge = new PreReleaseBadge();
|
||||
|
||||
m_InstalledIcon = new Image() { name = "icon-package-installed" };
|
||||
m_InstalledIcon.AddToClassList("icon");
|
||||
m_InstalledIcon.AddToClassList("icon-package-installed");
|
||||
m_InstalledIcon.tooltip = "Package is installed";
|
||||
|
||||
topContainerLeft.Add(m_RadioButton);
|
||||
topContainerLeft.Add(m_PackageNameLabel);
|
||||
topContainerLeft.Add(m_RecommendedBadge);
|
||||
topContainerLeft.Add(m_PreReleaseBadge);
|
||||
|
||||
topContainerLeft.Add(m_InstalledIcon);
|
||||
topContainerLeft.AddToClassList("recommendation-item-top-left-container");
|
||||
topContainer.Add(topContainerLeft);
|
||||
|
||||
var topContainerRight = new VisualElement();
|
||||
topContainerRight.AddToClassList("recommendation-item-top-right-container");
|
||||
|
||||
m_HelpIcon = new Image() { name = "info-icon"};
|
||||
m_HelpIcon.AddToClassList("icon");
|
||||
m_HelpIcon.AddToClassList("icon-questionmark");
|
||||
m_HelpIcon.tooltip = "Open documentation";
|
||||
m_HelpIcon.RegisterCallback<ClickEvent>(OpenInBrowser);
|
||||
topContainerRight.Add(m_HelpIcon);
|
||||
|
||||
m_PackageManagerIcon = new Image() { name = "package-manager-icon" };
|
||||
m_PackageManagerIcon.AddToClassList("icon");
|
||||
m_PackageManagerIcon.AddToClassList("icon-package-manager");
|
||||
m_PackageManagerIcon.tooltip = "Open Package Manager";
|
||||
m_PackageManagerIcon.RegisterCallback<ClickEvent>(_ => PackageManagement.OpenPackageManager(FeatureId));
|
||||
topContainerRight.Add(m_PackageManagerIcon);
|
||||
|
||||
topContainer.Add(topContainerRight);
|
||||
Add(topContainer);
|
||||
|
||||
var bottomContainer = new VisualElement();
|
||||
bottomContainer.Add(m_Catchphrase);
|
||||
bottomContainer.name = "sub-info-text";
|
||||
Add(bottomContainer);
|
||||
}
|
||||
|
||||
public void UpdateData(RecommendedPackageViewData package)
|
||||
{
|
||||
var featureName = package.Name;
|
||||
|
||||
m_PreReleaseBadge.style.display = string.IsNullOrEmpty(package.PreReleaseVersion)? DisplayStyle.None : DisplayStyle.Flex;
|
||||
|
||||
var featureId = package.PackageId;
|
||||
FeatureId = featureId;
|
||||
|
||||
SetFeatureName(featureName);
|
||||
SetIsSelected(package.Selected);
|
||||
SetRecommendationType(package.RecommendationType);
|
||||
SetReasonText(package.Reason);
|
||||
SetDocUrl(package.DocsUrl);
|
||||
SetCatchPhrase(package.ShortDescription);
|
||||
SetupInstalledIcon(package, featureId);
|
||||
SetupPackageManagerIcon(featureId);
|
||||
}
|
||||
|
||||
void SetupPackageManagerIcon(string featureId)
|
||||
{
|
||||
m_PackageManagerIcon.SetEnabled(!string.IsNullOrEmpty(featureId));
|
||||
}
|
||||
|
||||
internal void SetIsSelected(bool value)
|
||||
{
|
||||
m_RadioButton.SetValueWithoutNotify(value);
|
||||
}
|
||||
|
||||
internal void SetCheckboxEnabled(bool value)
|
||||
{
|
||||
m_RadioButton.SetEnabled(value);
|
||||
}
|
||||
|
||||
void SetupInstalledIcon(RecommendedItemViewData item, string featureId)
|
||||
{
|
||||
if (!item.IsInstalledAsProjectDependency)
|
||||
{
|
||||
m_InstalledIcon.style.display = DisplayStyle.None;
|
||||
return;
|
||||
}
|
||||
|
||||
m_InstalledIcon.style.display = DisplayStyle.Flex;
|
||||
m_InstalledIcon.tooltip = $"Installed version: {item.InstalledVersion}\nClick to open Package Manager";
|
||||
}
|
||||
|
||||
void SetFeatureName(string value)
|
||||
{
|
||||
m_PackageNameLabel.text = value;
|
||||
}
|
||||
|
||||
void SetRecommendationType(RecommendationType value)
|
||||
{
|
||||
m_RecommendedBadge.SetRecommendationType(value);
|
||||
m_RadioButton.SetEnabled(true);
|
||||
style.opacity = 1f;
|
||||
if (!value.IsInstallableAsDirectDependency())
|
||||
{
|
||||
style.opacity = 0.8f;
|
||||
m_RadioButton.SetEnabled(false);
|
||||
m_RadioButton.SetValueWithoutNotify(false);
|
||||
}
|
||||
}
|
||||
|
||||
public void SetRecommendedBadgeVisible(bool value)
|
||||
{
|
||||
m_RecommendedBadge.style.display = value ? DisplayStyle.Flex : DisplayStyle.None;
|
||||
}
|
||||
|
||||
void SetReasonText(string value)
|
||||
{
|
||||
m_PackageNameLabel.tooltip = value;
|
||||
m_RecommendedBadge.tooltip = value;
|
||||
}
|
||||
|
||||
void SetCatchPhrase(string value)
|
||||
{
|
||||
m_Catchphrase.text = value;
|
||||
|
||||
// Deleted the reason text for now
|
||||
m_Catchphrase.style.display = DisplayStyle.Flex;
|
||||
if (string.IsNullOrEmpty(value))
|
||||
m_Catchphrase.style.display = DisplayStyle.None;
|
||||
}
|
||||
|
||||
void SetDocUrl(string url)
|
||||
{
|
||||
m_DocsUrl = url;
|
||||
m_HelpIcon.SetEnabled(!string.IsNullOrEmpty(url));
|
||||
}
|
||||
|
||||
void OpenInBrowser(ClickEvent evt)
|
||||
{
|
||||
// For a better solution look at PackageLinkButton.cs in PackageManagerUI, there seems to be a version with analytics etc.
|
||||
Application.OpenURL(m_DocsUrl);
|
||||
}
|
||||
}
|
||||
|
||||
internal class RecommendationBadge : Label
|
||||
{
|
||||
List<string> m_PossibleLabelStyles = new ()
|
||||
{
|
||||
"color-grey",
|
||||
"color-recommendation-badge",
|
||||
};
|
||||
|
||||
public void SetRecommendationType(RecommendationType value)
|
||||
{
|
||||
style.display = DisplayStyle.Flex;
|
||||
m_PossibleLabelStyles.ForEach(RemoveFromClassList);
|
||||
switch (value)
|
||||
{
|
||||
case RecommendationType.NetcodeFeatured or
|
||||
RecommendationType.HostingFeatured or
|
||||
RecommendationType.OptionalStandard:
|
||||
AddToClassList("color-recommendation-badge");
|
||||
text = "Recommended";
|
||||
break;
|
||||
case RecommendationType.NotRecommended:
|
||||
AddToClassList("color-grey");
|
||||
text = "Not Recommended";
|
||||
break;
|
||||
case RecommendationType.Incompatible:
|
||||
AddToClassList("color-grey");
|
||||
text = "Incompatible";
|
||||
break;
|
||||
default:
|
||||
style.display = DisplayStyle.None;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public RecommendationBadge()
|
||||
{
|
||||
AddToClassList("badge");
|
||||
}
|
||||
}
|
||||
|
||||
internal class PreReleaseBadge : Label
|
||||
{
|
||||
public PreReleaseBadge() : base ("Pre")
|
||||
{
|
||||
AddToClassList("badge");
|
||||
AddToClassList("pre-release-badge");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 281e16dfc02f4a86bf924188eb96b176
|
||||
timeCreated: 1699884774
|
||||
@@ -0,0 +1,195 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Unity.Multiplayer.Center.Questionnaire;
|
||||
using Unity.Multiplayer.Center.Recommendations;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace Unity.Multiplayer.Center.Window.UI.RecommendationView
|
||||
{
|
||||
internal class RecommendationView
|
||||
{
|
||||
RecommendationViewData m_Recommendation;
|
||||
|
||||
SolutionsToRecommendedPackageViewData m_AllPackages;
|
||||
public SolutionsToRecommendedPackageViewData AllPackages
|
||||
=> m_AllPackages ??= RecommenderSystem.GetSolutionsToRecommendedPackageViewData();
|
||||
|
||||
public RecommendationViewData CurrentRecommendation => m_Recommendation;
|
||||
|
||||
|
||||
public ScrollView Root { get; } = new();
|
||||
|
||||
NetcodeSelectionView m_NetcodeSelectionView = new();
|
||||
HostingModelSelectionView m_HostingModelSelectionView = new();
|
||||
RecommendedPackagesSection m_RecommendedPackagesSection = new();
|
||||
OtherSection m_OtherSection = new();
|
||||
VisualElement m_NoRecommendationsView;
|
||||
|
||||
VisualElement m_Content;
|
||||
|
||||
PreReleaseHandling m_PreReleaseHandling;
|
||||
|
||||
//Todo: for now check on the view but actually should be on the model
|
||||
public Action OnPackageSelectionChanged;
|
||||
|
||||
public RecommendationView()
|
||||
{
|
||||
Root.AddToClassList("recommendation-view");
|
||||
Root.horizontalScrollerVisibility = ScrollerVisibility.Hidden;
|
||||
var title = new VisualElement();
|
||||
title.Add(new Label {text = "Multiplayer Solutions and Recommendations"});
|
||||
title.AddToClassList("recommendation-view-headline");
|
||||
Root.Add(title);
|
||||
|
||||
Root.Add(m_Content = new VisualElement() {name = "recommendation-view-section-container"});
|
||||
var topContainer = new VisualElement();
|
||||
topContainer.name = "main-sections-container";
|
||||
topContainer.Add(m_NetcodeSelectionView);
|
||||
topContainer.Add(m_HostingModelSelectionView);
|
||||
m_Content.Add(topContainer);
|
||||
|
||||
m_NetcodeSelectionView.OnUserChangedSolution += OnUserChangedSolution;
|
||||
m_HostingModelSelectionView.OnUserChangedSolution += OnUserChangedSolution;
|
||||
|
||||
m_RecommendedPackagesSection.OnPackageSelectionChanged += RaisePackageSelectionChanged;
|
||||
m_HostingModelSelectionView.OnPackageSelectionChanged += RaisePackageSelectionChanged;
|
||||
m_NetcodeSelectionView.OnPackageSelectionChanged += RaisePackageSelectionChanged;
|
||||
|
||||
m_Content.Add(m_RecommendedPackagesSection);
|
||||
m_Content.Add(m_OtherSection);
|
||||
m_NoRecommendationsView = EmptyView();
|
||||
|
||||
Root.Add(m_NoRecommendationsView);
|
||||
|
||||
UpdateView(false);
|
||||
}
|
||||
|
||||
public void UpdateRecommendation(RecommendationViewData recommendation, PreReleaseHandling preReleaseHandling)
|
||||
{
|
||||
m_Recommendation = recommendation;
|
||||
m_PreReleaseHandling = preReleaseHandling;
|
||||
UpdateView(false);
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
m_NetcodeSelectionView.OnUserChangedSolution -= OnUserChangedSolution;
|
||||
m_HostingModelSelectionView.OnUserChangedSolution -= OnUserChangedSolution;
|
||||
m_RecommendedPackagesSection.OnPackageSelectionChanged -= RaisePackageSelectionChanged;
|
||||
m_HostingModelSelectionView.OnPackageSelectionChanged -= RaisePackageSelectionChanged;
|
||||
m_NetcodeSelectionView.OnPackageSelectionChanged -= RaisePackageSelectionChanged;
|
||||
|
||||
Root.Clear();
|
||||
}
|
||||
|
||||
void RaisePackageSelectionChanged()
|
||||
{
|
||||
OnPackageSelectionChanged?.Invoke();
|
||||
}
|
||||
|
||||
void OnUserChangedSolution()
|
||||
{
|
||||
UpdateView(true);
|
||||
}
|
||||
|
||||
void UpdateView(bool recordUndo)
|
||||
{
|
||||
var hideRecommendation = m_Recommendation == null;
|
||||
SetRecommendationHidden(hideRecommendation);
|
||||
|
||||
if (hideRecommendation)
|
||||
{
|
||||
OnPackageSelectionChanged?.Invoke();
|
||||
return;
|
||||
}
|
||||
|
||||
RecommenderSystem.AdaptRecommendationToNetcodeSelection(m_Recommendation);
|
||||
m_PreReleaseHandling.PatchPackages(m_Recommendation);
|
||||
|
||||
var selectedNetcode = RecommendationUtils.GetSelectedNetcode(m_Recommendation);
|
||||
var selectedHostingModel = RecommendationUtils.GetSelectedHostingModel(m_Recommendation);
|
||||
var selection = new SolutionSelection(selectedNetcode.Solution, selectedHostingModel.Solution);
|
||||
var allPackages = AllPackages.GetPackagesForSelection(selection);
|
||||
|
||||
// Debug(selection, allPackages);
|
||||
m_NetcodeSelectionView.UpdateData(m_Recommendation.NetcodeOptions,
|
||||
RecommendationUtils.FilterByType(allPackages, RecommendationType.NetcodeFeatured));
|
||||
m_HostingModelSelectionView.UpdateData(m_Recommendation.ServerArchitectureOptions,
|
||||
RecommendationUtils.FilterByType(allPackages, RecommendationType.HostingFeatured));
|
||||
m_RecommendedPackagesSection.UpdatePackageData(
|
||||
RecommendationUtils.FilterByType(allPackages, RecommendationType.OptionalStandard));
|
||||
|
||||
var otherPackages = RecommendationUtils.FilterByType(allPackages, RecommendationType.NotRecommended);
|
||||
otherPackages.AddRange(RecommendationUtils.FilterByType(allPackages, RecommendationType.Incompatible));
|
||||
m_OtherSection.UpdatePackageData(otherPackages);
|
||||
OnPackageSelectionChanged?.Invoke();
|
||||
|
||||
UpdateUserInputObject(m_Recommendation, recordUndo);
|
||||
}
|
||||
|
||||
static void Debug(SolutionSelection selection, List<RecommendedPackageViewData> allPackages)
|
||||
{
|
||||
UnityEngine.Debug.Log("/////////////////////////////////////// " + selection);
|
||||
foreach (var pack in allPackages)
|
||||
{
|
||||
UnityEngine.Debug.Log(pack.Name + " " + pack.RecommendationType);
|
||||
}
|
||||
}
|
||||
|
||||
void SetRecommendationHidden(bool hideRecommendation)
|
||||
{
|
||||
var flex = new StyleEnum<DisplayStyle>(DisplayStyle.Flex);
|
||||
var none = new StyleEnum<DisplayStyle>(DisplayStyle.None);
|
||||
m_Content.style.display = hideRecommendation ? none : flex;
|
||||
m_NoRecommendationsView.style.display = hideRecommendation ? flex : none;
|
||||
|
||||
// To show the EmptyView in the center, we have to change the behavior of the scroll view container.
|
||||
Root.Q<VisualElement>("unity-content-container").style.flexGrow = hideRecommendation ? 1 : 0;
|
||||
}
|
||||
|
||||
static void UpdateUserInputObject(RecommendationViewData recommendation, bool recordUndo)
|
||||
{
|
||||
if(recordUndo)
|
||||
Undo.RecordObject(UserChoicesObject.instance,"Selection Change");
|
||||
|
||||
var currentSelectedNetcode = UserChoicesObject.instance.SelectedSolutions.SelectedNetcodeSolution;
|
||||
foreach (var netcodeOption in recommendation.NetcodeOptions)
|
||||
{
|
||||
if (netcodeOption.Selected)
|
||||
currentSelectedNetcode = Logic.ConvertNetcodeSolution(netcodeOption);
|
||||
}
|
||||
|
||||
var selectedHostingModel = UserChoicesObject.instance.SelectedSolutions.SelectedHostingModel;
|
||||
foreach (var serverArchitectureOption in recommendation.ServerArchitectureOptions)
|
||||
{
|
||||
if (serverArchitectureOption.Selected)
|
||||
selectedHostingModel = Logic.ConvertInfrastructure(serverArchitectureOption);
|
||||
}
|
||||
|
||||
UserChoicesObject.instance.SetUserSelection(selectedHostingModel, currentSelectedNetcode);
|
||||
UserChoicesObject.instance.Save();
|
||||
}
|
||||
|
||||
static VisualElement EmptyView()
|
||||
{
|
||||
var emptyView = new VisualElement();
|
||||
emptyView.name = "empty-view";
|
||||
|
||||
var emptyViewContentContainer = new VisualElement();
|
||||
emptyViewContentContainer.name = "empty-view-content";
|
||||
var emptyViewMessage = new Label
|
||||
{
|
||||
text = "You will see your recommendations and be able to explore Unity’s multiplayer offerings here once you specify the genre of your game, and the number of players per session.",
|
||||
name = "empty-view-message"
|
||||
};
|
||||
var emptyViewIcon = new VisualElement();
|
||||
emptyViewIcon.name = "empty-view-icon";
|
||||
emptyViewContentContainer.Add(emptyViewIcon);
|
||||
emptyViewContentContainer.Add(emptyViewMessage);
|
||||
emptyView.Add(emptyViewContentContainer);
|
||||
return emptyView;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a2c71c02b50345e99168bda191ec01b4
|
||||
timeCreated: 1695734857
|
||||
@@ -0,0 +1,91 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Unity.Multiplayer.Center.Recommendations;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace Unity.Multiplayer.Center.Window.UI.RecommendationView
|
||||
{
|
||||
internal class SectionHeader : VisualElement
|
||||
{
|
||||
readonly DropdownField m_MainDropdown;
|
||||
readonly Label m_MainPackageDescription;
|
||||
readonly VisualElement m_PosterImageIcon;
|
||||
public event Action OnSolutionSelected;
|
||||
const string k_ItemIsRecommendedAppend = " - Recommended";
|
||||
|
||||
RecommendedSolutionViewData[] m_Solutions;
|
||||
|
||||
public SectionHeader(string headlineLabel)
|
||||
{
|
||||
var posterImageContainer = new VisualElement(){name = "card-poster-image"};
|
||||
m_PosterImageIcon = new VisualElement();
|
||||
posterImageContainer.Add(m_PosterImageIcon);
|
||||
|
||||
m_MainDropdown = new DropdownField();
|
||||
m_MainPackageDescription = new Label();
|
||||
var headline = new Label(){text = headlineLabel, name = "card-headline"};
|
||||
Add(posterImageContainer);
|
||||
Add(headline);
|
||||
Add(m_MainDropdown);
|
||||
Add(m_MainPackageDescription);
|
||||
m_MainDropdown.RegisterValueChangedCallback(OnItemSelected);
|
||||
}
|
||||
|
||||
public void UpdateData(RecommendedSolutionViewData[] availableSolutions)
|
||||
{
|
||||
m_Solutions = availableSolutions;
|
||||
m_MainDropdown.choices = GenerateChoices(availableSolutions, out var selectedSolution, out var solutionTitleWithAppend);
|
||||
var iconClass = "icon-" + selectedSolution.Solution;
|
||||
m_PosterImageIcon.ClearClassList();
|
||||
m_PosterImageIcon.AddToClassList(iconClass);
|
||||
m_MainDropdown.SetValueWithoutNotify(solutionTitleWithAppend);
|
||||
m_MainPackageDescription.text = selectedSolution.Reason;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns a list of choices for the dropdown and appends k_ItemIsRecommendedAppend to the recommended choice.
|
||||
/// </summary>
|
||||
/// <param name="availableSolutions">All available Solutions</param>
|
||||
/// <param name="selectedSolution"> The solution that is selected.</param>
|
||||
/// <param name="selectedSolutionTitleAppended">The title of the selection solution with appended k_ItemIsRecommendedAppend</param>
|
||||
/// <returns>List of Choices to be used with Dropdown</returns>
|
||||
static List<string> GenerateChoices(RecommendedSolutionViewData[] availableSolutions, out RecommendedSolutionViewData selectedSolution, out string selectedSolutionTitleAppended)
|
||||
{
|
||||
var choices = new List<string>(availableSolutions.Length);
|
||||
selectedSolutionTitleAppended = null;
|
||||
selectedSolution = null;
|
||||
|
||||
foreach (var sol in availableSolutions)
|
||||
{
|
||||
if(sol.RecommendationType == RecommendationType.Incompatible)
|
||||
continue;
|
||||
|
||||
var isRecommended = sol.RecommendationType == RecommendationType.MainArchitectureChoice;
|
||||
choices.Add(isRecommended ? sol.Title + k_ItemIsRecommendedAppend : sol.Title);
|
||||
|
||||
if (sol.Selected)
|
||||
{
|
||||
selectedSolutionTitleAppended = choices[^1];
|
||||
selectedSolution = sol;
|
||||
}
|
||||
}
|
||||
|
||||
return choices;
|
||||
}
|
||||
|
||||
static string RemoveRecommendationString(string choice)
|
||||
{
|
||||
return choice.Replace(k_ItemIsRecommendedAppend, "");
|
||||
}
|
||||
|
||||
void OnItemSelected(ChangeEvent<string> evt)
|
||||
{
|
||||
foreach (var solution in m_Solutions)
|
||||
{
|
||||
solution.Selected = RemoveRecommendationString(evt.newValue) == solution.Title;
|
||||
}
|
||||
OnSolutionSelected?.Invoke();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 63314900d81e4a15814496af1889cb51
|
||||
timeCreated: 1715784884
|
||||
@@ -0,0 +1,73 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Unity.Multiplayer.Center.Recommendations;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace Unity.Multiplayer.Center.Window.UI.RecommendationView
|
||||
{
|
||||
internal class NetcodeSelectionView : SolutionSelectionView
|
||||
{
|
||||
public NetcodeSelectionView() : base("Netcode Solution") {}
|
||||
}
|
||||
|
||||
internal class HostingModelSelectionView : SolutionSelectionView
|
||||
{
|
||||
public HostingModelSelectionView() : base("Hosting Model") {}
|
||||
}
|
||||
|
||||
internal class SolutionSelectionView : PackageSelectionView
|
||||
{
|
||||
readonly SectionHeader m_Header;
|
||||
readonly Label m_AssociatedFeaturesHeader;
|
||||
readonly RecommendationItemView m_MainHostingModelItem;
|
||||
readonly VisualElement m_ContainerRoot;
|
||||
readonly HelpBox m_Warning;
|
||||
|
||||
protected override VisualElement ContainerRoot => m_ContainerRoot;
|
||||
|
||||
/// <summary>
|
||||
/// Gets fired when the user changes the solution.
|
||||
/// </summary>
|
||||
public event Action OnUserChangedSolution;
|
||||
|
||||
protected SolutionSelectionView(string title)
|
||||
{
|
||||
AddToClassList("main-section");
|
||||
m_Header = new SectionHeader(title);
|
||||
Add(m_Header);
|
||||
m_AssociatedFeaturesHeader = new Label() { text = "Associated Packages", name = "associated-features-headline" };
|
||||
Add(m_AssociatedFeaturesHeader);
|
||||
m_MainHostingModelItem = new RecommendationItemView(isRadio: false);
|
||||
Add(m_MainHostingModelItem);
|
||||
m_Header.OnSolutionSelected += () => OnUserChangedSolution?.Invoke();
|
||||
m_ContainerRoot = new VisualElement();
|
||||
Add(m_ContainerRoot);
|
||||
m_Warning = new HelpBox(null, HelpBoxMessageType.Info);
|
||||
Add(m_Warning);
|
||||
SetVisible(m_Warning, false);
|
||||
}
|
||||
|
||||
public void UpdateData(RecommendedSolutionViewData[] availableSolutions, List<RecommendedPackageViewData> allPackages)
|
||||
{
|
||||
m_Header.UpdateData(availableSolutions);
|
||||
var selectedSolution = RecommendationUtils.GetSelectedSolution(availableSolutions);
|
||||
UpdateMainPackageView(selectedSolution);
|
||||
UpdatePackageData(allPackages);
|
||||
SetVisible(m_AssociatedFeaturesHeader, allPackages.Count > 0 || selectedSolution.MainPackage != null);
|
||||
}
|
||||
|
||||
void UpdateMainPackageView(RecommendedSolutionViewData selectedSolution)
|
||||
{
|
||||
var hasMainPackage = selectedSolution.MainPackage != null;
|
||||
m_Warning.text = selectedSolution.WarningString;
|
||||
SetVisible(m_Warning, !string.IsNullOrEmpty(selectedSolution.WarningString));
|
||||
SetVisible(m_MainHostingModelItem, hasMainPackage);
|
||||
if (!hasMainPackage) return;
|
||||
|
||||
m_MainHostingModelItem.UpdateData(selectedSolution.MainPackage);
|
||||
m_MainHostingModelItem.SetIsSelected(true);
|
||||
m_MainHostingModelItem.SetCheckboxEnabled(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f1e4f3f59aa446bfb097357fa8ad4a8b
|
||||
timeCreated: 1700052553
|
||||
@@ -0,0 +1,39 @@
|
||||
namespace Unity.Multiplayer.Center.Window.UI
|
||||
{
|
||||
/// <summary>
|
||||
/// Style common to the multiplayer center, excepted for the getting started tab (which needs shared style)
|
||||
/// </summary>
|
||||
internal static class StyleClasses
|
||||
{
|
||||
/// <summary> Game spec standard question </summary>
|
||||
public const string QuestionView = "question-view";
|
||||
|
||||
/// <summary> Game spec mandatory question, highlighted </summary>
|
||||
public const string MandatoryQuestion = "mandatory-question";
|
||||
|
||||
/// <summary> Description of game spec section </summary>
|
||||
public const string QuestionText = "question-text";
|
||||
|
||||
/// <summary> Part of game spec questionnaire that contains several questions </summary>
|
||||
public const string QuestionSection = "question-section";
|
||||
|
||||
/// <summary> Part of game spec questionnaire that contains several questions </summary>
|
||||
public const string QuestionSectionNoScrollbar = "question-section__no-scrollbar";
|
||||
|
||||
/// <summary> Thicker button to go to a next step; e.g. Install packages </summary>
|
||||
public const string NextStepButton = "next-step-button";
|
||||
|
||||
/// <summary> The splitview that is used in Recommendation and Getting Started Tab </summary>
|
||||
public const string MainSplitView = "main-split-view";
|
||||
|
||||
/// <summary> The right container of the main split view </summary>
|
||||
public const string MainSplitViewRight = "main-split-view-right";
|
||||
|
||||
/// <summary> The left container of the main split view </summary>
|
||||
public const string MainSplitViewLeft = "main-split-view-left";
|
||||
|
||||
/// <summary> The style for the Headline that is used in the main views </summary>
|
||||
public const string ViewHeadline = "view-headline";
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1c3db2c484234a94a19c3acdc2539575
|
||||
timeCreated: 1711099580
|
||||
@@ -0,0 +1,18 @@
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace Unity.Multiplayer.Center.Window.UI
|
||||
{
|
||||
internal static class ViewUtils
|
||||
{
|
||||
public static void MoveToggleLeft(BaseBoolField button)
|
||||
{
|
||||
var label = button.Q<Label>();
|
||||
button.Insert(button.childCount - 1, label);
|
||||
// equivalent to button.Children.First()
|
||||
using var iterator = button.Children().GetEnumerator();
|
||||
iterator.MoveNext();
|
||||
var first = iterator.Current;
|
||||
first.style.flexGrow = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0d9328c739784454ad03d404f395a0ab
|
||||
timeCreated: 1696599634
|
||||
@@ -0,0 +1,24 @@
|
||||
/*
|
||||
* CSS variables specific to dark mode (pro skin)
|
||||
*/
|
||||
:root {
|
||||
--package-icon: url('Icons/d_Package.png');
|
||||
--questionnaire-icon: url('Icons/d_Questionnaire.png');
|
||||
--package-manager-icon: url('Icons/d_PackageManager.png');
|
||||
--package-installed-icon: url('Icons/d_PackageInstalled.png');
|
||||
--info-icon: resource('d__Help');
|
||||
--comment-color: dimgrey;
|
||||
--highlight-background-color: #2a2a2a;
|
||||
--colors-incompatible-background: #FFC107;
|
||||
--recommendation-badge-color: #69E39F;
|
||||
--card-poster-image-bg-color: #222222;
|
||||
--theme-slider-background-color:#5E5E5E; /* From Default common dark uss */
|
||||
--badge-color-grey:#C4C4C4; /* From Default common dark uss, feedback color */
|
||||
--pre-release-badge-color: #FFC107;
|
||||
--pre-release-badge-color-bg: #1D1E1F;
|
||||
--link-color: var(--unity-colors-label-text-focus);
|
||||
--tab-button-highlight-color: #DEDEDE;
|
||||
--onboarding-button-selected-text-color: #EEEEEE;
|
||||
--three-dot-icon: resource("UIBuilderPackageResources/Icons/Dark/Inspector/Status/Settings.png");
|
||||
--spinner-icon-big: url('Icons/d_Loading.png');
|
||||
}
|
||||