Добавлен обработчик сигналов

This commit is contained in:
Сергей Бондарь 2026-04-14 15:43:56 +03:00
parent 31b1bef928
commit 04aa5770ec
10 changed files with 514 additions and 72 deletions

View File

@ -0,0 +1,30 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c97246c0e3a7eff46acd53fd591fb800, type: 3}
m_Name: Setting 5
m_EditorClassIdentifier: Assembly-CSharp::Setting
Type: 4
Id: dfgh
Alias: "\u0412\u044B\u0445\u043E\u0434 \u0432 \u043C\u0435\u043D\u044E"
Description: "\u0411\u0443\u043B\u044C\u043A\u0430 \u0442\u0435\u0441\u0442\u043E\u0430\u044F"
BoolValue: 0
IntValue: 0
IntMin: 0
IntMax: 0
IntStep: 0
FloatValue: 0
FloatMin: 0
FloatMax: 0
FloatStep: 0
StringValue:
AllowedValues: []
SignalValue: ExitSettings

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7d29c63ea59e76749bf62849ae0d8c3d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -20,3 +20,4 @@ MonoBehaviour:
- {fileID: 11400000, guid: d2188b0ef32202a4d9ad3df57c2c1eed, type: 2}
- {fileID: 11400000, guid: 446cdce1ef64d65468663efb78cd7e80, type: 2}
- {fileID: 11400000, guid: d8bec6b85774d61438fec8bbbe8e2c11, type: 2}
- {fileID: 11400000, guid: 7d29c63ea59e76749bf62849ae0d8c3d, type: 2}

View File

@ -64,7 +64,7 @@ MonoBehaviour:
IconImage: {fileID: 5877127147719493293}
SettingsContainer: {fileID: 5456184644745422048}
TitleHeight: 70
SettingHeight: 50
SettingHeight: 70
Spacing: 20
SettingViewPrefab: {fileID: 8523326230162255979, guid: 9749b35ba531fcf4592327590f80b37a, type: 3}
--- !u!1 &2135281558882328426

View File

@ -170,7 +170,7 @@ AudioSource:
serializedVersion: 4
OutputAudioMixerGroup: {fileID: 3267350881032310169, guid: 9e60f4c98f741874887713174defa070, type: 2}
m_audioClip: {fileID: 0}
m_Resource: {fileID: 8300000, guid: 548caa46227f86a4f929dd8e94008645, type: 3}
m_Resource: {fileID: 8300000, guid: ec3eab0f94b667640bdc0c95a0668cb9, type: 3}
m_PlayOnAwake: 1
m_Volume: 1
m_Pitch: 1

View File

@ -170,6 +170,67 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &733623714
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 733623716}
- component: {fileID: 733623715}
m_Layer: 0
m_Name: SignalCatcher
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &733623715
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 733623714}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 76dd186285f4f5c4a8f2c3e1b9a3cd19, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::SettingSignalCatcher
signalToCallbackList:
- Signal: ExitSettings
Callback:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 1983379440}
m_TargetAssemblyTypeName: TestExit, Assembly-CSharp
m_MethodName: ExitToMenu
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!4 &733623716
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 733623714}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 706.9815, y: 322.84796, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &853638362
GameObject:
m_ObjectHideFlags: 0
@ -257,8 +318,7 @@ GameObject:
m_Component:
- component: {fileID: 993253815}
- component: {fileID: 993253818}
- component: {fileID: 993253817}
- component: {fileID: 993253816}
- component: {fileID: 993253819}
m_Layer: 5
m_Name: Viewport
m_TagString: Untagged
@ -286,49 +346,6 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: -17}
m_Pivot: {x: 0, y: 1}
--- !u!114 &993253816
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 993253814}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Mask
m_ShowMaskGraphic: 0
--- !u!114 &993253817
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 993253814}
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: 10917, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
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 &993253818
CanvasRenderer:
m_ObjectHideFlags: 0
@ -337,6 +354,20 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 993253814}
m_CullTransparentMesh: 1
--- !u!114 &993253819
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 993253814}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.RectMask2D
m_Padding: {x: 0, y: 0, z: 0, w: 0}
m_Softness: {x: 0, y: 100}
--- !u!1 &1182781884
GameObject:
m_ObjectHideFlags: 0
@ -703,10 +734,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c0343bffc1f51dc4ea7c7d3dc9fc25bf, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::SettingsScreen
NextSetting: 2
NextSetting: 1
PreviousSetting: 0
ChangeSettingPositive: 1
ChangeSettingNegative: 3
ChangeSettingPositive: 3
ChangeSettingNegative: 2
GroupViewPrefab: {fileID: 5195463367869704542, guid: d0e462ba641f9114da23886885450b5f, type: 3}
pointer: {fileID: 1647539554}
scrollRect: {fileID: 1514098326}
@ -719,3 +750,4 @@ SceneRoots:
- {fileID: 371035890}
- {fileID: 2124351232}
- {fileID: 1983379441}
- {fileID: 733623716}

View File

@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
public class SettingSignalCatcher : MonoBehaviour
{
[SerializeField] private List<SignalToCallback> signalToCallbackList;
private void OnEnable() => SignalView.SignalEmmited += HandleSignal;
private void OnDisable() => SignalView.SignalEmmited -= HandleSignal;
public void HandleSignal(string entrySignal)
{
foreach (var signalToCallback in signalToCallbackList)
{
if (signalToCallback.Signal == entrySignal)
{
signalToCallback.Callback?.Invoke();
return;
}
}
Debug.LogWarning($"Callback для сигнала {entrySignal} не задан", this);
}
[Serializable]
class SignalToCallback
{
public string Signal;
public UnityEvent Callback;
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 76dd186285f4f5c4a8f2c3e1b9a3cd19

View File

@ -4,6 +4,12 @@ public class TestExit : MonoBehaviour
{
void Update()
{
if (In.GetButtonDown(InSignal.Service)) SceneLoader.LoadScene("Menu");
if (In.GetButtonDown(InSignal.Service))
ExitToMenu();
}
public void ExitToMenu()
{
SceneLoader.LoadScene("Menu");
}
}

File diff suppressed because one or more lines are too long