修改设置界面

This commit is contained in:
2026-02-01 20:29:16 +08:00
parent 8a6ba7c514
commit e05561ff43
560 changed files with 1581 additions and 1187 deletions

View File

@@ -73,6 +73,21 @@ MonoBehaviour:
- {fileID: 102900000, guid: 064d656ec28baec4e984e51d3b9b7fc3, type: 3}
FilterEnum: 0
Filter: '*'
- Path: Assets/ResRaw/Fgui/Common/Common_atlas_mbu9ye.png
Address: UI/Common_atlas_mbu9ye
Type: Texture2D
Bundle: main/ui.bundle
Tags:
Group:
Name: UI
Enable: 1
BundleMode: 0
AddressMode: 2
Tags:
Collectors:
- {fileID: 102900000, guid: 064d656ec28baec4e984e51d3b9b7fc3, type: 3}
FilterEnum: 0
Filter: '*'
- Path: Assets/ResRaw/Fgui/Common/Common_fui.bytes
Address: UI/Common_fui
Type: TextAsset
@@ -22815,8 +22830,8 @@ MonoBehaviour:
Filter: '*'
Bundles:
- Name: main/ui.bundle
Hash: c96a5ac655b07d1e085439236fe63968
Size: 6556310
Hash: a6d6be8890d773594b4e6a1d4acf82d3
Size: 7664301
Assets:
- Path: Assets/ResRaw/Fgui/Common/Common_atlas0.png
Address: UI/Common_atlas0
@@ -22878,6 +22893,21 @@ MonoBehaviour:
- {fileID: 102900000, guid: 064d656ec28baec4e984e51d3b9b7fc3, type: 3}
FilterEnum: 0
Filter: '*'
- Path: Assets/ResRaw/Fgui/Common/Common_atlas_mbu9ye.png
Address: UI/Common_atlas_mbu9ye
Type: Texture2D
Bundle: main/ui.bundle
Tags:
Group:
Name: UI
Enable: 1
BundleMode: 0
AddressMode: 2
Tags:
Collectors:
- {fileID: 102900000, guid: 064d656ec28baec4e984e51d3b9b7fc3, type: 3}
FilterEnum: 0
Filter: '*'
- Path: Assets/ResRaw/Fgui/Common/Common_fui.bytes
Address: UI/Common_fui
Type: TextAsset
@@ -23106,8 +23136,8 @@ MonoBehaviour:
Dependencies: []
Tags:
- Name: main/item.bundle
Hash: c940c1d62b2fc2adefd9488fde66d412
Size: 438276177
Hash: 768629ee5aca8558e6aff5faf8389b71
Size: 438274914
Assets:
- Path: Assets/ResRaw/gfx/baits/black_leech/black_leech.prefab
Address: Item/black_leech
@@ -40968,8 +40998,8 @@ MonoBehaviour:
Dependencies: []
Tags:
- Name: main/plyaer.bundle
Hash: e032c081ff79c687c6d4e0e0a50122cf
Size: 393869083
Hash: 44e8e09453d51e947b7f6f0034ba15d5
Size: 393873086
Assets:
- Path: Assets/ResRaw/Prefabs/chwytak/chwytak.prefab
Address: Plyaer/chwytak
@@ -41406,8 +41436,23 @@ MonoBehaviour:
- {fileID: 102900000, guid: aa3f5467c0c153642ac320466aee0ec1, type: 3}
FilterEnum: 0
Filter: '*'
- Path: Assets/ResRaw/Prefabs/Line/fishingLine.asset
Address: Plyaer/fishingLine
- Path: Assets/ResRaw/Prefabs/Line/FishingRopeLong.asset
Address: Plyaer/FishingRopeLong
Type: ObiRopeBlueprint
Bundle: main/plyaer.bundle
Tags:
Group:
Name: Plyaer
Enable: 1
BundleMode: 0
AddressMode: 2
Tags:
Collectors:
- {fileID: 102900000, guid: aa3f5467c0c153642ac320466aee0ec1, type: 3}
FilterEnum: 0
Filter: '*'
- Path: Assets/ResRaw/Prefabs/Line/FishingRopeShort.asset
Address: Plyaer/FishingRopeShort
Type: ObiRopeBlueprint
Bundle: main/plyaer.bundle
Tags:
@@ -41436,81 +41481,6 @@ MonoBehaviour:
- {fileID: 102900000, guid: aa3f5467c0c153642ac320466aee0ec1, type: 3}
FilterEnum: 0
Filter: '*'
- Path: Assets/ResRaw/Prefabs/Line/rope blueprint.asset
Address: Plyaer/rope blueprint
Type: ObiRopeBlueprint
Bundle: main/plyaer.bundle
Tags:
Group:
Name: Plyaer
Enable: 1
BundleMode: 0
AddressMode: 2
Tags:
Collectors:
- {fileID: 102900000, guid: aa3f5467c0c153642ac320466aee0ec1, type: 3}
FilterEnum: 0
Filter: '*'
- Path: Assets/ResRaw/Prefabs/Line/RopeSegment_1 1.asset
Address: Plyaer/RopeSegment_1 1
Type: ObiRopeBlueprint
Bundle: main/plyaer.bundle
Tags:
Group:
Name: Plyaer
Enable: 1
BundleMode: 0
AddressMode: 2
Tags:
Collectors:
- {fileID: 102900000, guid: aa3f5467c0c153642ac320466aee0ec1, type: 3}
FilterEnum: 0
Filter: '*'
- Path: Assets/ResRaw/Prefabs/Line/RopeSegment_1.asset
Address: Plyaer/RopeSegment_1
Type: ObiRopeBlueprint
Bundle: main/plyaer.bundle
Tags:
Group:
Name: Plyaer
Enable: 1
BundleMode: 0
AddressMode: 2
Tags:
Collectors:
- {fileID: 102900000, guid: aa3f5467c0c153642ac320466aee0ec1, type: 3}
FilterEnum: 0
Filter: '*'
- Path: Assets/ResRaw/Prefabs/Line/RopeSegment_2.asset
Address: Plyaer/RopeSegment_2
Type: ObiRopeBlueprint
Bundle: main/plyaer.bundle
Tags:
Group:
Name: Plyaer
Enable: 1
BundleMode: 0
AddressMode: 2
Tags:
Collectors:
- {fileID: 102900000, guid: aa3f5467c0c153642ac320466aee0ec1, type: 3}
FilterEnum: 0
Filter: '*'
- Path: Assets/ResRaw/Prefabs/Line/RopeSegment_3.asset
Address: Plyaer/RopeSegment_3
Type: ObiRopeBlueprint
Bundle: main/plyaer.bundle
Tags:
Group:
Name: Plyaer
Enable: 1
BundleMode: 0
AddressMode: 2
Tags:
Collectors:
- {fileID: 102900000, guid: aa3f5467c0c153642ac320466aee0ec1, type: 3}
FilterEnum: 0
Filter: '*'
- Path: Assets/ResRaw/Prefabs/Line/RopeSegment_4.asset
Address: Plyaer/RopeSegment_4
Type: ObiRopeBlueprint
@@ -41541,21 +41511,6 @@ MonoBehaviour:
- {fileID: 102900000, guid: aa3f5467c0c153642ac320466aee0ec1, type: 3}
FilterEnum: 0
Filter: '*'
- Path: Assets/ResRaw/Prefabs/Line/Tip.prefab
Address: Plyaer/Tip
Type: GameObject
Bundle: main/plyaer.bundle
Tags:
Group:
Name: Plyaer
Enable: 1
BundleMode: 0
AddressMode: 2
Tags:
Collectors:
- {fileID: 102900000, guid: aa3f5467c0c153642ac320466aee0ec1, type: 3}
FilterEnum: 0
Filter: '*'
- Path: Assets/ResRaw/Prefabs/Player/Anim/AnimationClip/CameraCrouch.anim
Address: Plyaer/CameraCrouch
Type: AnimationClip

