Доделал префабы конфигураторов для каждого типа приза

This commit is contained in:
Сергей Бондарь 2026-08-24 15:59:07 +03:00
parent 23fc034e47
commit dd1e8edcda
11 changed files with 2435 additions and 1 deletions

View File

@ -27,9 +27,12 @@ public class MToggle : MonoBehaviour
[SerializeField] private AudioClip DisableSound;
private Sequence _animation;
public bool Value { get; private set; }
public void SetValue(bool value)
{
Value = value;
SoundManager.instance.playClip(value ? EnableSound : DisableSound);
StopAnimation();
@ -40,6 +43,8 @@ public class MToggle : MonoBehaviour
public void DisplayImmediate(bool enable)
{
Value = enable;
var bgColor = enable ? _enabledBgColor : _disabledBgColor;
var handleColor = enable ? _enabledHandleColor : _disabledHandleColor;
var handleX = enable ? _xOffset : -_xOffset;

View File

@ -0,0 +1,423 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2872055672348682947
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2166714241725172564}
- component: {fileID: 3610272716468530649}
- component: {fileID: 1049406941762121891}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2166714241725172564
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2872055672348682947}
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: 7698163084671810053}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 116.2}
m_Pivot: {x: 0.5, y: 0}
--- !u!222 &3610272716468530649
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2872055672348682947}
m_CullTransparentMesh: 1
--- !u!114 &1049406941762121891
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2872055672348682947}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
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_text: "\u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435
\u043F\u0440\u0438\u0437\u0430 \u0438 \u043D\u0430\u0436\u043C\u0438\u0442\u0435
\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: e15a0ab6490ab964998a0786c208c4b2, type: 2}
m_sharedMaterial: {fileID: 4262305343556741190, guid: e15a0ab6490ab964998a0786c208c4b2, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 32
m_fontSizeBase: 32
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 16
m_fontSizeMax: 64
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &3548895642639160110
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2697007139903851628}
- component: {fileID: 2898386233667329125}
- component: {fileID: 6195150281388987687}
m_Layer: 5
m_Name: Icon
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2697007139903851628
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3548895642639160110}
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: 7698163084671810053}
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_AnchoredPosition: {x: 0, y: 131}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2898386233667329125
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3548895642639160110}
m_CullTransparentMesh: 1
--- !u!114 &6195150281388987687
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3548895642639160110}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
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: 0}
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!1 &4721586931901281940
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7698163084671810053}
- component: {fileID: 5497661148036193703}
- component: {fileID: 4217061767172003025}
- component: {fileID: 8201104754896611310}
m_Layer: 5
m_Name: QrConfigurator
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7698163084671810053
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4721586931901281940}
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:
- {fileID: 2697007139903851628}
- {fileID: 2166714241725172564}
- {fileID: 323868616721397340}
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_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 1399.71, y: 500}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5497661148036193703
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4721586931901281940}
m_CullTransparentMesh: 1
--- !u!114 &4217061767172003025
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4721586931901281940}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 0.4415095, g: 0.4415095, b: 0.4415095, 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: 0}
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!114 &8201104754896611310
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4721586931901281940}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 94da2af73d4cfa74e8b93bcc8a865c99, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::QrPrizeConfigurator
icon: {fileID: 6195150281388987687}
textInput: {fileID: 8374879057654731306}
--- !u!1001 &3723280996473435726
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 7698163084671810053}
m_Modifications:
- target: {fileID: 1815018756682420252, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
propertyPath: m_Name
value: TextInput
objectReference: {fileID: 0}
- target: {fileID: 4023223669698428946, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
propertyPath: m_Pivot.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 4023223669698428946, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
propertyPath: m_Pivot.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 4023223669698428946, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
propertyPath: m_AnchorMax.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4023223669698428946, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
propertyPath: m_AnchorMax.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 4023223669698428946, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4023223669698428946, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
propertyPath: m_AnchorMin.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 4023223669698428946, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4023223669698428946, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
propertyPath: m_SizeDelta.y
value: 100
objectReference: {fileID: 0}
- target: {fileID: 4023223669698428946, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4023223669698428946, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4023223669698428946, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4023223669698428946, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4023223669698428946, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4023223669698428946, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4023223669698428946, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 4023223669698428946, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4023223669698428946, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4023223669698428946, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4023223669698428946, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4023223669698428946, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects:
- {fileID: 527443657731143411, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
--- !u!224 &323868616721397340 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 4023223669698428946, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
m_PrefabInstance: {fileID: 3723280996473435726}
m_PrefabAsset: {fileID: 0}
--- !u!114 &8374879057654731306 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 5157268599116440676, guid: dc7d2a24b5df54040b311e8c0c43261e, type: 3}
m_PrefabInstance: {fileID: 3723280996473435726}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b978a8958dc9290419c3d1a666131860, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::TextInput

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 419ede247f441324681aeb7eeacf4ea0
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,26 @@
using PrizeSystem;
using UnityEngine;
using UnityEngine.UI;
public class QrPrizeConfigurator : BasePrizeConfigurator, IControlable
{
[SerializeField] Image icon;
[SerializeField] TextInput textInput;
public override void Configure(PrizeType prizeType)
{
icon.sprite = PrizeSystemManager.GetPrizeIcon(prizeType);
textInput.Initialize(12, Alphabets.RUS_AND_DIGITS);
}
public override void UpdateControls()
{
textInput.UpdateControls();
if (In.GetButtonDownAnyPlayer(PlayerAction.action))
{
Prize prize = PrizeUtils.CreatePrize(textInput.CollectText());
Complete(prize);
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 94da2af73d4cfa74e8b93bcc8a865c99

View File

@ -143,7 +143,7 @@ public class TextInput : MonoBehaviour, IControlable
_slots = null;
}
private string CollectText()
public string CollectText()
{
System.Text.StringBuilder sb = new();
foreach (var slot in _slots)

View File

@ -1,4 +1,6 @@
public static class Alphabets
{
public const string DIGITS = "0123456789";
public const string RUS_AND_DIGITS = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя0123456789";
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: fa4e8b6466206ac4cb113d8b98d3a8e5
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,61 @@
using PrizeSystem;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class VitrinaPrizeConfigurator : BasePrizeConfigurator, IControlable
{
public Image icon;
public Transform pointer;
public List<RectTransform> pivots;
public List<MToggle> toggles;
int index = 0;
public override void Configure(PrizeType prizeType)
{
icon.sprite = PrizeSystemManager.GetPrizeIcon(prizeType);
foreach (var t in toggles)
{
t.DisplayImmediate(false);
}
UpdPointerPos();
}
private void UpdPointerPos()
{
pointer.position = pivots[index].position;
}
public override void UpdateControls()
{
var dir = In.GetAxis(Axis.Vertical, JoystickSide.Both);
index = Mathf.Clamp(index + dir, 0, toggles.Count - 1);
UpdPointerPos();
var toggleDir = In.GetAxis(Axis.Horizontal, JoystickSide.Both);
if (toggleDir != 0)
{
toggles[index].SetValue(toggleDir > 0);
}
if (In.GetButtonDownAnyPlayer(PlayerAction.action))
{
List<int> boxes = new();
for (int i = 0; i < toggles.Count; i++)
{
MToggle toggle = toggles[i];
if (toggle.Value)
{
boxes.Add(i+1);
}
}
Prize prize = PrizeUtils.CreatePrize(boxes.ToArray());
Complete(prize);
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 92ae7d7a393eb0143a4be3df52daaf86