Iteration 1
have some art, didn't really do much there I did spend a lot more time on the code, it's more iteresting. Player is in it's own file. All Players use the same code. Refactored how turns are processed. Added a defend and counter ability, have code for "Blood Counter" that I might revisit. Want to change defend to a "Holy Shield" and add a magic ability that is countered by it. This is to stop the counter until you win strategy.
This commit is contained in:
parent
c56a139556
commit
b2eb3ca9a5
|
@ -22,6 +22,7 @@
|
|||
<Path>ProjectSettings</Path>
|
||||
</explicitIncludes>
|
||||
<explicitExcludes>
|
||||
<Path>.git</Path>
|
||||
<Path>.idea</Path>
|
||||
<Path>Library</Path>
|
||||
<Path>Logs</Path>
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
|
@ -218,6 +218,9 @@ RectTransform:
|
|||
- {fileID: 1700659786}
|
||||
- {fileID: 2003127417}
|
||||
- {fileID: 2122497092}
|
||||
- {fileID: 137837623}
|
||||
- {fileID: 829062269}
|
||||
- {fileID: 251530422}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
|
@ -239,8 +242,435 @@ MonoBehaviour:
|
|||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
attackButton: {fileID: 1700659787}
|
||||
bloodCounterButton: {fileID: 829062266}
|
||||
counterButton: {fileID: 251530419}
|
||||
defendButton: {fileID: 137837620}
|
||||
userHealth: {fileID: 2003127418}
|
||||
enemyHealth: {fileID: 2122497093}
|
||||
--- !u!1 &137837619
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 137837623}
|
||||
- component: {fileID: 137837622}
|
||||
- component: {fileID: 137837621}
|
||||
- component: {fileID: 137837620}
|
||||
m_Layer: 5
|
||||
m_Name: Defend
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &137837620
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 137837619}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Navigation:
|
||||
m_Mode: 3
|
||||
m_WrapAround: 0
|
||||
m_SelectOnUp: {fileID: 0}
|
||||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 2
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
m_SpriteState:
|
||||
m_HighlightedSprite: {fileID: 0}
|
||||
m_PressedSprite: {fileID: 5437299029774813188, guid: 4880d72e2864aa54389378d2e1821522, type: 3}
|
||||
m_SelectedSprite: {fileID: 0}
|
||||
m_DisabledSprite: {fileID: 0}
|
||||
m_AnimationTriggers:
|
||||
m_NormalTrigger: Normal
|
||||
m_HighlightedTrigger: Highlighted
|
||||
m_PressedTrigger: Pressed
|
||||
m_SelectedTrigger: Selected
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_TargetGraphic: {fileID: 137837621}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 24251070}
|
||||
m_TargetAssemblyTypeName:
|
||||
m_MethodName:
|
||||
m_Mode: 1
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName:
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
--- !u!114 &137837621
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 137837619}
|
||||
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: 8047949451544522013, guid: 4880d72e2864aa54389378d2e1821522, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!222 &137837622
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 137837619}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!224 &137837623
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 137837619}
|
||||
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_Children:
|
||||
- {fileID: 816304657}
|
||||
m_Father: {fileID: 24251074}
|
||||
m_RootOrder: 3
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 125, y: 40}
|
||||
m_SizeDelta: {x: 80, y: 60}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!1 &228826172
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 228826173}
|
||||
- component: {fileID: 228826175}
|
||||
- component: {fileID: 228826174}
|
||||
m_Layer: 5
|
||||
m_Name: Text
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &228826173
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 228826172}
|
||||
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_Children: []
|
||||
m_Father: {fileID: 251530422}
|
||||
m_RootOrder: 0
|
||||
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!114 &228826174
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 228826172}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_FontData:
|
||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_FontSize: 18
|
||||
m_FontStyle: 0
|
||||
m_BestFit: 0
|
||||
m_MinSize: 1
|
||||
m_MaxSize: 40
|
||||
m_Alignment: 4
|
||||
m_AlignByGeometry: 0
|
||||
m_RichText: 1
|
||||
m_HorizontalOverflow: 0
|
||||
m_VerticalOverflow: 0
|
||||
m_LineSpacing: 1
|
||||
m_Text: Counter
|
||||
--- !u!222 &228826175
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 228826172}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &251530418
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 251530422}
|
||||
- component: {fileID: 251530421}
|
||||
- component: {fileID: 251530420}
|
||||
- component: {fileID: 251530419}
|
||||
m_Layer: 5
|
||||
m_Name: Counter
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &251530419
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 251530418}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Navigation:
|
||||
m_Mode: 3
|
||||
m_WrapAround: 0
|
||||
m_SelectOnUp: {fileID: 0}
|
||||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 2
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
m_SpriteState:
|
||||
m_HighlightedSprite: {fileID: 0}
|
||||
m_PressedSprite: {fileID: 5437299029774813188, guid: 4880d72e2864aa54389378d2e1821522, type: 3}
|
||||
m_SelectedSprite: {fileID: 0}
|
||||
m_DisabledSprite: {fileID: 0}
|
||||
m_AnimationTriggers:
|
||||
m_NormalTrigger: Normal
|
||||
m_HighlightedTrigger: Highlighted
|
||||
m_PressedTrigger: Pressed
|
||||
m_SelectedTrigger: Selected
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_TargetGraphic: {fileID: 251530420}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 24251070}
|
||||
m_TargetAssemblyTypeName:
|
||||
m_MethodName:
|
||||
m_Mode: 1
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName:
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
--- !u!114 &251530420
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 251530418}
|
||||
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: 8047949451544522013, guid: 4880d72e2864aa54389378d2e1821522, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!222 &251530421
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 251530418}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!224 &251530422
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 251530418}
|
||||
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_Children:
|
||||
- {fileID: 228826173}
|
||||
m_Father: {fileID: 24251074}
|
||||
m_RootOrder: 5
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 210, y: 40}
|
||||
m_SizeDelta: {x: 80, y: 60}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!1 &393001464
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 393001465}
|
||||
- component: {fileID: 393001467}
|
||||
- component: {fileID: 393001466}
|
||||
m_Layer: 5
|
||||
m_Name: Text
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &393001465
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 393001464}
|
||||
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_Children: []
|
||||
m_Father: {fileID: 829062269}
|
||||
m_RootOrder: 0
|
||||
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!114 &393001466
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 393001464}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_FontData:
|
||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_FontSize: 18
|
||||
m_FontStyle: 0
|
||||
m_BestFit: 0
|
||||
m_MinSize: 1
|
||||
m_MaxSize: 40
|
||||
m_Alignment: 4
|
||||
m_AlignByGeometry: 0
|
||||
m_RichText: 1
|
||||
m_HorizontalOverflow: 0
|
||||
m_VerticalOverflow: 0
|
||||
m_LineSpacing: 1
|
||||
m_Text: Blood Counter
|
||||
--- !u!222 &393001467
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 393001464}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &519420028
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -324,6 +754,218 @@ Transform:
|
|||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &816304656
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 816304657}
|
||||
- component: {fileID: 816304659}
|
||||
- component: {fileID: 816304658}
|
||||
m_Layer: 5
|
||||
m_Name: Text
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &816304657
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 816304656}
|
||||
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_Children: []
|
||||
m_Father: {fileID: 137837623}
|
||||
m_RootOrder: 0
|
||||
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!114 &816304658
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 816304656}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_FontData:
|
||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_FontSize: 18
|
||||
m_FontStyle: 0
|
||||
m_BestFit: 0
|
||||
m_MinSize: 1
|
||||
m_MaxSize: 40
|
||||
m_Alignment: 4
|
||||
m_AlignByGeometry: 0
|
||||
m_RichText: 1
|
||||
m_HorizontalOverflow: 0
|
||||
m_VerticalOverflow: 0
|
||||
m_LineSpacing: 1
|
||||
m_Text: Defend
|
||||
--- !u!222 &816304659
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 816304656}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1 &829062265
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 829062269}
|
||||
- component: {fileID: 829062268}
|
||||
- component: {fileID: 829062267}
|
||||
- component: {fileID: 829062266}
|
||||
m_Layer: 5
|
||||
m_Name: BloodCounter
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
--- !u!114 &829062266
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 829062265}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Navigation:
|
||||
m_Mode: 3
|
||||
m_WrapAround: 0
|
||||
m_SelectOnUp: {fileID: 0}
|
||||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 2
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
m_SpriteState:
|
||||
m_HighlightedSprite: {fileID: 0}
|
||||
m_PressedSprite: {fileID: 5437299029774813188, guid: 4880d72e2864aa54389378d2e1821522, type: 3}
|
||||
m_SelectedSprite: {fileID: 0}
|
||||
m_DisabledSprite: {fileID: 0}
|
||||
m_AnimationTriggers:
|
||||
m_NormalTrigger: Normal
|
||||
m_HighlightedTrigger: Highlighted
|
||||
m_PressedTrigger: Pressed
|
||||
m_SelectedTrigger: Selected
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_TargetGraphic: {fileID: 829062267}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 24251070}
|
||||
m_TargetAssemblyTypeName:
|
||||
m_MethodName:
|
||||
m_Mode: 1
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName:
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
--- !u!114 &829062267
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 829062265}
|
||||
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: 8047949451544522013, guid: 4880d72e2864aa54389378d2e1821522, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!222 &829062268
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 829062265}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!224 &829062269
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 829062265}
|
||||
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_Children:
|
||||
- {fileID: 393001465}
|
||||
m_Father: {fileID: 24251074}
|
||||
m_RootOrder: 4
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 295, y: 40}
|
||||
m_SizeDelta: {x: 80, y: 60}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!1 &885956096
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -449,10 +1091,10 @@ MonoBehaviour:
|
|||
m_Calls: []
|
||||
m_FontData:
|
||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_FontSize: 14
|
||||
m_FontSize: 18
|
||||
m_FontStyle: 0
|
||||
m_BestFit: 0
|
||||
m_MinSize: 10
|
||||
m_MinSize: 1
|
||||
m_MaxSize: 40
|
||||
m_Alignment: 4
|
||||
m_AlignByGeometry: 0
|
||||
|
@ -505,8 +1147,8 @@ RectTransform:
|
|||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 80, y: 60}
|
||||
m_SizeDelta: {x: 160, y: 30}
|
||||
m_AnchoredPosition: {x: 40, y: 40}
|
||||
m_SizeDelta: {x: 80, y: 60}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1700659787
|
||||
MonoBehaviour:
|
||||
|
@ -527,7 +1169,7 @@ MonoBehaviour:
|
|||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 1
|
||||
m_Transition: 2
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
|
@ -538,7 +1180,7 @@ MonoBehaviour:
|
|||
m_FadeDuration: 0.1
|
||||
m_SpriteState:
|
||||
m_HighlightedSprite: {fileID: 0}
|
||||
m_PressedSprite: {fileID: 0}
|
||||
m_PressedSprite: {fileID: 5437299029774813188, guid: 4880d72e2864aa54389378d2e1821522, type: 3}
|
||||
m_SelectedSprite: {fileID: 0}
|
||||
m_DisabledSprite: {fileID: 0}
|
||||
m_AnimationTriggers:
|
||||
|
@ -584,8 +1226,8 @@ MonoBehaviour:
|
|||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Type: 1
|
||||
m_Sprite: {fileID: 8047949451544522013, guid: 4880d72e2864aa54389378d2e1821522, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
|
|
|
@ -1,90 +1,143 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class BattleMenu : MonoBehaviour
|
||||
{
|
||||
private class Player
|
||||
{
|
||||
public int Health;
|
||||
public int Damage;
|
||||
|
||||
public Action UpdateHealth;
|
||||
}
|
||||
|
||||
private Player _user;
|
||||
private Player _enemy;
|
||||
private EnemyAi _enemyLogic;
|
||||
private readonly List<Action> _turnOrder = new List<Action>();
|
||||
private int _currentTurnIndex = 0;
|
||||
private readonly List<Player> _players = new List<Player>();
|
||||
private int _currentPlayerIndex;
|
||||
|
||||
private Player CurrentPlayer => _players[_currentPlayerIndex];
|
||||
|
||||
public Button attackButton;
|
||||
public Button bloodCounterButton;
|
||||
public Button counterButton;
|
||||
public Button defendButton;
|
||||
public Text userHealth;
|
||||
public Text enemyHealth;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
_user = new Player {Health = 10, Damage = 1, UpdateHealth = UpdateUserHealth};
|
||||
_enemy = new Player {Health = 10, Damage = 1, UpdateHealth = UpdateEnemyHealth};
|
||||
_players.Add(new Player {health = 100, damage = 5, updateHealth = UpdateUserHealth, isHumanControlled = true});
|
||||
_players.Add(new Player {health = 100, damage = 5, updateHealth = UpdateEnemyHealth, isHumanControlled = false});
|
||||
|
||||
_enemyLogic = new EnemyAi();
|
||||
_enemyLogic.AttackCallback += EnemyAttack;
|
||||
_enemyLogic.attackCallback += Attack;
|
||||
_enemyLogic.defendCallback += Defend;
|
||||
_enemyLogic.counterCallback += Counter;
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
attackButton.onClick.AddListener(PlayerAttack);
|
||||
attackButton.onClick.AddListener(Attack);
|
||||
bloodCounterButton.onClick.AddListener(BloodCounter);
|
||||
defendButton.onClick.AddListener(Defend);
|
||||
counterButton.onClick.AddListener(Counter);
|
||||
|
||||
_turnOrder.Add(UserTakeTurn);
|
||||
_turnOrder.Add(_enemyLogic.TakeTurn);
|
||||
foreach (var player in _players)
|
||||
{
|
||||
player.updateHealth(player.health);
|
||||
}
|
||||
|
||||
_turnOrder[_currentTurnIndex]();
|
||||
|
||||
UpdateUserHealth();
|
||||
UpdateEnemyHealth();
|
||||
Debug.Log(CurrentPlayer.isHumanControlled ? "Start user turn" : "Start enemy turn");
|
||||
StartTurn();
|
||||
}
|
||||
|
||||
private void UpdateUserHealth()
|
||||
private void UpdateUserHealth(int health)
|
||||
{
|
||||
userHealth.text = $"Health: {_user.Health}";
|
||||
userHealth.text = $"Health: {health}";
|
||||
}
|
||||
|
||||
private void UpdateEnemyHealth()
|
||||
private void UpdateEnemyHealth(int health)
|
||||
{
|
||||
enemyHealth.text = $"Health: {_enemy.Health}";
|
||||
enemyHealth.text = $"Health: {health}";
|
||||
}
|
||||
|
||||
private void FinishTurn()
|
||||
{
|
||||
_currentTurnIndex = ++_currentTurnIndex % _turnOrder.Count;
|
||||
_turnOrder[_currentTurnIndex]();
|
||||
}
|
||||
|
||||
private void PlayerAttack()
|
||||
{
|
||||
Attack(_user, _enemy);
|
||||
// TODO: disable hud
|
||||
attackButton.interactable = false;
|
||||
attackButton.interactable = !CurrentPlayer.isHumanControlled;
|
||||
bloodCounterButton.interactable = !CurrentPlayer.isHumanControlled;
|
||||
defendButton.interactable = !CurrentPlayer.isHumanControlled;
|
||||
counterButton.interactable = !CurrentPlayer.isHumanControlled;
|
||||
|
||||
_currentPlayerIndex = ++_currentPlayerIndex % _players.Count;
|
||||
StartTurn();
|
||||
}
|
||||
|
||||
private void Attack()
|
||||
{
|
||||
// TODO: when target selection is a thing this will need to be changed.
|
||||
var victimIndex = (_currentPlayerIndex + 1) % _players.Count;
|
||||
Attack(CurrentPlayer, _players[victimIndex]);
|
||||
FinishTurn();
|
||||
}
|
||||
|
||||
private void EnemyAttack()
|
||||
private void BloodCounter()
|
||||
{
|
||||
Attack(_enemy, _user);
|
||||
CurrentPlayer.isBloodCounter = true;
|
||||
FinishTurn();
|
||||
}
|
||||
|
||||
private void UserTakeTurn()
|
||||
private void Defend()
|
||||
{
|
||||
CurrentPlayer.damageReduction = 0.4f;
|
||||
CurrentPlayer.startTurnEffects = ResetDamageReduction;
|
||||
FinishTurn();
|
||||
}
|
||||
|
||||
private void Counter()
|
||||
{
|
||||
CurrentPlayer.isCounter = true;
|
||||
FinishTurn();
|
||||
}
|
||||
|
||||
private void StartTurn()
|
||||
{
|
||||
CurrentPlayer.isCounter = false;
|
||||
if (CurrentPlayer.isStunned)
|
||||
{
|
||||
Debug.Log("stunned, skipping turn");
|
||||
CurrentPlayer.isStunned = false;
|
||||
FinishTurn();
|
||||
return;
|
||||
}
|
||||
|
||||
// TODO: enable hud.
|
||||
attackButton.interactable = true;
|
||||
attackButton.interactable = CurrentPlayer.isHumanControlled;
|
||||
bloodCounterButton.interactable = CurrentPlayer.isHumanControlled;
|
||||
defendButton.interactable = CurrentPlayer.isHumanControlled;
|
||||
counterButton.interactable = CurrentPlayer.isHumanControlled;
|
||||
|
||||
CurrentPlayer.startTurnEffects?.Invoke(CurrentPlayer);
|
||||
CurrentPlayer.startTurnEffects = null;
|
||||
|
||||
// TODO: controller.
|
||||
if (!CurrentPlayer.isHumanControlled)
|
||||
{
|
||||
_enemyLogic.TakeTurn();
|
||||
}
|
||||
}
|
||||
|
||||
private void ResetDamageReduction(Player p)
|
||||
{
|
||||
p.damageReduction = 1f;
|
||||
}
|
||||
|
||||
private void Attack(Player attacker, Player victim)
|
||||
{
|
||||
victim.Health -= attacker.Damage;
|
||||
victim.UpdateHealth();
|
||||
if (victim.Health <= 0)
|
||||
if (victim.isCounter)
|
||||
{
|
||||
attacker.isStunned = true;
|
||||
Debug.Log("COUNTER");
|
||||
return;
|
||||
}
|
||||
victim.TakeDamage((int)(attacker.damage * attacker.damageModification));
|
||||
// damage mod is spent whenever they attack.
|
||||
attacker.damageModification = 1;
|
||||
attacker.isBloodCounter = false;
|
||||
if (victim.health <= 0)
|
||||
{
|
||||
Debug.Log("The victim died!");
|
||||
}
|
||||
|
|
|
@ -1,11 +1,39 @@
|
|||
using System;
|
||||
using UnityEngine;
|
||||
using Random = System.Random;
|
||||
|
||||
public class EnemyAi
|
||||
{
|
||||
public Action AttackCallback;
|
||||
public Action attackCallback;
|
||||
public Action defendCallback;
|
||||
public Action counterCallback;
|
||||
|
||||
private Random rng;
|
||||
|
||||
public EnemyAi()
|
||||
{
|
||||
rng = new Random(1337);
|
||||
}
|
||||
|
||||
// TODO: will need more information, not sure what info should be exposed.
|
||||
public void TakeTurn()
|
||||
{
|
||||
AttackCallback();
|
||||
var number = rng.Next(1, 4);
|
||||
Debug.Log($"enemy rolled {number}");
|
||||
switch (number)
|
||||
{
|
||||
case 1:
|
||||
attackCallback();
|
||||
break;
|
||||
case 2:
|
||||
defendCallback();
|
||||
break;
|
||||
case 3:
|
||||
counterCallback();
|
||||
break;
|
||||
default:
|
||||
Debug.LogWarning($"Enemy rolled something that it can't do {number}");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
using System;
|
||||
|
||||
public class Player
|
||||
{
|
||||
public int health;
|
||||
public int damage;
|
||||
public float damageReduction = 1.0f;
|
||||
public float damageModification = 1.0f;
|
||||
public bool isBloodCounter;
|
||||
public bool isCounter;
|
||||
public bool isStunned;
|
||||
public bool isHumanControlled;
|
||||
|
||||
public Action<int> updateHealth;
|
||||
public Action<Player> startTurnEffects;
|
||||
|
||||
public void TakeDamage(int incomingDamage)
|
||||
{
|
||||
var modifiedDamage = (int) (incomingDamage * damageReduction);
|
||||
// Not sure if blood counter should negate damage or not...
|
||||
if (isBloodCounter)
|
||||
{
|
||||
damageModification += (modifiedDamage * 0.15F);
|
||||
}
|
||||
health -= modifiedDamage;
|
||||
|
||||
updateHealth(health);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 374046a0afc221d459f369d95fc41b42
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 6102af983b4288d43986464bb29c3e7c
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
After Width: | Height: | Size: 32 KiB |
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,89 @@
|
|||
<TextureAtlas imagePath="sheet.png">
|
||||
<SubTexture name="arrowBeige_left.png" x="303" y="486" width="22" height="21"/>
|
||||
<SubTexture name="arrowBeige_right.png" x="171" y="486" width="22" height="21"/>
|
||||
<SubTexture name="arrowBlue_left.png" x="193" y="486" width="22" height="21"/>
|
||||
<SubTexture name="arrowBlue_right.png" x="215" y="486" width="22" height="21"/>
|
||||
<SubTexture name="arrowBrown_left.png" x="237" y="486" width="22" height="21"/>
|
||||
<SubTexture name="arrowBrown_right.png" x="325" y="486" width="22" height="21"/>
|
||||
<SubTexture name="arrowSilver_left.png" x="281" y="486" width="22" height="21"/>
|
||||
<SubTexture name="arrowSilver_right.png" x="259" y="486" width="22" height="21"/>
|
||||
<SubTexture name="barBack_horizontalLeft.png" x="372" y="330" width="9" height="18"/>
|
||||
<SubTexture name="barBack_horizontalMid.png" x="338" y="386" width="18" height="18"/>
|
||||
<SubTexture name="barBack_horizontalRight.png" x="190" y="294" width="9" height="18"/>
|
||||
<SubTexture name="barBack_verticalBottom.png" x="290" y="189" width="18" height="9"/>
|
||||
<SubTexture name="barBack_verticalMid.png" x="338" y="404" width="18" height="18"/>
|
||||
<SubTexture name="barBack_verticalTop.png" x="338" y="440" width="18" height="9"/>
|
||||
<SubTexture name="barBlue_horizontalBlue.png" x="356" y="431" width="18" height="18"/>
|
||||
<SubTexture name="barBlue_horizontalLeft.png" x="372" y="294" width="9" height="18"/>
|
||||
<SubTexture name="barBlue_horizontalRight.png" x="372" y="312" width="9" height="18"/>
|
||||
<SubTexture name="barBlue_verticalBottom.png" x="344" y="189" width="18" height="9"/>
|
||||
<SubTexture name="barBlue_verticalMid.png" x="356" y="386" width="18" height="18"/>
|
||||
<SubTexture name="barBlue_verticalTop.png" x="356" y="404" width="18" height="9"/>
|
||||
<SubTexture name="barGreen_horizontalLeft.png" x="370" y="108" width="9" height="18"/>
|
||||
<SubTexture name="barGreen_horizontalMid.png" x="338" y="368" width="18" height="18"/>
|
||||
<SubTexture name="barGreen_horizontalRight.png" x="190" y="312" width="9" height="18"/>
|
||||
<SubTexture name="barGreen_verticalBottom.png" x="338" y="467" width="18" height="9"/>
|
||||
<SubTexture name="barGreen_verticalMid.png" x="356" y="413" width="18" height="18"/>
|
||||
<SubTexture name="barGreen_verticalTop.png" x="171" y="476" width="18" height="9"/>
|
||||
<SubTexture name="barRed_horizontalLeft.png" x="370" y="90" width="9" height="18"/>
|
||||
<SubTexture name="barRed_horizontalMid.png" x="356" y="368" width="18" height="18"/>
|
||||
<SubTexture name="barRed_horizontalRight.png" x="190" y="348" width="9" height="18"/>
|
||||
<SubTexture name="barRed_verticalBottom.png" x="347" y="503" width="18" height="9"/>
|
||||
<SubTexture name="barRed_verticalMid.png" x="347" y="485" width="18" height="18"/>
|
||||
<SubTexture name="barRed_verticalTop.png" x="338" y="476" width="18" height="9"/>
|
||||
<SubTexture name="barYellow_horizontalLeft.png" x="370" y="126" width="9" height="18"/>
|
||||
<SubTexture name="barYellow_horizontalMid.png" x="338" y="449" width="18" height="18"/>
|
||||
<SubTexture name="barYellow_horizontalRight.png" x="190" y="330" width="9" height="18"/>
|
||||
<SubTexture name="barYellow_verticalBottom.png" x="326" y="189" width="18" height="9"/>
|
||||
<SubTexture name="barYellow_verticalMid.png" x="338" y="422" width="18" height="18"/>
|
||||
<SubTexture name="barYellow_verticalTop.png" x="308" y="189" width="18" height="9"/>
|
||||
<SubTexture name="buttonLong_beige.png" x="0" y="282" width="190" height="49"/>
|
||||
<SubTexture name="buttonLong_beige_pressed.png" x="0" y="237" width="190" height="45"/>
|
||||
<SubTexture name="buttonLong_blue.png" x="0" y="188" width="190" height="49"/>
|
||||
<SubTexture name="buttonLong_blue_pressed.png" x="0" y="143" width="190" height="45"/>
|
||||
<SubTexture name="buttonLong_brown.png" x="0" y="49" width="190" height="49"/>
|
||||
<SubTexture name="buttonLong_brown_pressed.png" x="0" y="98" width="190" height="45"/>
|
||||
<SubTexture name="buttonLong_grey.png" x="0" y="0" width="190" height="49"/>
|
||||
<SubTexture name="buttonLong_grey_pressed.png" x="0" y="331" width="190" height="45"/>
|
||||
<SubTexture name="buttonRound_beige.png" x="335" y="76" width="35" height="38"/>
|
||||
<SubTexture name="buttonRound_blue.png" x="335" y="38" width="35" height="38"/>
|
||||
<SubTexture name="buttonRound_brown.png" x="335" y="114" width="35" height="38"/>
|
||||
<SubTexture name="buttonRound_grey.png" x="335" y="0" width="35" height="38"/>
|
||||
<SubTexture name="buttonSquare_beige.png" x="293" y="294" width="45" height="49"/>
|
||||
<SubTexture name="buttonSquare_beige_pressed.png" x="290" y="94" width="45" height="45"/>
|
||||
<SubTexture name="buttonSquare_blue.png" x="290" y="0" width="45" height="49"/>
|
||||
<SubTexture name="buttonSquare_blue_pressed.png" x="290" y="139" width="45" height="45"/>
|
||||
<SubTexture name="buttonSquare_brown.png" x="293" y="343" width="45" height="49"/>
|
||||
<SubTexture name="buttonSquare_brown_pressed.png" x="293" y="392" width="45" height="45"/>
|
||||
<SubTexture name="buttonSquare_grey.png" x="293" y="437" width="45" height="49"/>
|
||||
<SubTexture name="buttonSquare_grey_pressed.png" x="290" y="49" width="45" height="45"/>
|
||||
<SubTexture name="cursorGauntlet_blue.png" x="30" y="482" width="30" height="30"/>
|
||||
<SubTexture name="cursorGauntlet_bronze.png" x="0" y="482" width="30" height="30"/>
|
||||
<SubTexture name="cursorGauntlet_grey.png" x="60" y="482" width="30" height="30"/>
|
||||
<SubTexture name="cursorHand_beige.png" x="90" y="482" width="27" height="28"/>
|
||||
<SubTexture name="cursorHand_blue.png" x="117" y="482" width="27" height="28"/>
|
||||
<SubTexture name="cursorHand_grey.png" x="144" y="482" width="27" height="28"/>
|
||||
<SubTexture name="cursorSword_bronze.png" x="338" y="331" width="34" height="37"/>
|
||||
<SubTexture name="cursorSword_gold.png" x="338" y="294" width="34" height="37"/>
|
||||
<SubTexture name="cursorSword_silver.png" x="335" y="152" width="34" height="37"/>
|
||||
<SubTexture name="iconCheck_beige.png" x="369" y="184" width="16" height="15"/>
|
||||
<SubTexture name="iconCheck_blue.png" x="370" y="30" width="16" height="15"/>
|
||||
<SubTexture name="iconCheck_bronze.png" x="370" y="45" width="16" height="15"/>
|
||||
<SubTexture name="iconCheck_grey.png" x="370" y="75" width="16" height="15"/>
|
||||
<SubTexture name="iconCircle_beige.png" x="356" y="466" width="17" height="17"/>
|
||||
<SubTexture name="iconCircle_blue.png" x="365" y="483" width="17" height="17"/>
|
||||
<SubTexture name="iconCircle_brown.png" x="369" y="152" width="17" height="17"/>
|
||||
<SubTexture name="iconCircle_grey.png" x="356" y="449" width="17" height="17"/>
|
||||
<SubTexture name="iconCross_beige.png" x="369" y="169" width="16" height="15"/>
|
||||
<SubTexture name="iconCross_blue.png" x="370" y="15" width="16" height="15"/>
|
||||
<SubTexture name="iconCross_brown.png" x="370" y="0" width="16" height="15"/>
|
||||
<SubTexture name="iconCross_grey.png" x="370" y="60" width="16" height="15"/>
|
||||
<SubTexture name="panelInset_beige.png" x="200" y="294" width="93" height="94"/>
|
||||
<SubTexture name="panelInset_beigeLight.png" x="190" y="200" width="93" height="94"/>
|
||||
<SubTexture name="panelInset_blue.png" x="200" y="388" width="93" height="94"/>
|
||||
<SubTexture name="panelInset_brown.png" x="283" y="200" width="93" height="94"/>
|
||||
<SubTexture name="panel_beige.png" x="190" y="100" width="100" height="100"/>
|
||||
<SubTexture name="panel_beigeLight.png" x="100" y="376" width="100" height="100"/>
|
||||
<SubTexture name="panel_blue.png" x="190" y="0" width="100" height="100"/>
|
||||
<SubTexture name="panel_brown.png" x="0" y="376" width="100" height="100"/>
|
||||
</TextureAtlas>
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: eb81e257b5879c4479ed1e2a1874505f
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 575a86d4fe7d22f4f915b9d1c09778e9
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,9 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 23aa647f2fb21bf46b850587506ba4a2
|
||||
folderAsset: yes
|
||||
timeCreated: 1430572177
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,281 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Xml;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
public class TextureAtlasSlicer : EditorWindow {
|
||||
[MenuItem("CONTEXT/TextureImporter/Slice Sprite Using XML")]
|
||||
public static void SliceUsingXML(MenuCommand command) {
|
||||
var textureImporter = command.context as TextureImporter;
|
||||
|
||||
var window = CreateInstance<TextureAtlasSlicer>();
|
||||
|
||||
window.importer = textureImporter;
|
||||
|
||||
window.ShowUtility();
|
||||
}
|
||||
|
||||
[MenuItem("Assets/Slice Sprite Using XML")]
|
||||
public static void TextureAtlasSlicerWindow() {
|
||||
var window = CreateInstance<TextureAtlasSlicer>();
|
||||
|
||||
window.Show();
|
||||
}
|
||||
|
||||
[MenuItem("CONTEXT/TextureImporter/Slice Sprite Using XML", true)]
|
||||
public static bool ValidateSliceUsingXML(MenuCommand command) {
|
||||
var textureImporter = command.context as TextureImporter;
|
||||
|
||||
//valid only if the texture type is 'sprite' or 'advanced'.
|
||||
return textureImporter && textureImporter.textureType == TextureImporterType.Sprite ||
|
||||
textureImporter.textureType == TextureImporterType.Default;
|
||||
}
|
||||
|
||||
public TextureImporter importer;
|
||||
|
||||
public TextureAtlasSlicer() {
|
||||
titleContent = new GUIContent("XML Slicer");
|
||||
}
|
||||
|
||||
|
||||
[SerializeField]
|
||||
private TextAsset xmlAsset;
|
||||
|
||||
public SpriteAlignment spriteAlignment = SpriteAlignment.Center;
|
||||
|
||||
public Vector2 customOffset = new Vector2(0.5f, 0.5f);
|
||||
|
||||
public void OnSelectionChange() {
|
||||
UseSelectedTexture();
|
||||
}
|
||||
|
||||
private Texture2D selectedTexture;
|
||||
|
||||
private void UseSelectedTexture() {
|
||||
if (Selection.objects.Length > 1) {
|
||||
selectedTexture = null;
|
||||
} else {
|
||||
selectedTexture = Selection.activeObject as Texture2D;
|
||||
}
|
||||
|
||||
if (selectedTexture != null) {
|
||||
var assetPath = AssetDatabase.GetAssetPath(selectedTexture);
|
||||
|
||||
importer = AssetImporter.GetAtPath(assetPath) as TextureImporter;
|
||||
|
||||
if (importer) {
|
||||
var extension = Path.GetExtension(assetPath);
|
||||
var pathWithoutExtension = assetPath.Remove(assetPath.Length - extension.Length, extension.Length);
|
||||
|
||||
var xmlPath = pathWithoutExtension + ".xml";
|
||||
|
||||
var textAsset = AssetDatabase.LoadAssetAtPath(xmlPath, typeof (TextAsset));
|
||||
|
||||
if (textAsset != null) {
|
||||
xmlAsset = textAsset as TextAsset;
|
||||
} else {
|
||||
xmlAsset = null;
|
||||
subTextures = null;
|
||||
}
|
||||
|
||||
ParseXML();
|
||||
} else {
|
||||
xmlAsset = null;
|
||||
subTextures = null;
|
||||
}
|
||||
} else {
|
||||
importer = null;
|
||||
xmlAsset = null;
|
||||
subTextures = null;
|
||||
}
|
||||
|
||||
Repaint();
|
||||
}
|
||||
|
||||
private SubTexture[] subTextures;
|
||||
private int wantedWidth, wantedHeight;
|
||||
|
||||
private void ParseXML() {
|
||||
try {
|
||||
var document = new XmlDocument();
|
||||
document.LoadXml(xmlAsset.text);
|
||||
|
||||
var root = document.DocumentElement;
|
||||
if (root == null || root.Name != "TextureAtlas") {
|
||||
return;
|
||||
}
|
||||
|
||||
subTextures = root.ChildNodes
|
||||
.Cast<XmlNode>()
|
||||
.Where(childNode => childNode.Name == "SubTexture")
|
||||
.Select(childNode => new SubTexture {
|
||||
width = Convert.ToInt32(childNode.Attributes["width"].Value),
|
||||
height = Convert.ToInt32(childNode.Attributes["height"].Value),
|
||||
x = Convert.ToInt32(childNode.Attributes["x"].Value),
|
||||
y = Convert.ToInt32(childNode.Attributes["y"].Value),
|
||||
name = childNode.Attributes["name"].Value
|
||||
}).ToArray();
|
||||
|
||||
wantedWidth = 0;
|
||||
wantedHeight = 0;
|
||||
|
||||
foreach (var subTexture in subTextures) {
|
||||
var right = subTexture.x + subTexture.width;
|
||||
var bottom = subTexture.y + subTexture.height;
|
||||
|
||||
wantedWidth = Mathf.Max(wantedWidth, right);
|
||||
wantedHeight = Mathf.Max(wantedHeight, bottom);
|
||||
}
|
||||
} catch (Exception) {
|
||||
subTextures = null;
|
||||
}
|
||||
}
|
||||
|
||||
public void OnEnable() {
|
||||
UseSelectedTexture();
|
||||
}
|
||||
|
||||
public void OnGUI() {
|
||||
if (importer == null) {
|
||||
EditorGUILayout.LabelField("Please select a texture to slice.");
|
||||
return;
|
||||
}
|
||||
EditorGUI.BeginDisabledGroup(focusedWindow != this);
|
||||
{
|
||||
EditorGUI.BeginDisabledGroup(true);
|
||||
EditorGUILayout.ObjectField("Texture", Selection.activeObject, typeof (Texture), false);
|
||||
EditorGUI.EndDisabledGroup();
|
||||
|
||||
if (importer.textureType != TextureImporterType.Sprite &&
|
||||
importer.textureType != TextureImporterType.Default) {
|
||||
EditorGUILayout.LabelField("The Texture Type needs to be Sprite or Advanced!");
|
||||
}
|
||||
|
||||
EditorGUI.BeginDisabledGroup((importer.textureType != TextureImporterType.Sprite &&
|
||||
importer.textureType != TextureImporterType.Default));
|
||||
{
|
||||
EditorGUI.BeginChangeCheck();
|
||||
xmlAsset = EditorGUILayout.ObjectField("XML Source", xmlAsset, typeof (TextAsset), false) as TextAsset;
|
||||
if (EditorGUI.EndChangeCheck()) {
|
||||
ParseXML();
|
||||
}
|
||||
|
||||
spriteAlignment = (SpriteAlignment) EditorGUILayout.EnumPopup("Pivot", spriteAlignment);
|
||||
|
||||
EditorGUI.BeginDisabledGroup(spriteAlignment != SpriteAlignment.Custom);
|
||||
EditorGUILayout.Vector2Field("Custom Offset", customOffset);
|
||||
EditorGUI.EndDisabledGroup();
|
||||
|
||||
var needsToResizeTexture = wantedWidth > selectedTexture.width || wantedHeight > selectedTexture.height;
|
||||
|
||||
if (xmlAsset != null && needsToResizeTexture) {
|
||||
EditorGUILayout.LabelField(
|
||||
string.Format("Texture size too small."
|
||||
+ " It needs to be at least {0} by {1} pixels!",
|
||||
wantedWidth,
|
||||
wantedHeight));
|
||||
EditorGUILayout.LabelField("Try changing the Max Size property in the importer.");
|
||||
}
|
||||
|
||||
if (subTextures == null || subTextures.Length == 0) {
|
||||
EditorGUILayout.LabelField("Could not find any SubTextures in XML.");
|
||||
}
|
||||
|
||||
EditorGUI.BeginDisabledGroup(xmlAsset == null || needsToResizeTexture || subTextures == null ||
|
||||
subTextures.Length == 0);
|
||||
if (GUILayout.Button("Slice")) {
|
||||
PerformSlice();
|
||||
}
|
||||
EditorGUI.EndDisabledGroup();
|
||||
}
|
||||
EditorGUI.EndDisabledGroup();
|
||||
}
|
||||
EditorGUI.EndDisabledGroup();
|
||||
}
|
||||
|
||||
private struct SubTexture {
|
||||
public int width;
|
||||
public int height;
|
||||
public int x;
|
||||
public int y;
|
||||
public string name;
|
||||
}
|
||||
|
||||
private void PerformSlice() {
|
||||
if (importer == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
var textureHeight = selectedTexture.height;
|
||||
|
||||
var needsUpdate = false;
|
||||
|
||||
if (importer.spriteImportMode != SpriteImportMode.Multiple) {
|
||||
needsUpdate = true;
|
||||
importer.spriteImportMode = SpriteImportMode.Multiple;
|
||||
}
|
||||
|
||||
var wantedSpriteSheet = (from subTexture in subTextures
|
||||
let actualY = textureHeight - (subTexture.y + subTexture.height)
|
||||
select new SpriteMetaData {
|
||||
alignment = (int) spriteAlignment,
|
||||
border = new Vector4(),
|
||||
name = subTexture.name,
|
||||
pivot = GetPivotValue(spriteAlignment, customOffset),
|
||||
rect = new Rect(subTexture.x, actualY, subTexture.width, subTexture.height)
|
||||
}).ToArray();
|
||||
if (!needsUpdate && !importer.spritesheet.SequenceEqual(wantedSpriteSheet)) {
|
||||
needsUpdate = true;
|
||||
importer.spritesheet = wantedSpriteSheet;
|
||||
}
|
||||
|
||||
if (needsUpdate) {
|
||||
EditorUtility.SetDirty(importer);
|
||||
|
||||
try {
|
||||
AssetDatabase.StartAssetEditing();
|
||||
AssetDatabase.ImportAsset(importer.assetPath);
|
||||
|
||||
EditorUtility.DisplayDialog("Success!", "The sprite was sliced successfully.", "OK");
|
||||
} catch (Exception exception) {
|
||||
Debug.LogException(exception);
|
||||
EditorUtility.DisplayDialog("Error", "There was an exception while trying to reimport the image." +
|
||||
"\nPlease check the console log for details.", "OK");
|
||||
} finally {
|
||||
AssetDatabase.StopAssetEditing();
|
||||
}
|
||||
} else {
|
||||
EditorUtility.DisplayDialog("Nope!", "The sprite is already sliced according to this XML file.", "OK");
|
||||
}
|
||||
}
|
||||
|
||||
//SpriteEditorUtility
|
||||
public static Vector2 GetPivotValue(SpriteAlignment alignment, Vector2 customOffset) {
|
||||
switch (alignment) {
|
||||
case SpriteAlignment.Center:
|
||||
return new Vector2(0.5f, 0.5f);
|
||||
case SpriteAlignment.TopLeft:
|
||||
return new Vector2(0.0f, 1f);
|
||||
case SpriteAlignment.TopCenter:
|
||||
return new Vector2(0.5f, 1f);
|
||||
case SpriteAlignment.TopRight:
|
||||
return new Vector2(1f, 1f);
|
||||
case SpriteAlignment.LeftCenter:
|
||||
return new Vector2(0.0f, 0.5f);
|
||||
case SpriteAlignment.RightCenter:
|
||||
return new Vector2(1f, 0.5f);
|
||||
case SpriteAlignment.BottomLeft:
|
||||
return new Vector2(0.0f, 0.0f);
|
||||
case SpriteAlignment.BottomCenter:
|
||||
return new Vector2(0.5f, 0.0f);
|
||||
case SpriteAlignment.BottomRight:
|
||||
return new Vector2(1f, 0.0f);
|
||||
case SpriteAlignment.Custom:
|
||||
return customOffset;
|
||||
default:
|
||||
return Vector2.zero;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 2067bd0762faf2c48910fee768c92901
|
||||
timeCreated: 1430572201
|
||||
licenseType: Store
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -0,0 +1,17 @@
|
|||
# Unity3D-TextureAtlasSlicer
|
||||
Simple and fast tool to import XML spritesheets (TextureAtlas) into Unity3D!
|
||||
|
||||
![Preview Image](https://i.imgur.com/LhmcMjX.png)
|
||||
|
||||
Works very well to import [Kenney's sprite assets](http://opengameart.org/users/kenney)!
|
||||
|
||||
## Usage
|
||||
- Copy this folder to your project's assets directory, or just use the latest .unitypackage file from the [Github project's releases](https://github.com/toxicFork/Unity3D-TextureAtlasSlicer/releases), or the [Unity3D asset store](https://www.assetstore.unity3d.com/en/#!/content/36103)!
|
||||
- You can now use the Assets/Slice Sprite Using XML button!
|
||||
- This will open a window.
|
||||
- Select any sprite asset in your Project window
|
||||
- If it has a XML file with the same name next to it, that XML file will automatically be selected
|
||||
- Otherwise, drag-drop the XML file reference onto the XML Source field in the Texture Atlas Slicer window
|
||||
- Configure the pivot settings
|
||||
- Hit Slice!
|
||||
- Enjoy! :D
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 463e84607d141d645b70834aa062a0d1
|
||||
timeCreated: 1430859603
|
||||
licenseType: Store
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -145,7 +145,8 @@ PlayerSettings:
|
|||
resolutionScalingMode: 0
|
||||
androidSupportedAspectRatio: 1
|
||||
androidMaxAspectRatio: 2.1
|
||||
applicationIdentifier: {}
|
||||
applicationIdentifier:
|
||||
Standalone: com.DefaultCompany.prototurnbasedrpg
|
||||
buildNumber:
|
||||
Standalone: 0
|
||||
iPhone: 0
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
m_EditorVersion: 2020.2.3f1
|
||||
m_EditorVersionWithRevision: 2020.2.3f1 (8ff31bc5bf5b)
|
||||
m_EditorVersion: 2020.2.4f1
|
||||
m_EditorVersionWithRevision: 2020.2.4f1 (becced5a802b)
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
QualitySettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 5
|
||||
m_CurrentQuality: 5
|
||||
m_CurrentQuality: 3
|
||||
m_QualitySettings:
|
||||
- serializedVersion: 2
|
||||
name: Very Low
|
||||
|
@ -165,7 +165,7 @@ QualitySettings:
|
|||
skinWeights: 4
|
||||
textureQuality: 0
|
||||
anisotropicTextures: 2
|
||||
antiAliasing: 2
|
||||
antiAliasing: 0
|
||||
softParticles: 1
|
||||
softVegetation: 1
|
||||
realtimeReflectionProbes: 1
|
||||
|
@ -201,7 +201,7 @@ QualitySettings:
|
|||
skinWeights: 255
|
||||
textureQuality: 0
|
||||
anisotropicTextures: 2
|
||||
antiAliasing: 2
|
||||
antiAliasing: 0
|
||||
softParticles: 1
|
||||
softVegetation: 1
|
||||
realtimeReflectionProbes: 1
|
||||
|
|
Loading…
Reference in New Issue