View File

@@ -13,22 +13,19 @@ MonoBehaviour:
m_Name: example_bool_tutorialCompleted
m_EditorClassIdentifier:
serializationData:
SerializedFormat: 2
SerializedBytes:
SerializedFormat: 0
SerializedBytes: 2d010e000000520065007000610069006e0074005200650071007500650073007400
ReferencedUnityObjects: []
SerializedBytesString:
Prefab: {fileID: 0}
PrefabModificationsReferencedUnityObjects: []
PrefabModifications: []
SerializationNodes:
- Name: RepaintRequest
Entry: 6
Data:
SerializationNodes: []
TagIndex: 0
Description:
_guid: 1afe66c634254d647bce4ea62658436e
_saveGuid: 0
_value: 1
_value: 0
_debugLogEnabled: 0
_saved: 1
_defaultValue: 0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 MiB

After

Width:  |  Height:  |  Size: 971 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

@@ -0,0 +1,117 @@
fileFormatVersion: 2
guid: 91f05f7801b3e284e9bf6ec0efa4571e
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:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 452 KiB

View File

@@ -26,7 +26,7 @@ RenderSettings:
m_AmbientIntensity: 0.8050667
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.8679245, g: 0.8679245, b: 0.8679245, a: 1}
m_SkyboxMaterial: {fileID: 183935945}
m_SkyboxMaterial: {fileID: 2032963743}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
@@ -387,54 +387,6 @@ MonoBehaviour:
_MaximumSpeed: 100
_WarnOnSpeedClamp: 0
_DebugSubsteps: 0
--- !u!21 &183935945
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Enviro/Skybox
m_Shader: {fileID: 4800000, guid: 34fee0a1b19b20b45aea7483b5f757da, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _GalaxyTex:
m_Texture: {fileID: 8900000, guid: 5734983fc81450b4187c3cfa5985edef, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MoonGlowTex:
m_Texture: {fileID: 2800000, guid: 6838e0810da4e49488b5d9a6ee76eb07, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MoonTex:
m_Texture: {fileID: 2800000, guid: c6fd9f694390e0245b6dca5812065950, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _StarsTex:
m_Texture: {fileID: 8900000, guid: b5a7175da0f133b4d951c19c9c2cebfc, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SunTex:
m_Texture: {fileID: 2800000, guid: c95bed5306e94f24ba5802d841607ac7, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats: []
m_Colors: []
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!1 &211586105
GameObject:
m_ObjectHideFlags: 0
@@ -882,7 +834,7 @@ MonoBehaviour:
_Sky: 1
_DisablePixelLights: 1
_DisableShadows: 1
_HDR: 1
_HDR: 0
_Stencil: 0
_QualitySettingsOverride:
_OverrideLodBias: 0
@@ -1024,7 +976,7 @@ MonoBehaviour:
customRendering: 0
useFog: 0
bakingCam: {fileID: 0}
renderId: 11157
renderId: 2
--- !u!215 &878887029
ReflectionProbe:
m_ObjectHideFlags: 0
@@ -1487,6 +1439,54 @@ MonoBehaviour:
_MaximumSpeed: 100
_WarnOnSpeedClamp: 0
_DebugSubsteps: 0
--- !u!21 &2032963743
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Enviro/Skybox
m_Shader: {fileID: 4800000, guid: 34fee0a1b19b20b45aea7483b5f757da, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _GalaxyTex:
m_Texture: {fileID: 8900000, guid: 5734983fc81450b4187c3cfa5985edef, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MoonGlowTex:
m_Texture: {fileID: 2800000, guid: 6838e0810da4e49488b5d9a6ee76eb07, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MoonTex:
m_Texture: {fileID: 2800000, guid: c6fd9f694390e0245b6dca5812065950, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _StarsTex:
m_Texture: {fileID: 8900000, guid: b5a7175da0f133b4d951c19c9c2cebfc, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SunTex:
m_Texture: {fileID: 2800000, guid: c95bed5306e94f24ba5802d841607ac7, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats: []
m_Colors: []
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!1 &2079119365
GameObject:
m_ObjectHideFlags: 0
@@ -8216,7 +8216,6 @@ MonoBehaviour:
GearNode: {fileID: 6022323663597824692}
Water: {fileID: 0}
LineRenderer: {fileID: 0}
AzureCoreSystem: {fileID: 0}
FPS: 0
updateInterval: 0.2
--- !u!1 &7460703579491896368
@@ -8330,11 +8329,11 @@ MonoBehaviour:
Lighting: {fileID: 1121697361819163703, guid: 59da3fbf5f918234799ed9be3eb0ddba, type: 2}
Reflections: {fileID: 3003072118128753163, guid: 59da3fbf5f918234799ed9be3eb0ddba, type: 2}
Sky: {fileID: -1033463005042072443, guid: 59da3fbf5f918234799ed9be3eb0ddba, type: 2}
Fog: {fileID: 6137975383063632260, guid: 59da3fbf5f918234799ed9be3eb0ddba, type: 2}
Fog: {fileID: 0}
VolumetricClouds: {fileID: 0}
FlatClouds: {fileID: -6856645797116724545, guid: 59da3fbf5f918234799ed9be3eb0ddba, type: 2}
Weather: {fileID: -2780709178333184838, guid: 59da3fbf5f918234799ed9be3eb0ddba, type: 2}
Aurora: {fileID: 4011421771873438716, guid: 59da3fbf5f918234799ed9be3eb0ddba, type: 2}
Aurora: {fileID: 0}
Audio: {fileID: 2333546472042683326, guid: 59da3fbf5f918234799ed9be3eb0ddba, type: 2}
Effects: {fileID: -6613759932185320841, guid: 59da3fbf5f918234799ed9be3eb0ddba, type: 2}
Lightning: {fileID: 8141577898218642580, guid: 59da3fbf5f918234799ed9be3eb0ddba, type: 2}

View File

@@ -2183,8 +2183,8 @@ BlendTree:
m_CycleOffset: 0
m_DirectBlendParameter:
m_Mirror: 0
m_BlendParameter: Jump 0
m_BlendParameterY: JumpLeg
m_BlendParameter: mouthLowerDownRight
m_BlendParameterY: TH
m_MinThreshold: 0
m_MaxThreshold: 40
m_UseAutomaticThresholds: 0

View File

@@ -1629,8 +1629,8 @@ Camera:
y: 0
width: 1
height: 1
near clip plane: 0.01
far clip plane: 5000
near clip plane: 0.1
far clip plane: 3000
field of view: 60.000004
orthographic: 0
orthographic size: 5
@@ -1784,6 +1784,7 @@ GameObject:
- component: {fileID: 1341717235351337375}
- component: {fileID: 7388915548948935574}
- component: {fileID: 7388915548948935575}
- component: {fileID: 7388915548948935576}
m_Layer: 0
m_Name: Init
m_TagString: Untagged
@@ -1826,6 +1827,24 @@ MonoBehaviour:
MoveInput: {x: 0, y: 0}
EyeAngle: 0
NextState: 0
--- !u!114 &7388915548948935576
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7388915548948935573}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bb1abc98a51ad124fa638d080c051ce4, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::NBC.SoundManager
mixer: {fileID: 24100000, guid: 7a7096d3677868648abe69eb19c512c3, type: 2}
bgmGroup: {fileID: 0}
sfxGroup: {fileID: 0}
uiGroup: {fileID: 0}
ambientGroup: {fileID: 0}
playerGroup: {fileID: 0}
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0

View File

@@ -20,9 +20,8 @@ namespace NBF
[AttributeUsage(AttributeTargets.Method)]
public class UIExtensionAutoBindAttribute : BaseAttribute
{
}
[AttributeUsage(AttributeTargets.Field)]
public class InputIconAttribute : BaseAttribute
{
@@ -74,4 +73,19 @@ namespace NBF
Sort = sort;
}
}
[AttributeUsage(AttributeTargets.Method)]
public class InputInvokeAttribute : BaseAttribute
{
public string Name;
public string Key;
public bool ShowLeft;
public InputInvokeAttribute(string name, string key = "", bool showLeft = true)
{
Name = name;
Key = key;
ShowLeft = showLeft;
}
}
}

View File

@@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using NBC;
// using Rewired;
@@ -13,6 +14,12 @@ namespace NBF
GamePad = 1
}
public struct UIInputInvoke
{
public object UIObject;
public InputInvokeAttribute InputInvoke;
}
public class InputManager : MonoService<InputManager>
{
public static bool IsOp1;
@@ -237,5 +244,20 @@ namespace NBF
OnUIPerformed?.Invoke(actionName);
OnUICanceled?.Invoke(actionName);
}
#region UI界面按键管理
private readonly Dictionary<object, List<UIInputInvoke>> _panelActions =
new Dictionary<object, List<UIInputInvoke>>();
public void On(object obj)
{
}
public void Off(object obj)
{
}
#endregion
}
}

View File

@@ -7,6 +7,7 @@ namespace NBF.Setting
public interface IMultiOption : IOptionBase
{
List<string> GetOptionNames();
bool IsDropdown { get; }
}
public abstract class MultiOption<T> : OptionBase, IMultiOption
@@ -21,6 +22,8 @@ namespace NBF.Setting
public List<string> GetOptionNames() => OptionTable.GetNames();
public virtual bool IsDropdown => false;
protected void SelectOption(T value, int defaultIndex = 0)
{

View File

@@ -51,13 +51,18 @@ namespace NBF.Setting
}
public ISettings Root { get; private set; }
public void Initialize(ISettings root)
{
Root = root;
Load();
OnInitialize();
if (!PlayerPrefs.HasKey(SaveKey))
{
OnSetDefaultValue();
}
Apply();
}
@@ -85,15 +90,14 @@ namespace NBF.Setting
public virtual void Cancel()
{
}
public virtual string GetDisplayString()
{
return GetValue().ToString();
}
public virtual int GetValue()
{
return Value;
@@ -109,6 +113,11 @@ namespace NBF.Setting
{
}
protected virtual void OnSetDefaultValue()
{
Value = DefaultValue;
SaveValue = DefaultValue;
}
protected abstract void OnApply();
}

View File

@@ -1,4 +1,6 @@
using UnityEngine;
using Unity.Collections;
using System.Collections;
namespace NBF.Setting
{
@@ -20,8 +22,15 @@ namespace NBF.Setting
protected override void OnApply()
{
// Screen.fullScreenMode = GetSelectedOption();
// Debug.Log($"FullScreenMode: {Screen.fullScreenMode} value: {GetSelectedOption()}");
Screen.fullScreenMode = GetSelectedOption();
if (Screen.fullScreenMode == FullScreenMode.ExclusiveFullScreen)
{
Screen.fullScreen = true;
}
var nmsl = KeyCode.Alpha0;
Debug.Log($"FullScreenMode: {Screen.fullScreenMode} value: {GetSelectedOption()}");
}
}
}

View File

@@ -16,19 +16,84 @@ namespace NBF.Setting
public override string Group => SettingsDef.Group.Graphic;
protected override int DefaultValue => _defaultResolution;
public override string Tab => SettingsDef.Tab.Graphic;
public override bool IsDropdown => true;
static readonly (int w, int h)[] Classic16_9 =
{
(1280, 720),
(1600, 900),
(1920, 1080),
(2560, 1440),
(3840, 2160),
};
static readonly (int w, int h)[] Classic16_10 =
{
(1280, 800),
(1680, 1050),
(1920, 1200),
(2560, 1600),
};
static readonly (int w, int h)[] Classic21_9 =
{
(2560, 1080),
(3440, 1440),
(3840, 1600),
};
static readonly (int w, int h)[] Classic32_9 =
{
(3840, 1080),
(5120, 1440),
};
protected override void OnInitialize()
{
var supportedResolutions = Screen.resolutions
.GroupBy(r => $"{r.width}x{r.height}") // 按宽高分组
.Select(g => g.OrderByDescending(r => r.refreshRateRatio).First())
.ToArray();
foreach (var resolution in supportedResolutions)
var supported = Screen.resolutions
.Select(r => (r.width, r.height))
.Distinct()
.ToHashSet();
var mainWindowDisplayInfo = Screen.mainWindowDisplayInfo; // 主窗口所在显示器的信息
float aspect = (float)Screen.currentResolution.width / Screen.currentResolution.height;
bool Near(float a, float b, float eps = 0.03f) => Mathf.Abs(a - b) <= eps;
IEnumerable<(int w, int h)> preferred =
Near(aspect, 16f / 9f) ? Classic16_9 :
Near(aspect, 16f / 10f) ? Classic16_10 :
Near(aspect, 21f / 9f) ? Classic21_9 :
Near(aspect, 32f / 9f) ? Classic32_9 :
Classic16_9; // 兜底
var list = preferred.Where(supported.Contains).ToList();
// 兜底:保证原生分辨率一定在列表里(尤其是超宽屏)
var native = (Screen.currentResolution.width, Screen.currentResolution.height);
if (!list.Contains(native) && supported.Contains(native))
list.Add(native);
// 排序(从小到大或从大到小都行)
list = list.OrderBy(x => x.w * x.h).ToList();
foreach (var resolution in list)
{
if (resolution.width < 720 || resolution.height < 720) continue;
AddOption($"{resolution.width}x{resolution.height}", resolution);
Log.Info($"Resolution {resolution.width}x{resolution.height}");
var w = resolution.w;
var h = resolution.h;
if (w > mainWindowDisplayInfo.width || h > mainWindowDisplayInfo.height) continue;
AddOption($"{w}x{h}", new Resolution()
{
width = w,
height = h,
});
Log.Info($"Resolution {w}x{h}");
}
TryGetIndex(t =>
t.width == Screen.currentResolution.width && t.height == Screen.currentResolution.height,
@@ -38,7 +103,15 @@ namespace NBF.Setting
{
_defaultResolution = 0;
}
var n = Value;
var nm = SaveValue;
if (!PlayerPrefs.HasKey(SaveKey))
{
}
}
protected override void OnApply()
{

View File

@@ -10,6 +10,7 @@ namespace NBF
public string Key;
public string Icon;
public bool IsAll;
public string Name;
// 条目可以是任意对象类型
public List<object> Items = new List<object>();

View File

@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator
// version 1.14.2
// version 1.16.0
// from Assets/PlayerInputControl.inputactions
//
// Changes to this file may cause incorrect behavior and will be lost if

View File

@@ -91,6 +91,8 @@ namespace NBF
// loadAssemblies.Add(assembly);
// }
gameObject.AddComponent<Settings>();
// 1. 初始化 Fantasy 框架
await Fantasy.Platform.Unity.Entry.Initialize();
@@ -151,9 +153,6 @@ namespace NBF
private void InitUI()
{
GRoot.inst.SetContentScaleFactor(UIDef.DefaultScreen.Width, UIDef.DefaultScreen.Height,
UIContentScaler.ScreenMatchMode.MatchWidthOrHeight);
Binder.BindAll();
UIObjectFactory.SetLoaderExtension(typeof(XGLoader));
UIConst.UIPackRootUrl = UIDef.UIRoot;

View File

@@ -60,7 +60,8 @@ namespace NBF
{
// await Task.Delay(100);
CommonTopPanel.Show();
LoginPanel.Show();
SettingPanel.Show();
// LoginPanel.Show();
// PreviewPanel.Show();
}
}

View File

@@ -15,6 +15,7 @@ namespace NBF
UIObjectFactory.SetPackageItemExtension(ClassifyList.URL, typeof(ClassifyList));
UIObjectFactory.SetPackageItemExtension(CommonMenu.URL, typeof(CommonMenu));
UIObjectFactory.SetPackageItemExtension(MarqueeTag.URL, typeof(MarqueeTag));
UIObjectFactory.SetPackageItemExtension(BtnSubMenuLeft.URL, typeof(BtnSubMenuLeft));
UIObjectFactory.SetPackageItemExtension(BtnTextInputControl.URL, typeof(BtnTextInputControl));
UIObjectFactory.SetPackageItemExtension(CommonItemList.URL, typeof(CommonItemList));
UIObjectFactory.SetPackageItemExtension(BtnTitleInputControl.URL, typeof(BtnTitleInputControl));
@@ -22,6 +23,7 @@ namespace NBF
UIObjectFactory.SetPackageItemExtension(CommonSubMenu.URL, typeof(CommonSubMenu));
UIObjectFactory.SetPackageItemExtension(BtnInputControl.URL, typeof(BtnInputControl));
UIObjectFactory.SetPackageItemExtension(ListTitleItem.URL, typeof(ListTitleItem));
UIObjectFactory.SetPackageItemExtension(BtnSubMenu.URL, typeof(BtnSubMenu));
UIObjectFactory.SetPackageItemExtension(ModelViewer.URL, typeof(ModelViewer));
}
}

View File

@@ -39,7 +39,7 @@ namespace NBF
if (_panel == null) return;
if (!_panel.IsShowing) return;
if (!_panel.IsTop) return;
if (action == InputDef.UI.SubPrev)
{
OnClickBtnPrev();
@@ -57,7 +57,7 @@ namespace NBF
for (int i = 0; i < subItems.Count; i++)
{
var tabData = subItems[i];
var tabItem = List.AddItemFromPool().asButton;
var tabItem = List.AddItemFromPool(i == 0 ? BtnSubMenuLeft.URL : BtnSubMenu.URL).asButton;
tabItem.SetLanguage(tabData.Key);
width += tabItem.width;

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 21fd308a87b848d7b4a9138f06c4c5f7
timeCreated: 1769923363

View File

@@ -0,0 +1,25 @@
/**本脚本为自动生成每次生成会覆盖请勿手动修改生成插件文档及项目地址https://git.whoot.com/whoot-games/whoot.fguieditorplugin**/
using FairyGUI;
using FairyGUI.Utils;
using NBC;
namespace NBF
{
public partial class BtnSubMenu
{
public const string URL = "ui://6hgkvlauvbojxi";
public GImage back;
public override void ConstructFromXML(XML xml)
{
base.ConstructFromXML(xml);
back = (GImage)GetChild("back");
OnInited();
UILanguage.TrySetComponentLanguage(this);
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 670c4d5385c0ad741a5381d10fc7dd15

View File

@@ -0,0 +1,15 @@
// 本脚本只在不存在时会生成一次。组件逻辑写在当前脚本内。已存在不会再次生成覆盖
using UnityEngine;
using FairyGUI;
using NBC;
namespace NBF
{
public partial class BtnSubMenu : GButton
{
private void OnInited()
{
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 5b6a27e3fa4572443afc883702c768f3

View File

@@ -0,0 +1,25 @@
/**本脚本为自动生成每次生成会覆盖请勿手动修改生成插件文档及项目地址https://git.whoot.com/whoot-games/whoot.fguieditorplugin**/
using FairyGUI;
using FairyGUI.Utils;
using NBC;
namespace NBF
{
public partial class BtnSubMenuLeft
{
public const string URL = "ui://6hgkvlaumbu9y9";
public GImage back;
public override void ConstructFromXML(XML xml)
{
base.ConstructFromXML(xml);
back = (GImage)GetChild("back");
OnInited();
UILanguage.TrySetComponentLanguage(this);
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: bfb4ffee7088da54d95a349215186ba6

View File

@@ -0,0 +1,15 @@
// 本脚本只在不存在时会生成一次。组件逻辑写在当前脚本内。已存在不会再次生成覆盖
using UnityEngine;
using FairyGUI;
using NBC;
namespace NBF
{
public partial class BtnSubMenuLeft : GButton
{
private void OnInited()
{
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 5ce6cf183d4b20f4997dd9ca99797135

View File

@@ -30,13 +30,14 @@ namespace NBF
{
await LoginHelper.Login(InputAccount.text);
await Fishing.Instance.Go(RoleModel.Instance.Info.MapId);
// await Fishing.Instance.Go(RoleModel.Instance.Info.MapId);
// await MapHelper.EnterMap(mapId, role.RoomCode);
// BagPanel.Show();
// BagSlotPanel.Show();
// FishingShopPanel.Show();
SettingPanel.Show();
Del();
}

View File

@@ -11,14 +11,12 @@ namespace NBF
{
public const string URL = "ui://hxr7rc7pe9z89";
public GTextField TextName;
public GTextField TextIntroduce;
public override void ConstructFromXML(XML xml)
{
base.ConstructFromXML(xml);
TextName = (GTextField)GetChild("TextName");
TextIntroduce = (GTextField)GetChild("TextIntroduce");
OnInited();
UILanguage.TrySetComponentLanguage(this);

View File

@@ -16,10 +16,12 @@ namespace NBF
public GTextField TextName;
public GTextField TextInfo;
public GSlider Slider;
public BtnInputControl BtnPrev;
public BtnInputControl BtnNext;
public GTextField TextSliderValue;
public SelectPages Pages;
public GButton BtnPrev;
public GButton BtnNext;
public BtnInputControl BtnControl;
public GComboBox ComboBox;
public override void ConstructFromXML(XML xml)
{
@@ -30,10 +32,12 @@ namespace NBF
TextName = (GTextField)GetChild("TextName");
TextInfo = (GTextField)GetChild("TextInfo");
Slider = (GSlider)GetChild("Slider");
BtnPrev = (BtnInputControl)GetChild("BtnPrev");
BtnNext = (BtnInputControl)GetChild("BtnNext");
TextSliderValue = (GTextField)GetChild("TextSliderValue");
Pages = (SelectPages)GetChild("Pages");
BtnPrev = (GButton)GetChild("BtnPrev");
BtnNext = (GButton)GetChild("BtnNext");
BtnControl = (BtnInputControl)GetChild("BtnControl");
ComboBox = (GComboBox)GetChild("ComboBox");
OnInited();
UILanguage.TrySetComponentLanguage(this);
}

View File

@@ -16,6 +16,7 @@ namespace NBF
BtnPrev.onClick.Set(OnPrev);
BtnNext.onClick.Set(OnNext);
Slider.onChanged.Set(OnSliderChanged);
ComboBox.onChanged.Set(OnComboBoxChanged);
}
public void SetData(OptionBase option)
@@ -24,18 +25,34 @@ namespace NBF
if (option is IMultiOption multiOption)
{
style.selectedIndex = 0;
if (multiOption.IsDropdown)
{
style.selectedIndex = 2;
if (multiOption.IsDropdown)
{
ComboBox.items = multiOption.GetOptionNames().ToArray();
ComboBox.selectedIndex = multiOption.GetValue();
}
}
else
{
style.selectedIndex = 1;
}
}
else if (option is RangeOption range)
{
style.selectedIndex = 1;
style.selectedIndex = 3; //进度类型
Slider.min = range.MinValue;
Slider.max = range.MaxValue;
Slider.wholeNumbers = true;
}
else if (option is KeyBoardOption keyBoardOption)
{
style.selectedIndex = 2;
style.selectedIndex = 4; //按键类型
}
else
{
style.selectedIndex = 0;
}
TextName.SetLanguage(Option.Name);
@@ -65,7 +82,8 @@ namespace NBF
if (Option is ResolutionSetting resolutionSetting)
{
var res = Screen.resolutions;
Debug.LogError($"next index={index} count = {multiOption.GetOptionNames().Count} res={res.Length}");
Debug.LogError(
$"next index={index} count = {multiOption.GetOptionNames().Count} res={res.Length}");
}
multiOption.SetValue(index);
@@ -137,6 +155,15 @@ namespace NBF
}
}
private void OnComboBoxChanged()
{
Debug.Log(ComboBox.selectedIndex);
if (Option is IMultiOption multiOption)
{
multiOption.SetValue(ComboBox.selectedIndex);
}
}
private void UpdateValueText()
{
Pages.visible = false;

View File

@@ -14,16 +14,14 @@ namespace NBF
public override string UIPackName => "Main";
public override string UIResName => "SettingPanel";
[AutoFind(Name = "Menu")]
public CommonMenu Menu;
[AutoFind(Name = "MenuList")]
public CommonSubMenu MenuList;
[AutoFind(Name = "Introduce")]
public IntroduceTag Introduce;
[AutoFind(Name = "List")]
public GList List;
[AutoFind(Name = "BottomMenu")]
public BottomMenu BottomMenu;
[AutoFind(Name = "BottomLine")]
public GImage BottomLine;
[AutoFind(Name = "Mask")]
public GLabel Mask;
[AutoFind(Name = "InputWait")]

View File

@@ -23,27 +23,28 @@ namespace NBF
base.OnInit();
IsShowCursor = true;
IsDontBack = true;
//TEXT_SETTINGS_
var groupNames = Settings.Instance.GetAllTabs();
foreach (var group in groupNames)
{
var tab = new TabItemData
{
Key = $"TEXT_SETTINGS_{group}"
Key = $"TEXT_SETTINGS_{group}",
Name = group
};
tabList.Add(tab);
}
Menu.OnTabChange += ChangeTab;
MenuList.OnTabChange += ChangeTab;
List.onClickItem.Set(OnClickListItem);
}
protected override void OnShow()
{
InputManager.Instance.Off(this);
Settings.Instance.LoadAllSettings();
InputManager.OnUICanceled += OnUICanceled;
Menu.SetTabs(tabList);
MenuList.SetTabs(tabList);
UseBottomMenu();
}
@@ -52,7 +53,7 @@ namespace NBF
if (index < 0) return;
Log.Info($"Change tab index={index}");
var tabListData = tabList[index];
_currentTab = tabListData.Key;
_currentTab = tabListData.Name;
ResetSettingList();
}
@@ -82,35 +83,29 @@ namespace NBF
var url = UIPackage.GetItemURL(UIPackName, "SettingSubTitleItem");
var groupIndex = 0;
foreach (var key in groupOptions.Keys)
{
var value = groupOptions[key];
if (List.AddItemFromPool(url) is GLabel label)
if (groupIndex > 0)
{
label.SetLanguage(key);
if (List.AddItemFromPool(url) is GLabel label)
{
label.SetLanguage(key);
}
}
foreach (var option in value)
{
if (option is InputOption)
if (List.AddItemFromPool() is SettingItem item)
{
if (List.AddItemFromPool(SettingInputItem.URL) is SettingInputItem item)
{
item.SetData(option as InputOption);
var index = List.GetChildIndex(item);
_canSelectIndex.Add(index);
}
}
else
{
if (List.AddItemFromPool() is SettingItem item)
{
item.SetData(option);
var index = List.GetChildIndex(item);
_canSelectIndex.Add(index);
}
item.SetData(option);
var index = List.GetChildIndex(item);
_canSelectIndex.Add(index);
}
}
groupIndex++;
}
}
@@ -119,16 +114,6 @@ namespace NBF
BottomMenu.Use(this);
}
private void OnApplySettings()
{
var options = Settings.Instance.GetOptionsByTab(_currentTab);
Log.Info("OnApplySettings");
foreach (var option in options)
{
option.Apply();
}
Notices.Success("TEXT_OP_SUCCESS");
}
private void OnResetSettings()
{
@@ -138,51 +123,10 @@ namespace NBF
{
option.Reset();
}
ResetSettingList();
Notices.Success("TEXT_OP_SUCCESS");
}
private void OnUICanceled(string action)
{
if (action == InputDef.UI.SubPrev)
{
if (List.GetChildAt(List.selectedIndex) is SettingItem item)
{
item.OnPrev();
}
}
else if (action == InputDef.UI.SubNext)
{
if (List.GetChildAt(List.selectedIndex) is SettingItem item)
{
item.OnNext();
}
}
else if (action == InputDef.UI.Up)
{
ChangeListSelected();
}
else if (action == InputDef.UI.Down)
{
ChangeListSelected(false);
}
else if (action == InputDef.UI.Back)
{
OnBack();
}
else if (action == InputDef.UI.Enter)
{
OnApplySettings();
}
else if (action == InputDef.UI.Reset)
{
MessageBox.Show("是否重置为默认?", (ret) =>
{
if (ret) OnResetSettings();
});
}
ResetSettingList();
Notices.Success("TEXT_OP_SUCCESS");
}
@@ -225,12 +169,62 @@ namespace NBF
var settingItem = List.GetChildAt(index);
if (settingItem is SettingItem item)
{
Introduce.TextName.SetLanguage(item.Option.Name);
// Introduce.TextName.SetLanguage(item.Option.Name);
Introduce.TextIntroduce.SetLanguage(item.Option.Name);
// Introduce.
}
}
private void CancelAndBack()
{
var groupNames = Settings.Instance.GetAllTabs();
foreach (var group in groupNames)
{
var options = Settings.Instance.GetOptionsByTab(group);
foreach (var option in options)
{
if (option.HaveNotApple())
{
option.Cancel();
}
}
}
}
#region Input Evnet
[InputInvoke(InputDef.UI.SubPrev)]
private void OnSubPrev()
{
if (List.GetChildAt(List.selectedIndex) is SettingItem item)
{
item.OnPrev();
}
}
[InputInvoke(InputDef.UI.SubNext)]
private void OnSubNext()
{
if (List.GetChildAt(List.selectedIndex) is SettingItem item)
{
item.OnNext();
}
}
[InputInvoke(InputDef.UI.Up)]
private void OnUp()
{
ChangeListSelected();
}
[InputInvoke(InputDef.UI.Down)]
private void OnDown()
{
ChangeListSelected(false);
}
[InputInvoke(InputDef.UI.Back)]
private void OnBack()
{
if (Settings.Instance.HaveNotAppleSettings())
@@ -250,33 +244,40 @@ namespace NBF
}
}
private void CancelAndBack()
[InputInvoke(InputDef.UI.Enter)]
private void OnApplySettings()
{
var groupNames = Settings.Instance.GetAllTabs();
foreach (var group in groupNames)
var options = Settings.Instance.GetOptionsByTab(_currentTab);
Log.Info("OnApplySettings");
foreach (var option in options)
{
var options = Settings.Instance.GetOptionsByTab(group);
foreach (var option in options)
{
if (option.HaveNotApple())
{
option.Cancel();
}
}
option.Apply();
}
Notices.Success("TEXT_OP_SUCCESS");
}
[InputInvoke(InputDef.UI.Reset)]
private void OnReset()
{
MessageBox.Show("是否重置为默认?", (ret) =>
{
if (ret) OnResetSettings();
});
}
#endregion
protected override void OnHide()
{
base.OnHide();
InputManager.OnUICanceled -= OnUICanceled;
InputManager.Instance.Off(this);
}
protected override void OnDestroy()
{
base.OnDestroy();
Menu.OnTabChange -= ChangeTab;
MenuList.OnTabChange -= ChangeTab;
}
}
}

View File

@@ -25,7 +25,7 @@ MonoBehaviour:
m_SupportsTerrainHoles: 1
m_SupportsHDR: 1
m_HDRColorBufferPrecision: 0
m_MSAA: 8
m_MSAA: 2
m_RenderScale: 1
m_UpscalingFilter: 0
m_FsrOverrideSharpness: 0