修复阵容选择错误,漫画优化入版
This commit is contained in:
parent
c6807f9c66
commit
d51decf278
8
Unity/Assets/Resources/ArtResources/Comic/BigImage.meta
Normal file
8
Unity/Assets/Resources/ArtResources/Comic/BigImage.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 57b04f146ddf77843924267fcd16eaa2
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
Before Width: | Height: | Size: 111 KiB After Width: | Height: | Size: 111 KiB |
@ -49,7 +49,7 @@ TextureImporter:
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteBorder: {x: 22, y: 27, z: 23, w: 10}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
@ -113,7 +113,7 @@ TextureImporter:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
internalID: 1537655665
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
|
||||
@ -49,7 +49,7 @@ TextureImporter:
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteBorder: {x: 15, y: 27, z: 14, w: 12}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
@ -113,7 +113,7 @@ TextureImporter:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
internalID: 1537655665
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
|
||||
8
Unity/Assets/Resources/ArtResources/Comic/ItemImage.meta
Normal file
8
Unity/Assets/Resources/ArtResources/Comic/ItemImage.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0136da95bc8dc6e4685117f7b4534cd5
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
Before Width: | Height: | Size: 222 KiB After Width: | Height: | Size: 222 KiB |
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 91 KiB |
@ -11,8 +11,7 @@ GameObject:
|
||||
- component: {fileID: 5373109379469138764}
|
||||
- component: {fileID: 6628894463907592692}
|
||||
- component: {fileID: 8963444919063376082}
|
||||
- component: {fileID: 8349575403021724993}
|
||||
- component: {fileID: 730475271947272469}
|
||||
- component: {fileID: 350787869583800504}
|
||||
m_Layer: 5
|
||||
m_Name: ComicPrefab
|
||||
m_TagString: Untagged
|
||||
@ -32,13 +31,15 @@ RectTransform:
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 207765072299737831}
|
||||
- {fileID: 7335393337175211941}
|
||||
- {fileID: 345591228483174105}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 100, y: 100}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6628894463907592692
|
||||
CanvasRenderer:
|
||||
@ -60,28 +61,7 @@ CanvasGroup:
|
||||
m_Interactable: 1
|
||||
m_BlocksRaycasts: 1
|
||||
m_IgnoreParentGroups: 0
|
||||
--- !u!95 &8349575403021724993
|
||||
Animator:
|
||||
serializedVersion: 5
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3182132052964016837}
|
||||
m_Enabled: 1
|
||||
m_Avatar: {fileID: 0}
|
||||
m_Controller: {fileID: 0}
|
||||
m_CullingMode: 0
|
||||
m_UpdateMode: 0
|
||||
m_ApplyRootMotion: 0
|
||||
m_LinearVelocityBlending: 0
|
||||
m_StabilizeFeet: 0
|
||||
m_WarningMessage:
|
||||
m_HasTransformHierarchy: 1
|
||||
m_AllowConstantClipSamplingOptimization: 1
|
||||
m_KeepAnimatorStateOnDisable: 0
|
||||
m_WriteDefaultValuesOnDisable: 0
|
||||
--- !u!114 &730475271947272469
|
||||
--- !u!114 &350787869583800504
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
@ -90,11 +70,13 @@ MonoBehaviour:
|
||||
m_GameObject: {fileID: 3182132052964016837}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0ad50f81b1d25c441943c37a89ba23f6, type: 3}
|
||||
m_Script: {fileID: 11500000, guid: 711cd23e8e104ae09aca6c89f6fe47d6, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_Animator: {fileID: 8349575403021724993}
|
||||
_ActionOnDisable: 0
|
||||
BackgroundImage: {fileID: 7938237650619630029}
|
||||
BlackImage: {fileID: 7556741696326604669}
|
||||
ItemRoot: {fileID: 7335393337175211941}
|
||||
Rect: {fileID: 5373109379469138764}
|
||||
--- !u!1 &3709315929854167268
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -128,5 +110,155 @@ RectTransform:
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 100, y: 100}
|
||||
m_SizeDelta: {x: 2032, y: 1058}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!1 &4957658669206768623
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 207765072299737831}
|
||||
- component: {fileID: 3380595546347684989}
|
||||
- component: {fileID: 7938237650619630029}
|
||||
m_Layer: 5
|
||||
m_Name: Background
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &207765072299737831
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4957658669206768623}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 5373109379469138764}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &3380595546347684989
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4957658669206768623}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7938237650619630029
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4957658669206768623}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: a9f76a0d53e18b948871f480160f00ff, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 2
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &6308305724587199874
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 345591228483174105}
|
||||
- component: {fileID: 2337139055906819908}
|
||||
- component: {fileID: 7556741696326604669}
|
||||
m_Layer: 5
|
||||
m_Name: Black
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &345591228483174105
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6308305724587199874}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 5373109379469138764}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &2337139055906819908
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6308305724587199874}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7556741696326604669
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6308305724587199874}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0, g: 0, b: 0, a: 0}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 2
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
|
||||
@ -131,6 +131,7 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: ba22e7c585d24b1ca28411c6bc586c75, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
ItemRect: {fileID: 6794621625215314122}
|
||||
TextMono: {fileID: 6120816179420134599}
|
||||
DialogImage: {fileID: 912733227192476783}
|
||||
ItemImage: {fileID: 0}
|
||||
@ -282,9 +283,9 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 6b27f832d22e4a8d916272b644937774, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
Ban: 1
|
||||
NoExport: 0
|
||||
FontBan: 1
|
||||
Ban: 0
|
||||
NoExport: 1
|
||||
FontBan: 0
|
||||
ID: 1108
|
||||
FontID: 2
|
||||
TextCfg:
|
||||
|
||||
@ -11,7 +11,6 @@ GameObject:
|
||||
- component: {fileID: 4725712235010191364}
|
||||
- component: {fileID: 4097411215510795621}
|
||||
- component: {fileID: 8544824163673796939}
|
||||
- component: {fileID: 3467318451902954361}
|
||||
- component: {fileID: 3755449130442514423}
|
||||
m_Layer: 5
|
||||
m_Name: ImagePrefab
|
||||
@ -77,20 +76,6 @@ MonoBehaviour:
|
||||
m_FillOrigin: 2
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &3467318451902954361
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3341112840418233464}
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 86710e43de46f6f4bac7c8e50813a599, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_AspectMode: 1
|
||||
m_AspectRatio: 1.45
|
||||
--- !u!114 &3755449130442514423
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -103,6 +88,7 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: ba22e7c585d24b1ca28411c6bc586c75, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
ItemRect: {fileID: 4725712235010191364}
|
||||
TextMono: {fileID: 0}
|
||||
DialogImage: {fileID: 0}
|
||||
ItemImage: {fileID: 8544824163673796939}
|
||||
|
||||
8
Unity/Assets/Resources/Comic.meta
Normal file
8
Unity/Assets/Resources/Comic.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 72fa1e2c3d6ffc847915a062aaa00247
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Unity/Assets/Resources/Comic/ComicAsset.bytes
Normal file
BIN
Unity/Assets/Resources/Comic/ComicAsset.bytes
Normal file
Binary file not shown.
7
Unity/Assets/Resources/Comic/ComicAsset.bytes.meta
Normal file
7
Unity/Assets/Resources/Comic/ComicAsset.bytes.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 630433afd1476d541a28790966c75e67
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Unity/Assets/Resources/Comic/IamgeMap.bytes
Normal file
BIN
Unity/Assets/Resources/Comic/IamgeMap.bytes
Normal file
Binary file not shown.
7
Unity/Assets/Resources/Comic/IamgeMap.bytes.meta
Normal file
7
Unity/Assets/Resources/Comic/IamgeMap.bytes.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 98a8f247c867d4f42bc8a50205ebfb39
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Unity/Assets/Resources/Comic/ImageMap.bytes
Normal file
BIN
Unity/Assets/Resources/Comic/ImageMap.bytes
Normal file
Binary file not shown.
7
Unity/Assets/Resources/Comic/ImageMap.bytes.meta
Normal file
7
Unity/Assets/Resources/Comic/ImageMap.bytes.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9e231b55dfcffdb4ea89743a8612ebcd
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -37,6 +37,7 @@ namespace TH1_Logic.Comic
|
||||
public int TargetId;
|
||||
public ComicActionType ActionType;
|
||||
public float Duration;
|
||||
public string Desc;
|
||||
|
||||
[MemoryPackIgnore]
|
||||
public int Index;
|
||||
@ -399,21 +400,21 @@ namespace TH1_Logic.Comic
|
||||
{
|
||||
_pos.x = 0;
|
||||
_pos.y = -data.Mono.Rect.rect.height;
|
||||
item.Mono.ItemRect.anchoredPosition = _pos;
|
||||
data.Mono.Rect.anchoredPosition = _pos;
|
||||
}
|
||||
|
||||
public override void SetEndState(ComicData data, ComicSubItem item, ComicAction action)
|
||||
{
|
||||
_pos.x = 0;
|
||||
_pos.y = 0;
|
||||
item.Mono.ItemRect.anchoredPosition = _pos;
|
||||
data.Mono.Rect.anchoredPosition = _pos;
|
||||
}
|
||||
|
||||
public override void SetUpdateAction(ComicData data, ComicSubItem item, ComicAction action, float ratio)
|
||||
{
|
||||
_pos.x = 0;
|
||||
_pos.y = -data.Mono.Rect.rect.height * (1 - ratio);
|
||||
item.Mono.ItemRect.anchoredPosition = _pos;
|
||||
data.Mono.Rect.anchoredPosition = _pos;
|
||||
}
|
||||
}
|
||||
|
||||
@ -428,21 +429,21 @@ namespace TH1_Logic.Comic
|
||||
{
|
||||
_pos.x = 0;
|
||||
_pos.y = 0;
|
||||
item.Mono.ItemRect.anchoredPosition = _pos;
|
||||
data.Mono.Rect.anchoredPosition = _pos;
|
||||
}
|
||||
|
||||
public override void SetEndState(ComicData data, ComicSubItem item, ComicAction action)
|
||||
{
|
||||
_pos.x = 0;
|
||||
_pos.y = data.Mono.Rect.rect.height;
|
||||
item.Mono.ItemRect.anchoredPosition = _pos;
|
||||
data.Mono.Rect.anchoredPosition = _pos;
|
||||
}
|
||||
|
||||
public override void SetUpdateAction(ComicData data, ComicSubItem item, ComicAction action, float ratio)
|
||||
{
|
||||
_pos.x = 0;
|
||||
_pos.y = data.Mono.Rect.rect.height * ratio;
|
||||
item.Mono.ItemRect.anchoredPosition = _pos;
|
||||
data.Mono.Rect.anchoredPosition = _pos;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -6,6 +6,7 @@
|
||||
*/
|
||||
|
||||
|
||||
using System.Collections.Generic;
|
||||
using Logic.CrashSight;
|
||||
using UnityEngine;
|
||||
|
||||
@ -34,6 +35,7 @@ namespace TH1_Logic.Comic
|
||||
private int _actionIndex = 0;
|
||||
private int _comicMaxIndex = 0;
|
||||
private ComicState _state = ComicState.None;
|
||||
private Dictionary<int, int> _actionHandle = new Dictionary<int, int>();
|
||||
|
||||
public GameObject ComicRoot => _comicRoot;
|
||||
public ComicSheet ComicSheet => _comicSheet;
|
||||
@ -131,7 +133,9 @@ namespace TH1_Logic.Comic
|
||||
|
||||
_comicMaxIndex = index;
|
||||
_actionIndex = 0;
|
||||
_progress = 0;
|
||||
_state = ComicState.Prepared;
|
||||
Update(0f);
|
||||
}
|
||||
|
||||
public void PreviewComicData(ComicData data, GameObject comicRoot)
|
||||
@ -222,28 +226,47 @@ namespace TH1_Logic.Comic
|
||||
|
||||
public void Update(float deltaTime = 0.016f)
|
||||
{
|
||||
if (_state != ComicState.Playing) return;
|
||||
if (deltaTime != 0 && _state != ComicState.Playing) return;
|
||||
_actionHandle.Clear();
|
||||
_progress += deltaTime * _speed;
|
||||
|
||||
_duration = 0;
|
||||
foreach (var data in _comicSheet.ComicDatas)
|
||||
{
|
||||
foreach (var action in data.Actions)
|
||||
{
|
||||
var logic = ComicActionLogicFactory.GetActionLogic(action.ActionType);
|
||||
var item = data.GetSubItemById(action.TargetId);
|
||||
if (action.Index < _actionIndex)logic.SetEndState(data, item, action);
|
||||
var maxDuration = 0f;
|
||||
if (action.Index == _actionIndex)
|
||||
{
|
||||
var ratio = Mathf.Min(1, _progress / _duration);
|
||||
logic.SetUpdateAction(data, item, action, ratio);
|
||||
if(action.Duration > maxDuration) maxDuration = action.Duration;
|
||||
}
|
||||
_duration = maxDuration;
|
||||
if (_progress >= _duration) _state = ComicState.Pausing;
|
||||
foreach (var action in data.Actions) UpdateAction(data, action);
|
||||
}
|
||||
foreach (var data in _comicSheet.ComicDatas)
|
||||
{
|
||||
UpdateAction(data, data.FadeInAction);
|
||||
}
|
||||
for (int i = _comicSheet.ComicDatas.Count - 1; i >= 0; i--)
|
||||
{
|
||||
UpdateAction(_comicSheet.ComicDatas[i], _comicSheet.ComicDatas[i].FadeOutAction);
|
||||
}
|
||||
|
||||
if (_progress >= _duration) _state = ComicState.Pausing;
|
||||
}
|
||||
|
||||
if (action.Index > _actionIndex)logic.SetStartState(data, item, action);
|
||||
}
|
||||
private void UpdateAction(ComicData data, ComicAction action)
|
||||
{
|
||||
var logic = ComicActionLogicFactory.GetActionLogic(action.ActionType);
|
||||
var item = data.GetSubItemById(action.TargetId);
|
||||
if (action.Index == _actionIndex)
|
||||
{
|
||||
var ratio = Mathf.Min(1, _progress / action.Duration);
|
||||
logic.SetUpdateAction(data, item, action, ratio);
|
||||
if (action.TargetId >= 0) _actionHandle[action.TargetId] = action.Index;
|
||||
if (action.Duration > _duration) _duration = action.Duration;
|
||||
}
|
||||
|
||||
if (_actionHandle.TryGetValue(action.TargetId, out var value)) return;
|
||||
if (action.Index < _actionIndex)
|
||||
{
|
||||
logic.SetEndState(data, item, action);
|
||||
}
|
||||
if (action.Index > _actionIndex)
|
||||
{
|
||||
logic.SetStartState(data, item, action);
|
||||
}
|
||||
}
|
||||
|
||||
@ -265,13 +288,13 @@ namespace TH1_Logic.Comic
|
||||
public void ClearComicData(ComicData data)
|
||||
{
|
||||
if(data.Mono) Object.DestroyImmediate(data.Mono.gameObject);
|
||||
foreach (var kv in data.ComicItems)
|
||||
foreach (var item in data.SubItems)
|
||||
{
|
||||
if (kv.Value) Object.DestroyImmediate(kv.Value.gameObject);
|
||||
if (item.Mono) Object.DestroyImmediate(item.Mono.gameObject);
|
||||
item.Mono = null;
|
||||
}
|
||||
|
||||
data.Mono = null;
|
||||
data.ComicItems.Clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -86,8 +86,6 @@ namespace TH1_Logic.Comic
|
||||
public List<ComicAction> Actions;
|
||||
[MemoryPackIgnore]
|
||||
public ComicMono Mono;
|
||||
[MemoryPackIgnore]
|
||||
public Dictionary<uint, ComicItemMono> ComicItems = new Dictionary<uint, ComicItemMono>();
|
||||
|
||||
[MemoryPackIgnore] public ComicAction FadeInAction;
|
||||
[MemoryPackIgnore] public ComicAction FadeOutAction;
|
||||
@ -213,6 +211,7 @@ namespace TH1_Logic.Comic
|
||||
public float Height;
|
||||
public string ImageName;
|
||||
public string Content;
|
||||
public string Desc;
|
||||
|
||||
[MemoryPackIgnore]
|
||||
public ComicItemMono Mono;
|
||||
@ -252,7 +251,11 @@ namespace TH1_Logic.Comic
|
||||
{
|
||||
var dialogImage = ComicManager.Instance.GetImage(ImageName);
|
||||
if (dialogImage) Mono.DialogImage.sprite = dialogImage;
|
||||
#if UNITY_EDITOR
|
||||
Mono.TextMono.text = MultilingualManager.Instance.GetMultilingualText(uint.Parse(Content), MultilingualType.ZH);
|
||||
#else
|
||||
MultilingualManager.Instance.SetUIText(Mono.TextMono, Content);
|
||||
#endif
|
||||
var pos = new UnityEngine.Vector2(PositionX, PositionY);
|
||||
Mono.ItemRect.anchoredPosition = pos;
|
||||
}
|
||||
|
||||
@ -154,7 +154,7 @@ namespace TH1_Logic.Comic
|
||||
string folderPath = Path.Combine(Application.dataPath, "Resources", "Comic");
|
||||
if (!Directory.Exists(folderPath)) Directory.CreateDirectory(folderPath);
|
||||
|
||||
string filePath = Path.Combine(folderPath, $"IamgeMap.bytes");
|
||||
string filePath = Path.Combine(folderPath, $"ImageMap.bytes");
|
||||
byte[] bytes = MemoryPackSerializer.Serialize(_imageMap);
|
||||
File.WriteAllBytes(filePath, bytes);
|
||||
|
||||
|
||||
@ -314,7 +314,7 @@ namespace TH1_Logic.Core
|
||||
AudioManager.Instance.StopMusic();
|
||||
AudioManager.Instance.InGameAudioInit(this,MapData);
|
||||
|
||||
MapData = new MapData(MapConfig, NetMode.Single);
|
||||
MapData = new MapData(MapConfig, NetMode.Multi);
|
||||
MapData.Net.Mode = NetMode.Multi;
|
||||
MapData.Net.RefreshPlayerNet(MapData);
|
||||
|
||||
|
||||
@ -35,12 +35,16 @@ namespace Logic.Editor
|
||||
private List<string> _comicList;
|
||||
private string _selectedName;
|
||||
|
||||
private List<string> _itemIdList;
|
||||
private List<string> _itemDescList;
|
||||
private bool _isPlaying = false;
|
||||
|
||||
private GameObject _root;
|
||||
|
||||
private ComicSubItem _selectedComic;
|
||||
private string _newName = "comic";
|
||||
|
||||
private Dictionary<ComicData, bool> _dataFoldouts = new Dictionary<ComicData, bool>();
|
||||
private Dictionary<ComicSubItem, bool> _itemFoldouts = new Dictionary<ComicSubItem, bool>();
|
||||
private Dictionary<ComicAction, bool> _actionFoldouts = new Dictionary<ComicAction, bool>();
|
||||
|
||||
|
||||
[MenuItem("Tools/漫画编辑器")]
|
||||
@ -83,12 +87,17 @@ namespace Logic.Editor
|
||||
{
|
||||
Refresh();
|
||||
ComicManager.Instance.Refresh();
|
||||
if(_isPlaying) ComicManager.Instance.ComicControl.Update();
|
||||
if (_isPlaying)
|
||||
{
|
||||
ComicManager.Instance.ComicControl.Update();
|
||||
EditorUtility.SetDirty(_root.gameObject);
|
||||
SceneView.RepaintAll();
|
||||
}
|
||||
|
||||
if (_redBoxStyle == null)
|
||||
{
|
||||
_redBoxStyle = InspectorUtils.GetHelpBoxStyle();
|
||||
InspectorUtils.AddBorder(_redBoxStyle, new Color(0.5f, 0.4f, 0.4f, 0.6f));
|
||||
InspectorUtils.AddBorder(_redBoxStyle, new Color(0.7f, 0.2f, 0.2f, 0.6f));
|
||||
}
|
||||
if (_whiteBoxStyle == null)
|
||||
{
|
||||
@ -120,7 +129,7 @@ namespace Logic.Editor
|
||||
}
|
||||
EditorGUILayout.EndHorizontal();
|
||||
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
EditorGUILayout.BeginHorizontal(_redBoxStyle);
|
||||
if (_isPlaying)
|
||||
{
|
||||
var actionIndex = ComicManager.Instance.ComicControl.ActionIndex;
|
||||
@ -140,67 +149,62 @@ namespace Logic.Editor
|
||||
var index = GetIndexInComicList(_selectedName);
|
||||
index = EditorGUILayout.Popup(index, _comicList.ToArray(), GUILayout.Width(300));
|
||||
if (_comicList.Count != 0) _selectedName = _comicList[index];
|
||||
var comicSheet = ComicManager.Instance.Asset.GetComicSheetByName(_selectedName);
|
||||
if (comicSheet != null && InspectorUtils.InspectorButtonWithTextWidth($"删除此漫画 {comicSheet.Name}"))
|
||||
ComicManager.Instance.Asset.ComicSheets.Remove(comicSheet);
|
||||
EditorGUILayout.EndHorizontal();
|
||||
EditorGUILayout.Space();
|
||||
|
||||
var comicSheet = ComicManager.Instance.Asset.GetComicSheetByName(_selectedName);
|
||||
if (comicSheet != null)
|
||||
{
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
if (InspectorUtils.InspectorButtonWithTextWidth($"删除漫画 {comicSheet.Name}"))
|
||||
ComicManager.Instance.Asset.ComicSheets.Remove(comicSheet);
|
||||
if (InspectorUtils.InspectorButtonWithTextWidth($"添加一页"))
|
||||
comicSheet.AddComicData();
|
||||
EditorGUILayout.EndHorizontal();
|
||||
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
if (_isPlaying) InspectorUtils.InspectorTextWidthRich($"播放中, 请勿操作 GameObject");
|
||||
else InspectorUtils.InspectorTextWidthRich($"编辑中, 可以操作 GameObject");
|
||||
EditorGUILayout.EndHorizontal();
|
||||
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
if (InspectorUtils.InspectorButtonWithTextWidth($"播放"))
|
||||
{
|
||||
// 从后往前删除,避免索引变化
|
||||
for (int i = _root.transform.childCount - 1; i >= 0; i--)
|
||||
{
|
||||
DestroyImmediate(_root.transform.GetChild(i).gameObject);
|
||||
}
|
||||
ComicManager.Instance.InitComic(comicSheet.Name, _root);
|
||||
_isPlaying = true;
|
||||
}
|
||||
if (_isPlaying && InspectorUtils.InspectorButtonWithTextWidth($"模拟点击"))
|
||||
{
|
||||
ComicManager.Instance.Next();
|
||||
}
|
||||
if (_isPlaying && InspectorUtils.InspectorButtonWithTextWidth($"停止播放"))
|
||||
{
|
||||
_isPlaying = false;
|
||||
ComicManager.Instance.ComicControl.Clear();
|
||||
}
|
||||
EditorGUILayout.EndHorizontal();
|
||||
|
||||
if (!_isPlaying)
|
||||
{
|
||||
int deleteIndex = -1;
|
||||
int upIndex = -1;
|
||||
int downIndex = -1;
|
||||
for (int i = 0; i < comicSheet.ComicDatas.Count; i++)
|
||||
{
|
||||
OnGUIComicData(comicSheet.ComicDatas[i], i, out bool delete, out bool up, out bool down);
|
||||
if (up) upIndex = i;
|
||||
if (down) downIndex = i;
|
||||
if (delete) deleteIndex = i;
|
||||
EditorGUILayout.Space();
|
||||
}
|
||||
if (deleteIndex >= 0) comicSheet.ComicDatas.RemoveAt(deleteIndex);
|
||||
else if (upIndex >= 0) comicSheet.MoveComicData(comicSheet.ComicDatas[upIndex], -1);
|
||||
else if (downIndex >= 0) comicSheet.MoveComicData(comicSheet.ComicDatas[downIndex], 1);
|
||||
}
|
||||
}
|
||||
OnGUIComicSheet(comicSheet);
|
||||
EditorGUILayout.EndScrollView();
|
||||
}
|
||||
|
||||
private void OnGUIComicSheet(ComicSheet comicSheet)
|
||||
{
|
||||
if (comicSheet == null) return;
|
||||
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
if (InspectorUtils.InspectorButtonWithTextWidth($"添加一页")) comicSheet.AddComicData();
|
||||
if (InspectorUtils.InspectorButtonWithTextWidth($"播放"))
|
||||
{
|
||||
// 从后往前删除,避免索引变化
|
||||
for (int i = _root.transform.childCount - 1; i >= 0; i--)
|
||||
{
|
||||
DestroyImmediate(_root.transform.GetChild(i).gameObject);
|
||||
}
|
||||
ComicManager.Instance.InitComic(comicSheet.Name, _root);
|
||||
_isPlaying = true;
|
||||
}
|
||||
if (_isPlaying && InspectorUtils.InspectorButtonWithTextWidth($"模拟点击"))
|
||||
{
|
||||
ComicManager.Instance.Next();
|
||||
}
|
||||
if (_isPlaying && InspectorUtils.InspectorButtonWithTextWidth($"停止播放"))
|
||||
{
|
||||
_isPlaying = false;
|
||||
ComicManager.Instance.ComicControl.Clear();
|
||||
}
|
||||
EditorGUILayout.EndHorizontal();
|
||||
|
||||
if (!_isPlaying)
|
||||
{
|
||||
int deleteIndex = -1;
|
||||
int upIndex = -1;
|
||||
int downIndex = -1;
|
||||
for (int i = 0; i < comicSheet.ComicDatas.Count; i++)
|
||||
{
|
||||
OnGUIComicData(comicSheet.ComicDatas[i], i, out bool delete, out bool up, out bool down);
|
||||
if (up) upIndex = i;
|
||||
if (down) downIndex = i;
|
||||
if (delete) deleteIndex = i;
|
||||
EditorGUILayout.Space();
|
||||
}
|
||||
if (deleteIndex >= 0) comicSheet.ComicDatas.RemoveAt(deleteIndex);
|
||||
else if (upIndex >= 0) comicSheet.MoveComicData(comicSheet.ComicDatas[upIndex], -1);
|
||||
else if (downIndex >= 0) comicSheet.MoveComicData(comicSheet.ComicDatas[downIndex], 1);
|
||||
}
|
||||
}
|
||||
|
||||
private void OnGUIComicData(ComicData data, int id, out bool isDelete, out bool up, out bool down)
|
||||
{
|
||||
up = false;
|
||||
@ -209,12 +213,19 @@ namespace Logic.Editor
|
||||
EditorGUILayout.BeginVertical(_whiteBoxStyle, GUILayout.Width(500));
|
||||
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
InspectorUtils.InspectorTextWidthRich($"第 {id + 1} 页");
|
||||
_dataFoldouts.TryAdd(data, false);
|
||||
_dataFoldouts[data] = EditorGUILayout.Foldout(_dataFoldouts[data], $"第 {id + 1} 页");
|
||||
if (InspectorUtils.InspectorButtonWithTextWidth($"↑")) up = true;
|
||||
if (InspectorUtils.InspectorButtonWithTextWidth($"↓")) down = true;
|
||||
if (InspectorUtils.InspectorButtonWithTextWidth($"x")) isDelete = true;
|
||||
EditorGUILayout.EndHorizontal();
|
||||
|
||||
|
||||
if (!_dataFoldouts[data])
|
||||
{
|
||||
EditorGUILayout.EndVertical();
|
||||
return;
|
||||
}
|
||||
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
if (InspectorUtils.InspectorButtonWithTextWidth($"预览并编辑此页"))
|
||||
{
|
||||
@ -242,7 +253,6 @@ namespace Logic.Editor
|
||||
|
||||
|
||||
// Items
|
||||
EditorGUILayout.BeginVertical(_whiteBoxStyle);
|
||||
var deleteIndex = -1;
|
||||
for (int i = 0; i < data.SubItems.Count; i++)
|
||||
{
|
||||
@ -251,8 +261,6 @@ namespace Logic.Editor
|
||||
EditorGUILayout.Space();
|
||||
}
|
||||
if (deleteIndex >= 0) data.RemoveSubItem(data.SubItems[deleteIndex]);
|
||||
|
||||
EditorGUILayout.EndVertical();
|
||||
EditorGUILayout.Space();
|
||||
|
||||
|
||||
@ -260,19 +268,22 @@ namespace Logic.Editor
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
if (InspectorUtils.InspectorButtonWithTextWidth($"添加Action")) data.AddAction();
|
||||
EditorGUILayout.EndHorizontal();
|
||||
_itemIdList ??= new List<string>();
|
||||
_itemIdList.Clear();
|
||||
foreach (var item in data.SubItems) _itemIdList.Add($"{item.Id}");
|
||||
EditorGUILayout.BeginVertical(_whiteBoxStyle);
|
||||
_itemDescList ??= new List<string>();
|
||||
_itemDescList.Clear();
|
||||
|
||||
foreach (var item in data.SubItems)
|
||||
{
|
||||
var str = string.IsNullOrEmpty(item.Desc) ? $"Item ID : {item.Id}" : item.Desc;
|
||||
_itemDescList.Add(str);
|
||||
}
|
||||
deleteIndex = -1;
|
||||
for (int i = 0; i < data.Actions.Count; i++)
|
||||
{
|
||||
OnGUIComicAction(data.Actions[i], i, out bool delete);
|
||||
OnGUIComicAction(data, data.Actions[i], i, out bool delete);
|
||||
if (delete) deleteIndex = i;
|
||||
EditorGUILayout.Space();
|
||||
}
|
||||
if (deleteIndex >= 0) data.RemoveAction(data.Actions[deleteIndex]);
|
||||
EditorGUILayout.EndVertical();
|
||||
|
||||
EditorGUILayout.EndVertical();
|
||||
EditorGUILayout.Space();
|
||||
@ -280,11 +291,34 @@ namespace Logic.Editor
|
||||
|
||||
private void OnGUIComicItem(ComicSubItem item, out bool isDelete)
|
||||
{
|
||||
if (_selectedComic == item) EditorGUILayout.BeginVertical(_redBoxStyle);
|
||||
else EditorGUILayout.BeginVertical(_whiteBoxStyle);
|
||||
|
||||
isDelete = false;
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
InspectorUtils.InspectorTextWidthRich($"Item ID : {item.Id}");
|
||||
_itemFoldouts.TryAdd(item, false);
|
||||
var str = string.IsNullOrEmpty(item.Desc) ? $"Item ID : {item.Id}" : item.Desc;
|
||||
_itemFoldouts[item] = EditorGUILayout.Foldout(_itemFoldouts[item], str);
|
||||
if (item.Mono && InspectorUtils.InspectorButtonWithTextWidth($"选中"))
|
||||
{
|
||||
_selectedComic = item;
|
||||
Selection.activeGameObject = item.Mono.gameObject;
|
||||
EditorGUIUtility.PingObject(item.Mono.gameObject); // 在 Hierarchy 中闪烁高亮
|
||||
SceneView.FrameLastActiveSceneView(); // Scene 视图聚焦
|
||||
}
|
||||
|
||||
if (InspectorUtils.InspectorButtonWithTextWidth($"x")) isDelete = true;
|
||||
EditorGUILayout.EndHorizontal();
|
||||
|
||||
if (!_itemFoldouts[item])
|
||||
{
|
||||
EditorGUILayout.EndVertical();
|
||||
return;
|
||||
}
|
||||
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
item.Desc = EditorGUILayout.TextField($"描述", item.Desc, GUILayout.Width(300));
|
||||
EditorGUILayout.EndHorizontal();
|
||||
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
InspectorUtils.InspectorTextWidthRich("类型:");
|
||||
@ -315,21 +349,46 @@ namespace Logic.Editor
|
||||
item.Content = EditorGUILayout.TextField(item.Content, GUILayout.Width(300));
|
||||
EditorGUILayout.EndHorizontal();
|
||||
}
|
||||
EditorGUILayout.EndVertical();
|
||||
}
|
||||
|
||||
private void OnGUIComicAction(ComicAction action, int id, out bool isDelete)
|
||||
private void OnGUIComicAction(ComicData data, ComicAction action, int id, out bool isDelete)
|
||||
{
|
||||
var item = data.GetSubItemById(action.TargetId);
|
||||
if (item != null && _selectedComic == item) EditorGUILayout.BeginVertical(_redBoxStyle);
|
||||
else EditorGUILayout.BeginVertical(_whiteBoxStyle);
|
||||
|
||||
isDelete = false;
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
InspectorUtils.InspectorTextWidthRich($"Action ID : {id + 1}");
|
||||
_actionFoldouts.TryAdd(action, false);
|
||||
var str = string.IsNullOrEmpty(action.Desc) ? $"Action ID {id + 1}" : action.Desc;
|
||||
_actionFoldouts[action] = EditorGUILayout.Foldout(_actionFoldouts[action], str);
|
||||
if (item != null && item.Mono && InspectorUtils.InspectorButtonWithTextWidth($"选中"))
|
||||
{
|
||||
_selectedComic = item;
|
||||
Selection.activeGameObject = item.Mono.gameObject;
|
||||
EditorGUIUtility.PingObject(item.Mono.gameObject); // 在 Hierarchy 中闪烁高亮
|
||||
SceneView.FrameLastActiveSceneView(); // Scene 视图聚焦
|
||||
}
|
||||
if (InspectorUtils.InspectorButtonWithTextWidth($"x")) isDelete = true;
|
||||
EditorGUILayout.EndHorizontal();
|
||||
|
||||
if (!_actionFoldouts[action])
|
||||
{
|
||||
EditorGUILayout.EndVertical();
|
||||
return;
|
||||
}
|
||||
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
action.Desc = EditorGUILayout.TextField($"描述", action.Desc, GUILayout.Width(300));
|
||||
EditorGUILayout.EndHorizontal();
|
||||
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
InspectorUtils.InspectorTextWidthRich($"目标 Item");
|
||||
var index = GetIndexInStrList(action.TargetId.ToString(), _itemIdList);
|
||||
index = EditorGUILayout.Popup(index, _itemIdList.ToArray(), GUILayout.Width(300));
|
||||
if (_itemIdList.Count != 0) action.TargetId = int.Parse(_itemIdList[index]);
|
||||
var itemDesc = string.IsNullOrEmpty(item?.Desc) ? $"Item ID : {item?.Id}" : item.Desc;
|
||||
var index = GetIndexInStrList(itemDesc, _itemDescList);
|
||||
index = EditorGUILayout.Popup(index, _itemDescList.ToArray(), GUILayout.Width(300));
|
||||
if (index < data.SubItems.Count) action.TargetId = data.SubItems[index].Id;
|
||||
EditorGUILayout.EndHorizontal();
|
||||
|
||||
EditorGUILayout.BeginHorizontal();
|
||||
@ -341,6 +400,8 @@ namespace Logic.Editor
|
||||
InspectorUtils.InspectorTextWidthRich($"时长:");
|
||||
action.Duration = EditorGUILayout.FloatField(action.Duration, GUILayout.Width(200));
|
||||
EditorGUILayout.EndHorizontal();
|
||||
|
||||
EditorGUILayout.EndVertical();
|
||||
}
|
||||
|
||||
private int GetIndexInStrList(string str, List<string> list)
|
||||
|
||||
@ -41,6 +41,12 @@ namespace Logic.Multilingual
|
||||
return _multilingualData.GetMultilingualStr(id, _currentType);
|
||||
}
|
||||
|
||||
public string GetMultilingualText(uint id, MultilingualType type)
|
||||
{
|
||||
RefreshMultilingualData();
|
||||
return _multilingualData.GetMultilingualStr(id, type);
|
||||
}
|
||||
|
||||
public string GetMultilingualTextSafe(string idString)
|
||||
{
|
||||
if (string.IsNullOrEmpty(idString))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user