NS版导入归档

This commit is contained in:
sin365 2025-10-07 19:57:45 +08:00
parent a837c73564
commit acda898fb0
79 changed files with 1900 additions and 854 deletions

View File

@ -101,7 +101,7 @@ namespace AxibugEmuOnline.Editors
#endif
string targetName = $"{Application.productName}_{titleid}.nsp";
string _locationPathName = $"Output/NSPBuild/{targetName}";
string _locationPathName = $"Output/NSPBuild/{DateTime.Now.ToString("yyyyMMddHHmmss")}/{targetName}";
var options = new BuildPlayerOptions
{
scenes = levels.ToArray(),
@ -217,8 +217,6 @@ namespace AxibugEmuOnline.Editors
EditorUtility.ClearProgressBar();
}
#region ¸¨Öú·½·¨
static string GetUserInput()
{
@ -288,7 +286,10 @@ namespace AxibugEmuOnline.Editors
if (!string.IsNullOrEmpty(args.Data))
{
errorBuilder.AppendLine(args.Data);
Debug.LogError($"[AxibugNSPTools]{args.Data}");
if (args.Data.Contains("[WARN]"))
Debug.LogWarning($"[AxibugNSPTools]{args.Data}");
else
Debug.LogError($"[AxibugNSPTools]{args.Data}");
}
};

View File

@ -53,7 +53,7 @@ public static class AxiAutoBuild
Build_Global(BuildTarget.EmbeddedLinux);
}
[MenuItem("Axibug移植工具/AutoBuild/Switch")]
[MenuItem("Axibug移植工具/AutoBuild/Switch(打包NSP并重新构建NSP")]
public static void Build_Switch()
{
AxibugNSPTools.BuildWithRepackNSP();

View File

@ -1,14 +0,0 @@
fileFormatVersion: 2
guid: 1ad516ab7bf27b945a96f9c6eca54f10
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3}
generateWrapperCode: 0
wrapperCodePath:
wrapperClassName:
wrapperCodeNamespace:

View File

@ -54,7 +54,7 @@ namespace AxiReplay
{
mRemoteForwardCount = (int)ServerForwardCount;
mNetReplayQueue.Enqueue(inputData);
Debug.Log($"InData=>{inputData.FrameStartID} QCount = >{mNetReplayQueue.Count}");
//Debug.Log($"InData=>{inputData.FrameStartID} QCount = >{mNetReplayQueue.Count}");
mRemoteFrameIdx = inputData.FrameStartID;
if (!bNetInit)
{

View File

@ -632,7 +632,7 @@ namespace cpu.m68000
void STOP()
{
if (S)
if (s)
{
short new_sr = ReadOpWord(PC); PC += 2;
stopped = true;

View File

@ -169,7 +169,7 @@ namespace cpu.m68000
void RESET()
{
if (S)
if (s)
{
pendingCycles -= 132;
}

View File

@ -8,7 +8,7 @@ namespace cpu.m68000
{
int mode = (op >> 3) & 7;
int reg = (op >> 0) & 7;
if (S == false)
if (s == false)
{
//throw new Exception("Write to SR when not in supervisor mode. supposed to trap or something...");
TrapVector2(8);
@ -54,7 +54,7 @@ namespace cpu.m68000
{
int dir = (op >> 3) & 1;
int reg = op & 7;
if (S == false)
if (s == false)
{
//throw new Exception("MOVE to USP when not supervisor. needs to trap");
TrapVector2(8);
@ -76,7 +76,7 @@ namespace cpu.m68000
void ANDI_SR()
{
if (S == false)
if (s == false)
throw new Exception("trap!");
SR &= ReadOpWord(PC); PC += 2;
pendingCycles -= 20;
@ -85,7 +85,7 @@ namespace cpu.m68000
void EORI_SR()
{
if (S == false)
if (s == false)
throw new Exception("trap!");
SR ^= ReadOpWord(PC); PC += 2;
pendingCycles -= 20;
@ -94,7 +94,7 @@ namespace cpu.m68000
void ORI_SR()
{
if (S == false)
if (s == false)
throw new Exception("trap!");
SR |= ReadOpWord(PC); PC += 2;
pendingCycles -= 20;

View File

@ -45,7 +45,7 @@ namespace cpu.m68000
public bool stopped;
/// <summary>Machine/Interrupt mode</summary>
public bool M { get { return m; } set { m = value; } } // TODO probably have some switch logic maybe
//public bool M { get { return m; } set { m = value; } } // TODO probably have some switch logic maybe
public void SetS(bool b1)
{
@ -60,10 +60,11 @@ namespace cpu.m68000
/// <summary>Supervisor/User mode</summary>
public bool S
{
get
{
return s;
}
//减少不必要的访问器堆栈
//get
//{
// return s;
//}
set
{
if (value == s)
@ -109,8 +110,8 @@ namespace cpu.m68000
if (Z) value |= 0x0004;
if (N) value |= 0x0008;
if (X) value |= 0x0010;
if (M) value |= 0x1000;
if (S) value |= 0x2000;
if (m) value |= 0x1000;
if (s) value |= 0x2000;
value |= (short)((InterruptMaskLevel & 7) << 8);
return value;
}
@ -121,7 +122,7 @@ namespace cpu.m68000
Z = (value & 0x0004) != 0;
N = (value & 0x0008) != 0;
X = (value & 0x0010) != 0;
M = (value & 0x1000) != 0;
m = (value & 0x1000) != 0;
S = (value & 0x2000) != 0;
InterruptMaskLevel = (value >> 8) & 7;
//m68ki_check_interrupts();
@ -197,7 +198,7 @@ namespace cpu.m68000
stopped = false;
pendingCycles = 0;
S = true;
M = false;
m = false;
InterruptMaskLevel = 7;
Interrupt = 0;
A[7].s32 = ReadOpLong(0);
@ -287,8 +288,8 @@ namespace cpu.m68000
}
writer.Write(MC68000.m1.PPC);
writer.Write(MC68000.m1.PC);
writer.Write(MC68000.m1.S);
writer.Write(MC68000.m1.M);
writer.Write(MC68000.m1.s);
writer.Write(MC68000.m1.m);
writer.Write(MC68000.m1.X);
writer.Write(MC68000.m1.N);
writer.Write(MC68000.m1.Z);
@ -317,7 +318,7 @@ namespace cpu.m68000
MC68000.m1.PPC = reader.ReadInt32();
MC68000.m1.PC = reader.ReadInt32();
MC68000.m1.SetS(reader.ReadBoolean());
MC68000.m1.M = reader.ReadBoolean();
MC68000.m1.m = reader.ReadBoolean();
MC68000.m1.X = reader.ReadBoolean();
MC68000.m1.N = reader.ReadBoolean();
MC68000.m1.Z = reader.ReadBoolean();

View File

@ -1,5 +1,6 @@
using cpu.m6800;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
namespace MAME.Core
@ -15,7 +16,7 @@ namespace MAME.Core
private static Atime callback_timer_expire_time;
public delegate void timer_fired_func();
public static Action setvector;
public class emu_timer
/*public class emu_timer
{
public TIME_ACT action;
//public string func;
@ -24,6 +25,56 @@ namespace MAME.Core
public Atime period;
public Atime start;
public Atime expire;
}*/
public class emu_timer
{
public TIME_ACT action;
public bool enabled;
public bool temporary;
public Atime period;
public Atime start;
public Atime expire;
internal void reset()
{
action = default;
enabled = default;
temporary = default;
period = default;
start = default;
expire = default;
}
/// <summary>
/// 线程安全队列(因为析构函数是额外线程来的)
/// </summary>
static ConcurrentQueue<emu_timer> _failedDeletions = new ConcurrentQueue<emu_timer>();
public static emu_timer GetEmu_timer()
{
if (_failedDeletions.TryDequeue(out emu_timer obj))
{
obj.reset();
return obj;
}
return new emu_timer();
}
public static void EnqueueObj(emu_timer obj)
{
_failedDeletions.Enqueue(obj);
}
~emu_timer()
{
//咱也没办法这样子来实现emu_timer的回收到对象池。只能这样实现MAME里面对于emu_timer持有引用比较混沌在确保没有引用计数时再安全回池。
//回池,引用计数+1使其不被回收。相当于打断CG回收
//原本没有析构函数时GC是直接回收有析构时则调用后下一次GC再回收但是这就有操作空间了。这里引用计数+1
//GC回收但是不回收请回对象池
//说人话,就是用析构驱动回池,而不破坏现有代码
EnqueueObj(this);
GC.ReRegisterForFinalize(this);//手动注册,否则析构函数再也不会回调
}
}
public class emu_timer2
{
@ -613,7 +664,8 @@ namespace MAME.Core
public static emu_timer timer_alloc_common(TIME_ACT action, bool temp)
{
Atime time = get_current_time();
emu_timer timer = new emu_timer();
//emu_timer timer = new emu_timer();
emu_timer timer = emu_timer.GetEmu_timer();
timer.action = action;
timer.enabled = false;
timer.temporary = temp;

View File

@ -93,7 +93,7 @@
//ushort* curbitmap = curbitmapPtr;
ushort* curbitmap = (ushort*)Video.bitmapbase_Ptrs[Video.curbitmap];
//uint* entry_color = entry_colorPtr;
uint* entry_color = (uint*)Palette.entry_color_Ptr;
uint* entry_color = (uint*)Palette.entry_color;
//int* bitmapcolorRect = bitmapcolorRectPtr;
int* bitmapcolorRect = (int*)Video.bitmapcolorRect_Ptr;

View File

@ -3,13 +3,28 @@ using System.Runtime.InteropServices;
namespace MAME.Core
{
public class Palette
public unsafe class Palette
{
public static uint[] entry_color;
/** entry_color的指针管理 **/
//public static uint[] entry_color;
#region //指针化 entry_color
static uint[] entry_color_src;
static GCHandle entry_color_handle;
public static IntPtr entry_color_Ptr;
/** end **/
public static uint* entry_color;
public static int entry_colorLength;
public static bool entry_color_IsNull => entry_color == null;
public static uint[] entry_color_set
{
set
{
entry_color_handle.ReleaseGCHandle();
entry_color_src = value;
entry_colorLength = value.Length;
entry_color_src.GetObjectPtr(ref entry_color_handle, ref entry_color);
}
}
#endregion
public static float[] entry_contrast;
private static uint trans_uint;
@ -174,18 +189,21 @@ namespace MAME.Core
//entry_color = new uint[numcolors];
entry_color_set = new uint[numcolors];
/** entry_color的指针管理 **/
// 释放句柄
if (entry_color != null && entry_color_handle.IsAllocated)
entry_color_handle.Free();
///** entry_color的指针管理 **/
//// 释放句柄
//if (entry_color != null && entry_color_handle.IsAllocated)
// entry_color_handle.Free();
//entry_color = new uint[numcolors];
//// 固定数组,防止垃圾回收器移动它
//entry_color_handle = GCHandle.Alloc(entry_color, GCHandleType.Pinned);
//// 获取数组的指针
//entry_color_Ptr = entry_color_handle.AddrOfPinnedObject();
///** end **/
///
entry_color = new uint[numcolors];
// 固定数组,防止垃圾回收器移动它
entry_color_handle = GCHandle.Alloc(entry_color, GCHandleType.Pinned);
// 获取数组的指针
entry_color_Ptr = entry_color_handle.AddrOfPinnedObject();
/** end **/

View File

@ -2569,7 +2569,7 @@ namespace MAME.Core
}
public static sbyte cps1_dsw_r(int offset)
{
string[] dswname = { "IN0", "DSWA", "DSWB", "DSWC" };
//string[] dswname = { "IN0", "DSWA", "DSWB", "DSWC" };
int in0 = 0;
if (offset == 0)
{

View File

@ -4,6 +4,23 @@ namespace MAME.Core
{
public partial class CPS
{
static sbyte p3 = 0x1;
static sbyte p3count = 0x0;
static sbyte getp3testKey()
{
sbyte val = (sbyte)((p3count * 2));
if (val == 0)
val = 1;
UnityEngine.Debug.Log($"尝试P3键值{val}");
return val;
}
static void AddtestCount()
{
p3count++;
UnityEngine.Debug.Log($"推进{p3count}当前准备P3键值为{getp3testKey()}");
}
public static void loop_inputports_cps1_6b()
{
if (Keyboard.IsPressed(MotionKey.P1_INSERT_COIN))//if (Keyboard.IsPressed(Corekey.D5))
@ -22,6 +39,41 @@ namespace MAME.Core
{
sbyte0 |= 0x02;
}
if (UnityEngine.Input.GetKeyDown(UnityEngine.KeyCode.LeftShift))
{
AddtestCount();
}
if (Keyboard.IsPressed(MotionKey.P3_INSERT_COIN))//if (Keyboard.IsPressed(Corekey.D5))
{
//sbyte3 &= (sbyte)(~((int)getp3testKey()));
sbyte0 &= ~4;
sbyte0 &= ~8;
sbyte0 &= ~16;
sbyte0 &= ~32;
sbyte0 &= ~64;
}
else
{
//sbyte3 |= (sbyte)(~((int)getp3testKey()));
sbyte0 |= ~4;
sbyte0 |= ~8;
sbyte0 |= ~16;
sbyte0 |= ~32;
sbyte0 |= ~64;
}
if (Keyboard.IsPressed(MotionKey.P4_INSERT_COIN))//if (Keyboard.IsPressed(Corekey.D6))
{
sbyte0 &= ~0x08;
}
else
{
sbyte0 |= 0x08;
}
if (Keyboard.IsPressed(MotionKey.P1_GAMESTART))//if (Keyboard.IsPressed(Corekey.D1))
{
sbyte0 &= ~0x10;

View File

@ -45,7 +45,7 @@ namespace MAME.Core
writer.Write(Sound.mixerstream.output_sampindex);
writer.Write(Sound.mixerstream.output_base_sampindex);
}
public static void LoadStateBinary_pbaction(System.IO.BinaryReader reader)
public unsafe static void LoadStateBinary_pbaction(System.IO.BinaryReader reader)
{
int i;
dsw1 = reader.ReadByte();

View File

@ -25,13 +25,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 173080370084988713}
serializedVersion: 2
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: 7122109429436137579}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1464475178787633862
MonoBehaviour:
@ -78,6 +78,7 @@ MonoBehaviour:
m_DeselectOnBackgroundClick: 1
m_PointerBehavior: 0
m_CursorLockBehavior: 0
m_ScrollDeltaPerTick: 6
--- !u!1 &261166211120060501
GameObject:
m_ObjectHideFlags: 0
@ -111,7 +112,6 @@ RectTransform:
- {fileID: 7813729344275964042}
- {fileID: 4804966765082268001}
m_Father: {fileID: 5169543666820693527}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -167,7 +167,6 @@ RectTransform:
- {fileID: 4140710606298198504}
- {fileID: 3574645515793225367}
m_Father: {fileID: 7122109429436137579}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -191,6 +190,7 @@ Canvas:
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 1
m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
@ -268,7 +268,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8545038260809852605}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -346,6 +345,7 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4747871931704546037}
serializedVersion: 2
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}
@ -356,7 +356,6 @@ Transform:
- {fileID: 5927909303067165599}
- {fileID: 5169543666820693527}
m_Father: {fileID: 0}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &-5568097984606286463
MonoBehaviour:
@ -404,7 +403,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8545038260809852605}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -486,13 +484,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6868843688838274199}
serializedVersion: 2
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: 7122109429436137579}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &5322909716643310759
MonoBehaviour:
@ -537,7 +535,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8545038260809852605}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -607,13 +604,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9087746359628224422}
serializedVersion: 2
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: 7122109429436137579}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!20 &4468044133909204598
Camera:

View File

@ -69,7 +69,7 @@ TextureImporter:
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
maxTextureSize: 128
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
@ -106,6 +106,32 @@ TextureImporter:
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: iOS
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WindowsStoreApps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []

View File

@ -3,7 +3,7 @@ guid: 314357a0742d2564187a8ac67b2926e3
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
@ -20,10 +20,12 @@ TextureImporter:
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
@ -62,10 +64,12 @@ TextureImporter:
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 1
platformSettings:
- serializedVersion: 3
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
maxTextureSize: 512
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
@ -73,9 +77,10 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
@ -85,9 +90,10 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
@ -97,12 +103,40 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: iOS
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WindowsStoreApps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
@ -112,9 +146,11 @@ TextureImporter:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -72,7 +72,7 @@ TextureImporter:
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
maxTextureSize: 512
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1

View File

@ -3,7 +3,7 @@ guid: c300d49e84cf0fb4186c750320e50146
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
@ -20,10 +20,12 @@ TextureImporter:
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
@ -62,10 +64,12 @@ TextureImporter:
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 1
platformSettings:
- serializedVersion: 3
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
maxTextureSize: 512
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
@ -73,9 +77,10 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
@ -85,9 +90,10 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
@ -97,12 +103,40 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: iOS
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WindowsStoreApps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
@ -112,9 +146,11 @@ TextureImporter:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -333,6 +333,34 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1100500336380202360, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1100500336380202360, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1100500336380202360, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1100500336380202360, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1100500336380202360, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1100500336380202360, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1100500336380202360, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1471584936616359931, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMax.y
value: 1
@ -677,6 +705,38 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5970282275929291192, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5970282275929291192, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5970282275929291192, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5970282275929291192, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5970282275929291192, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5970282275929291192, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5970282275929291192, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5970282275929291192, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6030618878828304669, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalRotation.w
value: 1
@ -737,6 +797,38 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6878964193873653430, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6878964193873653430, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6878964193873653430, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6878964193873653430, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6878964193873653430, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6878964193873653430, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6878964193873653430, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6878964193873653430, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7216060871118576844, guid: d3c2508a55398a24db5d68f68d2702ea, type: 3}
propertyPath: m_AnchorMax.y
value: 0

View File

@ -32,7 +32,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -130,7 +129,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6087025893861054323}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -188,7 +186,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Version: 300
m_EffectMaterial: {fileID: 8846503690602400904, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectMaterial: {fileID: 21305736874167728, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectFactor: 0
m_ColorFactor: 0
m_BlurFactor: 0
@ -223,7 +221,7 @@ MonoBehaviour:
m_UseGraphicAlpha: 0
--- !u!95 &2059277597780235898
Animator:
serializedVersion: 5
serializedVersion: 7
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -237,10 +235,12 @@ Animator:
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_AnimatePhysics: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!1 &1776357407830023228
GameObject:
m_ObjectHideFlags: 0
@ -275,7 +275,6 @@ RectTransform:
- {fileID: 1323634865265500141}
- {fileID: 331028397738758164}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -371,7 +370,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 331028397738758164}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
@ -448,7 +446,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -545,7 +542,6 @@ RectTransform:
m_Children:
- {fileID: 8754483333502849411}
m_Father: {fileID: 0}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@ -628,7 +624,6 @@ RectTransform:
m_Children:
- {fileID: 8865437771338118001}
m_Father: {fileID: 331028397738758164}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -707,7 +702,6 @@ RectTransform:
- {fileID: 2303118795734916657}
- {fileID: 4467178468921796307}
m_Father: {fileID: 6087025893861054323}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@ -728,7 +722,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Content: {fileID: 8865437771338118001}
m_Horizontal: 0
m_Vertical: 1
m_Vertical: 0
m_MovementType: 0
m_Elasticity: 0.1
m_Inertia: 1
@ -814,7 +808,6 @@ RectTransform:
- {fileID: 9038541706626733903}
- {fileID: 8126322204359135913}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -911,7 +904,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -1007,7 +999,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2303118795734916657}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
@ -1102,7 +1093,6 @@ RectTransform:
- {fileID: 6087025893861054323}
- {fileID: 8789823129857705082}
m_Father: {fileID: 1998281097548910301}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}

View File

@ -991,7 +991,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Content: {fileID: 2959939562593878400}
m_Horizontal: 0
m_Vertical: 1
m_Vertical: 0
m_MovementType: 0
m_Elasticity: 0.1
m_Inertia: 1

View File

@ -32,7 +32,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -130,7 +129,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6087025893861054323}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -188,7 +186,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Version: 300
m_EffectMaterial: {fileID: 8846503690602400904, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectMaterial: {fileID: 21305736874167728, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectFactor: 0
m_ColorFactor: 0
m_BlurFactor: 0
@ -223,7 +221,7 @@ MonoBehaviour:
m_UseGraphicAlpha: 0
--- !u!95 &2059277597780235898
Animator:
serializedVersion: 5
serializedVersion: 7
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -237,10 +235,12 @@ Animator:
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_AnimatePhysics: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!1 &1776357407830023228
GameObject:
m_ObjectHideFlags: 0
@ -275,7 +275,6 @@ RectTransform:
- {fileID: 1323634865265500141}
- {fileID: 331028397738758164}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -371,7 +370,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 331028397738758164}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
@ -448,7 +446,6 @@ RectTransform:
m_Children:
- {fileID: 8754483333502849411}
m_Father: {fileID: 0}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@ -534,7 +531,6 @@ RectTransform:
m_Children:
- {fileID: 8865437771338118001}
m_Father: {fileID: 331028397738758164}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -613,7 +609,6 @@ RectTransform:
- {fileID: 2303118795734916657}
- {fileID: 4467178468921796307}
m_Father: {fileID: 6087025893861054323}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@ -634,7 +629,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Content: {fileID: 8865437771338118001}
m_Horizontal: 0
m_Vertical: 1
m_Vertical: 0
m_MovementType: 0
m_Elasticity: 0.1
m_Inertia: 1
@ -720,7 +715,6 @@ RectTransform:
- {fileID: 1559746939363341302}
- {fileID: 8126322204359135913}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -817,7 +811,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -912,7 +905,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2303118795734916657}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
@ -992,7 +984,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -1090,7 +1081,6 @@ RectTransform:
- {fileID: 6087025893861054323}
- {fileID: 8789823129857705082}
m_Father: {fileID: 1998281097548910301}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}

View File

@ -32,7 +32,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -130,7 +129,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6087025893861054323}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -188,7 +186,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Version: 300
m_EffectMaterial: {fileID: 8846503690602400904, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectMaterial: {fileID: 21305736874167728, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectFactor: 0
m_ColorFactor: 0
m_BlurFactor: 0
@ -223,7 +221,7 @@ MonoBehaviour:
m_UseGraphicAlpha: 0
--- !u!95 &2059277597780235898
Animator:
serializedVersion: 5
serializedVersion: 7
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -237,10 +235,12 @@ Animator:
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_AnimatePhysics: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!1 &1776357407830023228
GameObject:
m_ObjectHideFlags: 0
@ -275,7 +275,6 @@ RectTransform:
- {fileID: 1323634865265500141}
- {fileID: 331028397738758164}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -371,7 +370,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 331028397738758164}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
@ -448,7 +446,6 @@ RectTransform:
m_Children:
- {fileID: 8754483333502849411}
m_Father: {fileID: 0}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@ -534,7 +531,6 @@ RectTransform:
m_Children:
- {fileID: 8865437771338118001}
m_Father: {fileID: 331028397738758164}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -613,7 +609,6 @@ RectTransform:
- {fileID: 2303118795734916657}
- {fileID: 4467178468921796307}
m_Father: {fileID: 6087025893861054323}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@ -634,7 +629,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Content: {fileID: 8865437771338118001}
m_Horizontal: 0
m_Vertical: 1
m_Vertical: 0
m_MovementType: 0
m_Elasticity: 0.1
m_Inertia: 1
@ -720,7 +715,6 @@ RectTransform:
- {fileID: 1559746939363341302}
- {fileID: 8126322204359135913}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -817,7 +811,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -912,7 +905,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2303118795734916657}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
@ -992,7 +984,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -1090,7 +1081,6 @@ RectTransform:
- {fileID: 6087025893861054323}
- {fileID: 8789823129857705082}
m_Father: {fileID: 1998281097548910301}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}

View File

@ -991,7 +991,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Content: {fileID: 2959939562593878400}
m_Horizontal: 0
m_Vertical: 1
m_Vertical: 0
m_MovementType: 0
m_Elasticity: 0.1
m_Inertia: 1

View File

@ -991,7 +991,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Content: {fileID: 2959939562593878400}
m_Horizontal: 0
m_Vertical: 1
m_Vertical: 0
m_MovementType: 0
m_Elasticity: 0.1
m_Inertia: 1

View File

@ -991,7 +991,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Content: {fileID: 2959939562593878400}
m_Horizontal: 0
m_Vertical: 1
m_Vertical: 0
m_MovementType: 0
m_Elasticity: 0.1
m_Inertia: 1

View File

@ -991,7 +991,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Content: {fileID: 2959939562593878400}
m_Horizontal: 0
m_Vertical: 1
m_Vertical: 0
m_MovementType: 0
m_Elasticity: 0.1
m_Inertia: 1

View File

@ -629,7 +629,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Content: {fileID: 8865437771338118001}
m_Horizontal: 0
m_Vertical: 1
m_Vertical: 0
m_MovementType: 0
m_Elasticity: 0.1
m_Inertia: 1

View File

@ -991,7 +991,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Content: {fileID: 2959939562593878400}
m_Horizontal: 0
m_Vertical: 1
m_Vertical: 0
m_MovementType: 0
m_Elasticity: 0.1
m_Inertia: 1

View File

@ -32,7 +32,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -130,7 +129,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6087025893861054323}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -188,7 +186,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Version: 300
m_EffectMaterial: {fileID: 8846503690602400904, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectMaterial: {fileID: 21305736874167728, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectFactor: 0
m_ColorFactor: 0
m_BlurFactor: 0
@ -223,7 +221,7 @@ MonoBehaviour:
m_UseGraphicAlpha: 0
--- !u!95 &2059277597780235898
Animator:
serializedVersion: 5
serializedVersion: 7
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -237,10 +235,12 @@ Animator:
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_AnimatePhysics: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!1 &1776357407830023228
GameObject:
m_ObjectHideFlags: 0
@ -275,7 +275,6 @@ RectTransform:
- {fileID: 1323634865265500141}
- {fileID: 331028397738758164}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -371,7 +370,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 331028397738758164}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
@ -448,7 +446,6 @@ RectTransform:
m_Children:
- {fileID: 8754483333502849411}
m_Father: {fileID: 0}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@ -534,7 +531,6 @@ RectTransform:
m_Children:
- {fileID: 8865437771338118001}
m_Father: {fileID: 331028397738758164}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -613,7 +609,6 @@ RectTransform:
- {fileID: 2303118795734916657}
- {fileID: 4467178468921796307}
m_Father: {fileID: 6087025893861054323}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@ -634,7 +629,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Content: {fileID: 8865437771338118001}
m_Horizontal: 0
m_Vertical: 1
m_Vertical: 0
m_MovementType: 0
m_Elasticity: 0.1
m_Inertia: 1
@ -720,7 +715,6 @@ RectTransform:
- {fileID: 1559746939363341302}
- {fileID: 8126322204359135913}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -817,7 +811,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -912,7 +905,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2303118795734916657}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
@ -992,7 +984,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -1090,7 +1081,6 @@ RectTransform:
- {fileID: 6087025893861054323}
- {fileID: 8789823129857705082}
m_Father: {fileID: 1998281097548910301}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}

View File

@ -32,7 +32,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -130,7 +129,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6087025893861054323}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -188,7 +186,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Version: 300
m_EffectMaterial: {fileID: 8846503690602400904, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectMaterial: {fileID: 21305736874167728, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectFactor: 0
m_ColorFactor: 0
m_BlurFactor: 0
@ -223,7 +221,7 @@ MonoBehaviour:
m_UseGraphicAlpha: 0
--- !u!95 &2059277597780235898
Animator:
serializedVersion: 5
serializedVersion: 7
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -237,10 +235,12 @@ Animator:
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_AnimatePhysics: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!1 &1776357407830023228
GameObject:
m_ObjectHideFlags: 0
@ -275,7 +275,6 @@ RectTransform:
- {fileID: 1323634865265500141}
- {fileID: 331028397738758164}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -371,7 +370,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 331028397738758164}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
@ -448,7 +446,6 @@ RectTransform:
m_Children:
- {fileID: 8754483333502849411}
m_Father: {fileID: 0}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@ -534,7 +531,6 @@ RectTransform:
m_Children:
- {fileID: 8865437771338118001}
m_Father: {fileID: 331028397738758164}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -613,7 +609,6 @@ RectTransform:
- {fileID: 2303118795734916657}
- {fileID: 4467178468921796307}
m_Father: {fileID: 6087025893861054323}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@ -720,7 +715,6 @@ RectTransform:
- {fileID: 1559746939363341302}
- {fileID: 8126322204359135913}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -817,7 +811,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -912,7 +905,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2303118795734916657}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
@ -992,7 +984,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -1090,7 +1081,6 @@ RectTransform:
- {fileID: 6087025893861054323}
- {fileID: 8789823129857705082}
m_Father: {fileID: 1998281097548910301}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}

View File

@ -991,7 +991,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Content: {fileID: 2959939562593878400}
m_Horizontal: 0
m_Vertical: 1
m_Vertical: 0
m_MovementType: 0
m_Elasticity: 0.1
m_Inertia: 1

View File

@ -991,7 +991,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Content: {fileID: 2959939562593878400}
m_Horizontal: 0
m_Vertical: 1
m_Vertical: 0
m_MovementType: 0
m_Elasticity: 0.1
m_Inertia: 1

View File

@ -32,7 +32,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -130,7 +129,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6087025893861054323}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -188,7 +186,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Version: 300
m_EffectMaterial: {fileID: 8846503690602400904, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectMaterial: {fileID: 21305736874167728, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectFactor: 0
m_ColorFactor: 0
m_BlurFactor: 0
@ -223,7 +221,7 @@ MonoBehaviour:
m_UseGraphicAlpha: 0
--- !u!95 &2059277597780235898
Animator:
serializedVersion: 5
serializedVersion: 7
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -237,10 +235,12 @@ Animator:
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_AnimatePhysics: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!1 &1776357407830023228
GameObject:
m_ObjectHideFlags: 0
@ -275,7 +275,6 @@ RectTransform:
- {fileID: 1323634865265500141}
- {fileID: 331028397738758164}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -371,7 +370,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 331028397738758164}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
@ -448,7 +446,6 @@ RectTransform:
m_Children:
- {fileID: 8754483333502849411}
m_Father: {fileID: 0}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@ -534,7 +531,6 @@ RectTransform:
m_Children:
- {fileID: 8865437771338118001}
m_Father: {fileID: 331028397738758164}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -613,7 +609,6 @@ RectTransform:
- {fileID: 2303118795734916657}
- {fileID: 4467178468921796307}
m_Father: {fileID: 6087025893861054323}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@ -634,7 +629,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Content: {fileID: 8865437771338118001}
m_Horizontal: 0
m_Vertical: 1
m_Vertical: 0
m_MovementType: 0
m_Elasticity: 0.1
m_Inertia: 1
@ -720,7 +715,6 @@ RectTransform:
- {fileID: 1559746939363341302}
- {fileID: 8126322204359135913}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -817,7 +811,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -912,7 +905,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2303118795734916657}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
@ -992,7 +984,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -1090,7 +1081,6 @@ RectTransform:
- {fileID: 6087025893861054323}
- {fileID: 8789823129857705082}
m_Father: {fileID: 1998281097548910301}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}

View File

@ -991,7 +991,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Content: {fileID: 2959939562593878400}
m_Horizontal: 0
m_Vertical: 1
m_Vertical: 0
m_MovementType: 0
m_Elasticity: 0.1
m_Inertia: 1

View File

@ -991,7 +991,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Content: {fileID: 2959939562593878400}
m_Horizontal: 0
m_Vertical: 1
m_Vertical: 0
m_MovementType: 0
m_Elasticity: 0.1
m_Inertia: 1

View File

@ -32,7 +32,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -130,7 +129,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6087025893861054323}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -188,7 +186,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Version: 300
m_EffectMaterial: {fileID: 8846503690602400904, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectMaterial: {fileID: 21305736874167728, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectFactor: 0
m_ColorFactor: 0
m_BlurFactor: 0
@ -223,7 +221,7 @@ MonoBehaviour:
m_UseGraphicAlpha: 0
--- !u!95 &2059277597780235898
Animator:
serializedVersion: 5
serializedVersion: 7
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -237,10 +235,12 @@ Animator:
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_AnimatePhysics: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!1 &1776357407830023228
GameObject:
m_ObjectHideFlags: 0
@ -275,7 +275,6 @@ RectTransform:
- {fileID: 1323634865265500141}
- {fileID: 331028397738758164}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -371,7 +370,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 331028397738758164}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
@ -448,7 +446,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -545,7 +542,6 @@ RectTransform:
m_Children:
- {fileID: 8754483333502849411}
m_Father: {fileID: 0}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@ -628,7 +624,6 @@ RectTransform:
m_Children:
- {fileID: 8865437771338118001}
m_Father: {fileID: 331028397738758164}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -707,7 +702,6 @@ RectTransform:
- {fileID: 2303118795734916657}
- {fileID: 4467178468921796307}
m_Father: {fileID: 6087025893861054323}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@ -728,7 +722,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Content: {fileID: 8865437771338118001}
m_Horizontal: 0
m_Vertical: 1
m_Vertical: 0
m_MovementType: 0
m_Elasticity: 0.1
m_Inertia: 1
@ -814,7 +808,6 @@ RectTransform:
- {fileID: 9038541706626733903}
- {fileID: 8126322204359135913}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -911,7 +904,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -1006,7 +998,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2303118795734916657}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
@ -1087,7 +1078,6 @@ RectTransform:
- {fileID: 6087025893861054323}
- {fileID: 8789823129857705082}
m_Father: {fileID: 1998281097548910301}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}

View File

@ -32,7 +32,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -130,7 +129,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6087025893861054323}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -188,7 +186,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Version: 300
m_EffectMaterial: {fileID: 8846503690602400904, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectMaterial: {fileID: 21305736874167728, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectFactor: 0
m_ColorFactor: 0
m_BlurFactor: 0
@ -223,7 +221,7 @@ MonoBehaviour:
m_UseGraphicAlpha: 0
--- !u!95 &2059277597780235898
Animator:
serializedVersion: 5
serializedVersion: 7
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -237,10 +235,12 @@ Animator:
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_AnimatePhysics: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!1 &1776357407830023228
GameObject:
m_ObjectHideFlags: 0
@ -275,7 +275,6 @@ RectTransform:
- {fileID: 1323634865265500141}
- {fileID: 331028397738758164}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -371,7 +370,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 331028397738758164}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
@ -448,7 +446,6 @@ RectTransform:
m_Children:
- {fileID: 8754483333502849411}
m_Father: {fileID: 0}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@ -531,7 +528,6 @@ RectTransform:
m_Children:
- {fileID: 8865437771338118001}
m_Father: {fileID: 331028397738758164}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -610,7 +606,6 @@ RectTransform:
- {fileID: 2303118795734916657}
- {fileID: 4467178468921796307}
m_Father: {fileID: 6087025893861054323}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@ -631,7 +626,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Content: {fileID: 8865437771338118001}
m_Horizontal: 0
m_Vertical: 1
m_Vertical: 0
m_MovementType: 0
m_Elasticity: 0.1
m_Inertia: 1
@ -717,7 +712,6 @@ RectTransform:
- {fileID: 15566658635405967}
- {fileID: 8126322204359135913}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -814,7 +808,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -909,7 +902,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2303118795734916657}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
@ -989,7 +981,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -1087,7 +1078,6 @@ RectTransform:
- {fileID: 6087025893861054323}
- {fileID: 8789823129857705082}
m_Father: {fileID: 1998281097548910301}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}

View File

@ -32,7 +32,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -130,7 +129,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6087025893861054323}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -188,7 +186,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Version: 300
m_EffectMaterial: {fileID: 8846503690602400904, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectMaterial: {fileID: 21305736874167728, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectFactor: 0
m_ColorFactor: 0
m_BlurFactor: 0
@ -223,7 +221,7 @@ MonoBehaviour:
m_UseGraphicAlpha: 0
--- !u!95 &2059277597780235898
Animator:
serializedVersion: 5
serializedVersion: 7
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -237,10 +235,12 @@ Animator:
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_AnimatePhysics: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!1 &1776357407830023228
GameObject:
m_ObjectHideFlags: 0
@ -275,7 +275,6 @@ RectTransform:
- {fileID: 1323634865265500141}
- {fileID: 331028397738758164}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -371,7 +370,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 331028397738758164}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
@ -448,7 +446,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -545,7 +542,6 @@ RectTransform:
m_Children:
- {fileID: 8754483333502849411}
m_Father: {fileID: 0}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@ -628,7 +624,6 @@ RectTransform:
m_Children:
- {fileID: 8865437771338118001}
m_Father: {fileID: 331028397738758164}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -707,7 +702,6 @@ RectTransform:
- {fileID: 2303118795734916657}
- {fileID: 4467178468921796307}
m_Father: {fileID: 6087025893861054323}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@ -728,7 +722,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Content: {fileID: 8865437771338118001}
m_Horizontal: 0
m_Vertical: 1
m_Vertical: 0
m_MovementType: 0
m_Elasticity: 0.1
m_Inertia: 1
@ -814,7 +808,6 @@ RectTransform:
- {fileID: 9038541706626733903}
- {fileID: 8126322204359135913}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -911,7 +904,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -1006,7 +998,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2303118795734916657}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
@ -1087,7 +1078,6 @@ RectTransform:
- {fileID: 6087025893861054323}
- {fileID: 8789823129857705082}
m_Father: {fileID: 1998281097548910301}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}

View File

@ -32,7 +32,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -130,7 +129,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
@ -188,7 +186,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Version: 300
m_EffectMaterial: {fileID: 8846503690602400904, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectMaterial: {fileID: 21305736874167728, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectFactor: 0
m_ColorFactor: 0
m_BlurFactor: 0
@ -223,7 +221,7 @@ MonoBehaviour:
m_UseGraphicAlpha: 0
--- !u!95 &2059277597780235898
Animator:
serializedVersion: 5
serializedVersion: 7
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -237,10 +235,12 @@ Animator:
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_AnimatePhysics: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!1 &1776357407830023228
GameObject:
m_ObjectHideFlags: 0
@ -272,7 +272,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8105925540140519754}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -349,7 +348,6 @@ RectTransform:
m_Children:
- {fileID: 8754483333502849411}
m_Father: {fileID: 0}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@ -436,7 +434,6 @@ RectTransform:
- {fileID: 6673031368290035463}
- {fileID: 8126322204359135913}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
@ -551,7 +548,6 @@ RectTransform:
m_Children:
- {fileID: 6087025893861054323}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
@ -629,7 +625,6 @@ RectTransform:
m_Children:
- {fileID: 8986746042327041630}
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -725,7 +720,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6095356919362338847}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@ -820,7 +814,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -897,7 +890,6 @@ RectTransform:
- {fileID: 8105925540140519754}
- {fileID: 8789823129857705082}
m_Father: {fileID: 1998281097548910301}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -933,7 +925,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}

View File

@ -32,7 +32,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -130,7 +129,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
@ -188,7 +186,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Version: 300
m_EffectMaterial: {fileID: 8846503690602400904, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectMaterial: {fileID: 21305736874167728, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectFactor: 0
m_ColorFactor: 0
m_BlurFactor: 0
@ -223,7 +221,7 @@ MonoBehaviour:
m_UseGraphicAlpha: 0
--- !u!95 &2059277597780235898
Animator:
serializedVersion: 5
serializedVersion: 7
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -237,10 +235,12 @@ Animator:
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_AnimatePhysics: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!1 &1776357407830023228
GameObject:
m_ObjectHideFlags: 0
@ -272,7 +272,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -349,7 +348,6 @@ RectTransform:
m_Children:
- {fileID: 8754483333502849411}
m_Father: {fileID: 0}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@ -436,7 +434,6 @@ RectTransform:
- {fileID: 6673031368290035463}
- {fileID: 8126322204359135913}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
@ -552,7 +549,6 @@ RectTransform:
m_Children:
- {fileID: 8986746042327041630}
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -648,7 +644,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6095356919362338847}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@ -743,7 +738,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -820,7 +814,6 @@ RectTransform:
- {fileID: 6087025893861054323}
- {fileID: 8789823129857705082}
m_Father: {fileID: 1998281097548910301}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -856,7 +849,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}

View File

@ -32,7 +32,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -129,7 +128,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8388810120369343570}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -247,7 +245,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -305,7 +302,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Version: 300
m_EffectMaterial: {fileID: 8846503690602400904, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectMaterial: {fileID: 21305736874167728, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectFactor: 0
m_ColorFactor: 0
m_BlurFactor: 0
@ -340,7 +337,7 @@ MonoBehaviour:
m_UseGraphicAlpha: 0
--- !u!95 &2059277597780235898
Animator:
serializedVersion: 5
serializedVersion: 7
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -354,10 +351,12 @@ Animator:
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_AnimatePhysics: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!1 &1252956242765037133
GameObject:
m_ObjectHideFlags: 0
@ -390,7 +389,6 @@ RectTransform:
m_Children:
- {fileID: 1356745056984945386}
m_Father: {fileID: 8105925540140519754}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -466,7 +464,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1356745056984945386}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.25}
m_AnchorMax: {x: 1, y: 0.75}
@ -542,7 +539,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8105925540140519754}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -618,7 +614,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4825215963562112837}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
@ -693,7 +688,6 @@ RectTransform:
m_Children:
- {fileID: 8088221278067224827}
m_Father: {fileID: 1356745056984945386}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.25}
m_AnchorMax: {x: 1, y: 0.75}
@ -731,11 +725,10 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8105925540140519754}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 8.2, y: -10.1}
m_AnchoredPosition: {x: 4, y: -4}
m_SizeDelta: {x: 48.319504, y: 40.7695}
m_Pivot: {x: 0, y: 1}
--- !u!222 &196912998120336165
@ -807,7 +800,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -884,7 +876,6 @@ RectTransform:
m_Children:
- {fileID: 8754483333502849411}
m_Father: {fileID: 0}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@ -969,7 +960,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -1013,7 +1003,6 @@ RectTransform:
- {fileID: 7783773379985343815}
- {fileID: 8126322204359135913}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
@ -1132,7 +1121,6 @@ RectTransform:
- {fileID: 1123244137077354552}
- {fileID: 88397014911048519}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
@ -1242,7 +1230,6 @@ RectTransform:
- {fileID: 7286174480513024547}
- {fileID: 4825215963562112837}
m_Father: {fileID: 88397014911048519}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@ -1331,12 +1318,11 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8105925540140519754}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -12, y: -21}
m_SizeDelta: {x: 48.3195, y: 40.7695}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 48, y: 48}
m_Pivot: {x: 1, y: 1}
--- !u!222 &1381140245428399030
CanvasRenderer:
@ -1359,14 +1345,14 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0.22587347, b: 1, a: 1}
m_Color: {r: 0.15304625, g: 1, b: 0.20392157, 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: 734113830533174147, guid: d518d00d4940e854bbe45d9ef891401a, type: 3}
m_Sprite: {fileID: 21300000, guid: 28db37d78cad20f4397804dfa4572829, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
@ -1409,7 +1395,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8388810120369343570}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -1524,7 +1509,6 @@ RectTransform:
- {fileID: 2833698290933459632}
- {fileID: 7557140797862982174}
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -1563,7 +1547,6 @@ RectTransform:
- {fileID: 8105925540140519754}
- {fileID: 8789823129857705082}
m_Father: {fileID: 1998281097548910301}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}

View File

@ -32,7 +32,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -130,7 +129,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -188,7 +186,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Version: 300
m_EffectMaterial: {fileID: 8846503690602400904, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectMaterial: {fileID: 21305736874167728, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectFactor: 0
m_ColorFactor: 0
m_BlurFactor: 0
@ -223,7 +221,7 @@ MonoBehaviour:
m_UseGraphicAlpha: 0
--- !u!95 &2059277597780235898
Animator:
serializedVersion: 5
serializedVersion: 7
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -237,10 +235,12 @@ Animator:
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_AnimatePhysics: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!1 &1252956242765037133
GameObject:
m_ObjectHideFlags: 0
@ -273,7 +273,6 @@ RectTransform:
m_Children:
- {fileID: 1356745056984945386}
m_Father: {fileID: 8105925540140519754}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -349,7 +348,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1356745056984945386}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.25}
m_AnchorMax: {x: 1, y: 0.75}
@ -425,7 +423,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8105925540140519754}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -501,7 +498,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4825215963562112837}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
@ -577,7 +573,6 @@ RectTransform:
- {fileID: 2060689948839802503}
- {fileID: 6579548178934567653}
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -614,7 +609,6 @@ RectTransform:
m_Children:
- {fileID: 8088221278067224827}
m_Father: {fileID: 1356745056984945386}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.25}
m_AnchorMax: {x: 1, y: 0.75}
@ -653,7 +647,6 @@ RectTransform:
m_Children:
- {fileID: 8754483333502849411}
m_Father: {fileID: 0}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@ -745,7 +738,6 @@ RectTransform:
- {fileID: 7153585803608375682}
- {fileID: 8126322204359135913}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
@ -861,7 +853,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4656048196076530004}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -980,7 +971,6 @@ RectTransform:
- {fileID: 1361359478345282377}
- {fileID: 88397014911048519}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
@ -1090,7 +1080,6 @@ RectTransform:
- {fileID: 7286174480513024547}
- {fileID: 4825215963562112837}
m_Father: {fileID: 88397014911048519}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@ -1179,7 +1168,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8105925540140519754}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
@ -1257,7 +1245,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4656048196076530004}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -1372,7 +1359,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -1449,7 +1435,6 @@ RectTransform:
- {fileID: 8105925540140519754}
- {fileID: 8789823129857705082}
m_Father: {fileID: 1998281097548910301}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -1485,7 +1470,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}

View File

@ -32,7 +32,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -130,7 +129,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
@ -188,7 +186,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Version: 300
m_EffectMaterial: {fileID: 8846503690602400904, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectMaterial: {fileID: 21305736874167728, guid: aee96bc531e6eba468ec405e536f515f, type: 2}
m_EffectFactor: 0
m_ColorFactor: 0
m_BlurFactor: 0
@ -223,7 +221,7 @@ MonoBehaviour:
m_UseGraphicAlpha: 0
--- !u!95 &2059277597780235898
Animator:
serializedVersion: 5
serializedVersion: 7
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -237,10 +235,12 @@ Animator:
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_AnimatePhysics: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!1 &1776357407830023228
GameObject:
m_ObjectHideFlags: 0
@ -272,7 +272,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -349,7 +348,6 @@ RectTransform:
m_Children:
- {fileID: 8754483333502849411}
m_Father: {fileID: 0}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@ -436,7 +434,6 @@ RectTransform:
- {fileID: 6673031368290035463}
- {fileID: 8126322204359135913}
m_Father: {fileID: 8754483333502849411}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
@ -552,7 +549,6 @@ RectTransform:
m_Children:
- {fileID: 8986746042327041630}
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -648,7 +644,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6095356919362338847}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@ -743,7 +738,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@ -820,7 +814,6 @@ RectTransform:
- {fileID: 6087025893861054323}
- {fileID: 8789823129857705082}
m_Father: {fileID: 1998281097548910301}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@ -856,7 +849,6 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8789823129857705082}
m_RootOrder: -2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}

View File

@ -677,8 +677,7 @@ RectTransform:
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2180787260962546873}
m_Children: []
m_Father: {fileID: 5353336693430589123}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
@ -758,6 +757,7 @@ RectTransform:
- {fileID: 5681144522345305637}
- {fileID: 4076923977615567036}
- {fileID: 6362836288749559125}
- {fileID: 2293945952282068648}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
@ -995,7 +995,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &3401503803137628060
RectTransform:
m_ObjectHideFlags: 0
@ -1011,10 +1011,10 @@ RectTransform:
- {fileID: 5173410857689853898}
m_Father: {fileID: 2180787260962546873}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 30, y: -30}
m_SizeDelta: {x: 60, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &209050608986704394
MonoBehaviour:
@ -1124,6 +1124,84 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &6423247951342927163
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2293945952282068648}
- component: {fileID: 6196246109583816608}
- component: {fileID: 6672533647468693058}
m_Layer: 5
m_Name: "\u2198"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2293945952282068648
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6423247951342927163}
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: 2180787260962546873}
m_Father: {fileID: 5353336693430589123}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 1, y: 0}
--- !u!114 &6196246109583816608
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6423247951342927163}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 2
m_Right: 8
m_Top: 8
m_Bottom: 0
m_ChildAlignment: 8
m_Spacing: 10
m_ChildForceExpandWidth: 0
m_ChildForceExpandHeight: 0
m_ChildControlWidth: 1
m_ChildControlHeight: 0
m_ChildScaleWidth: 1
m_ChildScaleHeight: 1
m_ReverseArrangement: 0
--- !u!114 &6672533647468693058
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6423247951342927163}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalFit: 2
m_VerticalFit: 2
--- !u!1 &6564643175566609500
GameObject:
m_ObjectHideFlags: 0
@ -1306,19 +1384,19 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7293448547499054900}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
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: 3401503803137628060}
m_Father: {fileID: 4076923977615567036}
m_Father: {fileID: 2293945952282068648}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0.5}
m_SizeDelta: {x: 0, y: 60}
m_Pivot: {x: 1, y: 0.5}
--- !u!114 &8293546264338150520
MonoBehaviour:
m_ObjectHideFlags: 0

View File

@ -13,7 +13,7 @@ OcclusionCullingSettings:
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
serializedVersion: 10
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
@ -38,13 +38,12 @@ RenderSettings:
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 12
m_GIWorkflowMode: 1
serializedVersion: 13
m_BakeOnSceneLoad: 0
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
@ -67,9 +66,6 @@ LightmapSettings:
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
@ -123,6 +119,355 @@ NavMeshSettings:
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1001 &221009212
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 132536, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_Name
value: IngameDebugConsole
objectReference: {fileID: 0}
- target: {fileID: 11452418, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: singleton
value: 1
objectReference: {fileID: 0}
- target: {fileID: 11452418, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: startMinimized
value: 1
objectReference: {fileID: 0}
- target: {fileID: 11490438, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_BlockingMask.m_Bits
value: 4294967295
objectReference: {fileID: 0}
- target: {fileID: 22400762, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22426080, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchorMax.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22426080, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22426080, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22428984, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22428984, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22428984, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22428984, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22428984, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22428984, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22428984, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22428984, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22455554, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22455554, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22455554, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22455554, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22455554, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22455554, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22455554, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22455554, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_Pivot.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_Pivot.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchorMax.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22457152, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22468896, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22468896, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22468896, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22468896, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22468896, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22468896, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22468896, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22468896, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22488670, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22488670, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22488670, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22488670, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22488670, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22488670, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22488670, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22488670, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22495692, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22495692, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22495692, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22495692, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22495692, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22495692, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22495692, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22495692, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224619367409363176, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224619367409363176, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224619367409363176, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224619367409363176, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224619367409363176, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224619367409363176, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224619367409363176, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224619367409363176, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224856348943071238, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224856348943071238, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224856348943071238, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224856348943071238, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224856348943071238, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224856348943071238, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224856348943071238, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 224856348943071238, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
--- !u!1 &408101310
GameObject:
m_ObjectHideFlags: 0
@ -139,7 +484,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!4 &408101311
Transform:
m_ObjectHideFlags: 0
@ -147,13 +492,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 408101310}
serializedVersion: 2
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: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &408101312
MonoBehaviour:
@ -195,13 +540,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1335662458}
serializedVersion: 2
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: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1335662460
MonoBehaviour:
@ -273,11 +618,19 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1498586261}
serializedVersion: 2
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: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
m_Roots:
- {fileID: 1498586263}
- {fileID: 1335662459}
- {fileID: 408101311}
- {fileID: 221009212}

View File

@ -213,7 +213,7 @@ namespace AxibugEmuOnline.Client.ClientCore
else if (request.downloadHandler.bHadErr)
{
bHttpCheckDone = false;
App.log.Error(request.downloadHandler.ErrInfo);
App.log.Error(request.downloadHandler.errInfo);
}
else
{

View File

@ -1,4 +1,5 @@
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO.Compression;
@ -11,7 +12,7 @@ using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
public static class PSVThread
public static class AxiHttpThread
{
#if UNITY_PSP2
@ -85,7 +86,7 @@ public static class AxiHttp
public const string Transfer_Encoding = "transfer-encoding";
public const string Connection = "connection";
public static long index = 0;
static int singlePkgMaxRead = 1024;
static int singlePkgMaxRead = 1024 * 4;
public class WaitAxiRequest : UnityEngine.CustomYieldInstruction
{
@ -110,7 +111,13 @@ public static class AxiHttp
//Console.WriteLine(log);
}
static Dictionary<string, IPAddress> dictIP2Address = new Dictionary<string, IPAddress>();
static ConcurrentDictionary<string, IPAddress> dictIP2Address = new ConcurrentDictionary<string, IPAddress>();
public enum AxiDownLoadMode
{
NotDownLoad = 0,
DownLoadBytes = 1,
DownloadToBinaryWriter = 2
}
public class AxiRespInfo
{
@ -120,78 +127,58 @@ public static class AxiHttp
{
get
{
return
isDone = true
&&
(
!string.IsNullOrEmpty(ErrInfo)
||
code != 200
);
return isDone == true && (code != 200 || !string.IsNullOrEmpty(errInfo));
}
}
public string ErrInfo;
//public string Err = null;
public string host = "";//host主机头
public string url = "";//pathAndQuery
public int port = 80;
public string requestRaw = "";
public string encoding = "";
public string header = "";
public string errInfo;
public string host = string.Empty;//host主机头
public string url = string.Empty;//pathAndQuery
public string requestRaw = string.Empty;
public string encoding = string.Empty;
public string header = string.Empty;
public string text { get { return body; } }
public string body = "";
public string reuqestBody = "";
public string reuqestHeader = "";
public string body = string.Empty;
public string reuqestBody = string.Empty;
public string reuqestHeader = string.Empty;
public Dictionary<string, string> headers = new Dictionary<string, string>();
public string response = "";
//public string gzip = "";
public bool isGzip = false;
public bool isgzip = false;
public int length = 0;
public int code = 0;
public int location = 0;
public int runTime = 0;//获取网页消耗时间,毫秒
public int sleepTime = 0;//休息时间
public string cookies = "";
public bool bTimeOut = false;
public int NeedloadedLenght;
public int loadedLenght;
public byte[] data { get { return bodyRaw; } }
public byte[] bodyRaw;
public string fileName;
public float DownLoadPr =>
NeedloadedLenght <= 0 ? -1 : (float)loadedLenght / NeedloadedLenght;
public System.IO.BinaryWriter binaryWriter;
}
public static IPAddress GetDnsIP(string str)
{
lock (dictIP2Address)
public int runtime = 0;//获取网页消耗时间,毫秒
public string cookies = string.Empty;
public bool isTimeOut = false;
public int needdownloadLenght;
public int loadedlenght;
public byte[] data { get { return bodyraw; } }
public byte[] bodyraw;
public string filename;
public float downLoadPr => needdownloadLenght <= 0 ? -1 : (float)loadedlenght / needdownloadLenght;
public void SetIsDone()
{
if (!dictIP2Address.ContainsKey(str))
{
IPHostEntry host = Dns.GetHostEntry(str);
IPAddress ip = null;
foreach (var item in host.AddressList)
{
if (item.AddressFamily == AddressFamily.InterNetwork)
{
ip = item; break;
}
}
dictIP2Address[str] = ip;
}
return dictIP2Address[str];
this.isDone = true;
}
public void SetDoneForCantStart(int code, string errmsg)
{
this.code = code;
this.errInfo = errmsg;
this.isDone = true;
}
}
public enum AxiDownLoadMode
public static IPAddress GetDnsIP(string hostname)
{
NotDownLoad = 0,
DownLoadBytes = 1,
DownloadToBinaryWriter = 2
return dictIP2Address.GetOrAdd(hostname, key =>
{
IPHostEntry host = Dns.GetHostEntry(hostname);
foreach (var item in host.AddressList)
{
if (item.AddressFamily == AddressFamily.InterNetwork)
{
return item; ;
}
}
return null;
});
}
public static AxiRespInfo AxiRequest(string url)
{
AxiRespInfo respInfo = new AxiRespInfo();
@ -199,7 +186,6 @@ public static class AxiHttp
SendAxiRequest(url, ref respInfo);
return respInfo;
}
public static WaitAxiRequest AxiRequestAsync(string url)
{
AxiRespInfo respInfo = new AxiRespInfo();
@ -207,10 +193,9 @@ public static class AxiHttp
WaitAxiRequest respAsync = new WaitAxiRequest(respInfo);
//Task task = new Task(() => SendAxiRequest(url, ref respInfo));
//task.Start()
PSVThread.DoTask(() => SendAxiRequest(url, ref respInfo));
AxiHttpThread.DoTask(() => SendAxiRequest(url, ref respInfo));
return respAsync;
}
public static AxiRespInfo AxiDownload(string url)
{
AxiRespInfo respInfo = new AxiRespInfo();
@ -218,32 +203,27 @@ public static class AxiHttp
SendAxiRequest(url, ref respInfo);
return respInfo;
}
public static AxiRespInfo AxiDownloadAsync(string url)
{
AxiRespInfo respInfo = new AxiRespInfo();
respInfo.downloadMode = AxiDownLoadMode.DownLoadBytes;
//Task task = new Task(() => SendAxiRequest(url, ref respInfo));
//task.Start();
PSVThread.DoTask(() => SendAxiRequest(url, ref respInfo));
AxiHttpThread.DoTask(() => SendAxiRequest(url, ref respInfo));
return respInfo;
}
static void SendAxiRequest(string url, ref AxiRespInfo respinfo, int timeout = 1000 * 1000, string encoding = "UTF-8")
{
if (url.ToLower().StartsWith("https://"))
SendAxiRequestHttps(url, ref respinfo, timeout, encoding);// SendAxiRequestHttps(url, ref respinfo, timeout, encoding);
SendAxiRequestHttps(url, ref respinfo, timeout, encoding);
else
SendAxiRequestHttp(url, ref respinfo, timeout, encoding);
}
static void SendAxiRequestHttp(string url, ref AxiRespInfo respinfo, int timeout, string encoding)
{
Log("SendAxiRequestHttp");
respinfo.url = url;
Stopwatch sw = new Stopwatch();
sw.Start();
respinfo.loadedLenght = 0;
respinfo.loadedlenght = 0;
try
{
string strURI = url;
@ -258,14 +238,10 @@ public static class AxiHttp
if (!ParseURI(strURI, ref bSSL, ref strHost, ref strIP, ref port, ref strRelativePath, ref ourErrMsg))
{
Log("ParseURI False");
respinfo.ErrInfo = ourErrMsg;
respinfo.code = 0;
respinfo.isDone = true;
respinfo.SetDoneForCantStart(0, "Can not Connect");
return;
}
var ip = GetDnsIP(strHost);
var ipEndPoint = new IPEndPoint(ip, port);
@ -277,12 +253,10 @@ public static class AxiHttp
{
client.Close();
sw.Stop();
respinfo.code = 0;
respinfo.isDone = true;
respinfo.SetDoneForCantStart(0, "Can not Connect");
return;
}
//string requestRaw = $"GET {strRelativePath} HTTP/1.1\r\nHost: {strHost}\r\nConnection: Close\r\n\r\n";
string request = $"GET {strURI} HTTP/1.1\r\nHost: {strHost}\r\nConnection: Close\r\n\r\n";
checkContentLength(ref respinfo, ref request);
@ -312,7 +286,6 @@ public static class AxiHttp
&& sw.ElapsedMilliseconds < timeout
);
respinfo.header = sb.ToString().Replace(CTRL, "");
string[] headers = Regex.Split(respinfo.header, CT);
if (headers != null && headers.Length > 0)
@ -343,7 +316,6 @@ public static class AxiHttp
location = Tools.getCurrentPath(url) + location;
}
rsb.Insert(urlStart, location);
//return sendHTTPRequest(count, host, port, payload, rsb.ToString(), timeout, encoding, false);
client.Close();
sw.Stop();
SendAxiRequest(url, ref respinfo, timeout, encoding);
@ -356,33 +328,19 @@ public static class AxiHttp
{
Log("User Head");
int length = int.Parse(respinfo.headers[Content_Length]);
respinfo.NeedloadedLenght = length;
respinfo.needdownloadLenght = length;
// while (respinfo.loadedLenght < length
// && sw.ElapsedMilliseconds < timeout
// )
//{
// int readsize = length - respinfo.loadedLenght;
// len = client.Receive(temp_responseBody, respinfo.loadedLenght, readsize, SocketFlags.None);
// if (len > 0)
// {
// respinfo.loadedLenght += len;
// }
//}
while (respinfo.loadedLenght < length
while (respinfo.loadedlenght < length
&& sw.ElapsedMilliseconds < timeout
)
{
//len = client.Receive(temp_responseBody, respinfo.loadedLenght, readsize, SocketFlags.None);
int readsize = length - respinfo.loadedLenght;
int readsize = length - respinfo.loadedlenght;
readsize = Math.Min(readsize, singlePkgMaxRead);
len = client.Receive(temp_responseBody, 0, readsize, SocketFlags.None);
if (len > 0)
{
memoryStream.Write(temp_responseBody, 0, len);
respinfo.loadedLenght += len;
respinfo.loadedlenght += len;
}
}
}
@ -394,7 +352,7 @@ public static class AxiHttp
int chunkedSize = 0;
byte[] chunkedByte = new byte[1];
//读取总长度
respinfo.loadedLenght = 0;
respinfo.loadedlenght = 0;
do
{
string ctmp = "";
@ -418,27 +376,12 @@ public static class AxiHttp
//结束了
break;
}
//int onechunkLen = 0;
//while (onechunkLen < chunkedSize
// && sw.ElapsedMilliseconds < timeout
// )
//{
// len = client.Receive(responseBody, respinfo.loadedLenght, chunkedSize - onechunkLen, SocketFlags.None);
// if (len > 0)
// {
// onechunkLen += len;
// respinfo.loadedLenght += len;
// }
//}
int onechunkLen = 0;
while (onechunkLen < chunkedSize
&& sw.ElapsedMilliseconds < timeout
)
{
//len = client.Receive(responseBody, respinfo.loadedLenght, chunkedSize - onechunkLen, SocketFlags.None);
int readsize = chunkedSize - onechunkLen;
readsize = Math.Min(readsize, singlePkgMaxRead);
len = client.Receive(temp_responseBody, 0, readsize, SocketFlags.None);
@ -446,7 +389,7 @@ public static class AxiHttp
{
memoryStream.Write(temp_responseBody, 0, len);
onechunkLen += len;
respinfo.loadedLenght += len;
respinfo.loadedlenght += len;
}
}
@ -463,15 +406,14 @@ public static class AxiHttp
{
if (client.Available > 0)
{
//len = client.Receive(responseBody, respinfo.loadedLenght, (1024 * 200) - respinfo.loadedLenght, SocketFlags.None);
int readsize = (1024 * 200) - respinfo.loadedLenght;
int readsize = (1024 * 200) - respinfo.loadedlenght;
readsize = Math.Min(readsize, singlePkgMaxRead);
len = client.Receive(temp_responseBody, 0, readsize, SocketFlags.None);
if (len > 0)
{
memoryStream.Write(temp_responseBody, 0, len);
respinfo.loadedLenght += len;
respinfo.loadedlenght += len;
}
}
else
@ -490,59 +432,52 @@ public static class AxiHttp
//判断是否gzip
if (respinfo.headers.ContainsKey(Content_Encoding))
{
respinfo.bodyRaw = unGzipBytes(responseBody, respinfo.loadedLenght);
respinfo.bodyraw = unGzipBytes(responseBody, respinfo.loadedlenght);
}
else
{
respinfo.bodyRaw = responseBody;
respinfo.bodyraw = responseBody;
}
// 使用Uri类解析URL
Uri uri = new Uri(url);
respinfo.fileName = System.IO.Path.GetFileName(uri.LocalPath);
respinfo.filename = System.IO.Path.GetFileName(uri.LocalPath);
}
else
{
//判断是否gzip
if (respinfo.headers.ContainsKey(Content_Encoding))
{
respinfo.body = unGzip(responseBody, respinfo.loadedLenght, encod);
respinfo.body = unGzip(responseBody, respinfo.loadedlenght, encod);
}
else
{
respinfo.body = encod.GetString(responseBody, 0, respinfo.loadedLenght);
respinfo.body = encod.GetString(responseBody, 0, respinfo.loadedlenght);
}
}
client.Close();
}
}
catch (Exception ex)
{
respinfo.ErrInfo = $"ex : {ex.ToString()}";
respinfo.errInfo = $"ex : {ex.ToString()}";
}
finally
{
sw.Stop();
respinfo.length = respinfo.loadedLenght;
respinfo.runTime = (int)sw.ElapsedMilliseconds;
respinfo.bTimeOut = sw.ElapsedMilliseconds >= timeout;
//if (socket != null)
//{
// clientSocket.Close();
//}
respinfo.length = respinfo.loadedlenght;
respinfo.runtime = (int)sw.ElapsedMilliseconds;
respinfo.isTimeOut = sw.ElapsedMilliseconds >= timeout;
respinfo.isDone = true;
}
}
static void SendAxiRequestHttps(string url, ref AxiRespInfo respinfo, int timeout, string encoding)
{
respinfo.url = url;
Stopwatch sw = new Stopwatch();
sw.Start();
respinfo.loadedLenght = 0;
respinfo.loadedlenght = 0;
TcpClient client = null;
try
{
@ -558,34 +493,22 @@ public static class AxiHttp
if (!ParseURI(strURI, ref bSSL, ref strHost, ref strIP, ref port, ref strRelativePath, ref ourErrMsg))
{
Log("ParseURI False");
respinfo.ErrInfo = ourErrMsg;
respinfo.code = 0;
respinfo.isDone = true;
respinfo.SetDoneForCantStart(0, ourErrMsg);
return;
}
//var ip = Dns.GetHostEntry(strHost).AddressList[0];
//var ipEndPoint = new IPEndPoint(ip, port);
//using (Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))
//using (TcpClient tcpclient = new TcpClient())
using (System.IO.MemoryStream memoryStream = new System.IO.MemoryStream())
{
//client.Connect(ipEndPoint);
TimeOutSocket tos = new TimeOutSocket();
client = tos.Connect(strHost, port, timeout);
if (!client.Connected)
{
client.Close();
sw.Stop();
respinfo.code = 0;
respinfo.isDone = true;
respinfo.SetDoneForCantStart(0, "");
return;
}
SslStream ssl = null;
//string requestRaw = $"GET {strRelativePath} HTTP/1.1\r\nHost: {strHost}\r\nConnection: Close\r\n\r\n";
string request = $"GET {strURI} HTTP/1.1\r\nHost: {strHost}\r\nConnection: Close\r\n\r\n";
ssl = new SslStream(client.GetStream(), false, new RemoteCertificateValidationCallback(ValidateServerCertificate));
@ -599,15 +522,9 @@ public static class AxiHttp
ssl.Write(requestByte);
ssl.Flush();
}
checkContentLength(ref respinfo, ref request);
respinfo.requestRaw = request;
byte[] temp_responseBody = new byte[singlePkgMaxRead];
//byte[] buffer = Encoding.ASCII.GetBytes(requestRaw);
//client.Send(buffer);
string tmp = "";
int len = 0;
StringBuilder sb = new StringBuilder();
@ -626,8 +543,6 @@ public static class AxiHttp
} while (!tmp.Equals(CTRL)
&& sw.ElapsedMilliseconds < timeout
);
respinfo.header = sb.ToString().Replace(CTRL, "");
string[] headers = Regex.Split(respinfo.header, CT);
if (headers != null && headers.Length > 0)
@ -658,7 +573,6 @@ public static class AxiHttp
{
respinfo.requestRaw = respinfo.requestRaw.Replace(url, respinfo.headers["location"]);
}
//return sendHTTPRequest(count, host, port, payload, rsb.ToString(), timeout, encoding, false);
client.Close();
sw.Stop();
SendAxiRequest(url, ref respinfo, timeout, encoding);
@ -671,17 +585,16 @@ public static class AxiHttp
{
Log("Use Head");
int length = int.Parse(respinfo.headers[Content_Length]);
respinfo.NeedloadedLenght = length;
while (respinfo.loadedLenght < length && sw.ElapsedMilliseconds < timeout)
respinfo.needdownloadLenght = length;
while (respinfo.loadedlenght < length && sw.ElapsedMilliseconds < timeout)
{
//len = ssl.Read(responseBody, respinfo.loadedLenght, length - respinfo.loadedLenght);
int readsize = length - respinfo.loadedLenght;
int readsize = length - respinfo.loadedlenght;
readsize = Math.Min(readsize, singlePkgMaxRead);
len = ssl.Read(temp_responseBody, 0, readsize);
if (len > 0)
{
memoryStream.Write(temp_responseBody, 0, len);
respinfo.loadedLenght += len;
respinfo.loadedlenght += len;
}
}
}
@ -693,7 +606,7 @@ public static class AxiHttp
int chunkedSize = 0;
byte[] chunkedByte = new byte[1];
//读取总长度
respinfo.loadedLenght = 0;
respinfo.loadedlenght = 0;
do
{
string ctmp = "";
@ -728,7 +641,7 @@ public static class AxiHttp
{
memoryStream.Write(temp_responseBody, 0, len);
onechunkLen += len;
respinfo.loadedLenght += len;
respinfo.loadedlenght += len;
}
}
@ -748,13 +661,13 @@ public static class AxiHttp
if (client.Available > 0)
{
//len = ssl.Read(responseBody, respinfo.loadedLenght, (1024 * 200) - respinfo.loadedLenght);
int readsize = (1024 * 200) - respinfo.loadedLenght;
int readsize = (1024 * 200) - respinfo.loadedlenght;
readsize = Math.Min(readsize, singlePkgMaxRead);
len = ssl.Read(temp_responseBody, 0, readsize);
if (len > 0)
{
memoryStream.Write(temp_responseBody, 0, len);
respinfo.loadedLenght += len;
respinfo.loadedlenght += len;
}
}
else
@ -771,29 +684,29 @@ public static class AxiHttp
if (respinfo.downloadMode > AxiDownLoadMode.NotDownLoad)
{
//判断是否gzip
if (respinfo.isGzip)
if (respinfo.isgzip)
{
respinfo.bodyRaw = unGzipBytes(responseBody, respinfo.loadedLenght);
respinfo.bodyraw = unGzipBytes(responseBody, respinfo.loadedlenght);
}
else
{
respinfo.bodyRaw = responseBody;
respinfo.bodyraw = responseBody;
}
// 使用Uri类解析URL
Uri uri = new Uri(url);
respinfo.fileName = System.IO.Path.GetFileName(uri.LocalPath);
respinfo.filename = System.IO.Path.GetFileName(uri.LocalPath);
}
else
{
//判断是否gzip
if (respinfo.isGzip)
if (respinfo.isgzip)
{
respinfo.body = unGzip(responseBody, respinfo.loadedLenght, encod);
respinfo.body = unGzip(responseBody, respinfo.loadedlenght, encod);
}
else
{
respinfo.body = encod.GetString(responseBody, 0, respinfo.loadedLenght);
respinfo.body = encod.GetString(responseBody, 0, respinfo.loadedlenght);
}
}
@ -802,27 +715,21 @@ public static class AxiHttp
}
catch (Exception ex)
{
respinfo.ErrInfo = $"ex : {ex.ToString()}";
respinfo.errInfo = $"ex : {ex.ToString()}";
}
finally
{
client?.Close();
sw.Stop();
respinfo.length = respinfo.loadedLenght;
respinfo.runTime = (int)sw.ElapsedMilliseconds;
respinfo.bTimeOut = sw.ElapsedMilliseconds >= timeout;
//if (socket != null)
//{
// clientSocket.Close();
//}
respinfo.isDone = true;
respinfo.length = respinfo.loadedlenght;
respinfo.runtime = (int)sw.ElapsedMilliseconds;
respinfo.isTimeOut = sw.ElapsedMilliseconds >= timeout;
respinfo.SetIsDone();
}
if (client != null)
client.Dispose();
}
private static void doHeader(ref AxiRespInfo respinfo, ref string[] headers)
{
@ -832,7 +739,7 @@ public static class AxiHttp
{
respinfo.code = Tools.convertToInt(headers[i].Split(' ')[1]);
if (respinfo.code != 200 && respinfo.code != 301 && respinfo.code != 302)
respinfo.ErrInfo = "code:" + respinfo.code;
respinfo.errInfo = "code:" + respinfo.code;
}
else
{
@ -859,7 +766,7 @@ public static class AxiHttp
}
}
}
respinfo.isGzip = respinfo.headers.ContainsKey(Content_Encoding);
respinfo.isgzip = respinfo.headers.ContainsKey(Content_Encoding);
}
}
@ -903,7 +810,6 @@ public static class AxiHttp
return str;
}
public static byte[] unGzipBytes(byte[] data, int len)
{
System.IO.MemoryStream ms = new System.IO.MemoryStream(data, 0, len);
@ -1016,16 +922,11 @@ public static class AxiHttp
string strRelativePathRet;
string strIPRet;
/*string strProtocol = strURI.Substring(0, 7);
if (strProtocol != "http://"
||
strProtocol != "https://")
return false;*/
if (!strURI.ToLower().StartsWith("http://") || strURI.ToLower().StartsWith("https://"))
// 修复URL协议检查逻辑
string lowerUri = strURI.ToLower();
if (!lowerUri.StartsWith("http://") && !lowerUri.StartsWith("https://"))
return false;
bIsSSL = strURI.ToLower().StartsWith("https://");
bIsSSL = lowerUri.StartsWith("https://");
string strLeft = strURI.Substring(7, strURI.Length - 7);
int nIndexPort = strLeft.IndexOf(':');
@ -1078,8 +979,6 @@ public static class AxiHttp
strRelativePath = UrlEncode(strRelativePathRet);
return true;
}
public static string UrlEncode(string str)
{
string sb = "";
@ -1100,15 +999,12 @@ public static class AxiHttp
}
return sb;
}
class Tools
{
public static long currentMillis()
{
return (long)(DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds;
}
/// <summary>
/// 将16进制转换成10进制
/// </summary>
@ -1143,8 +1039,6 @@ public static class AxiHttp
return "";
}
}
/// <summary>
/// 将字符串转换成数字错误返回0
/// </summary>
@ -1164,7 +1058,6 @@ public static class AxiHttp
return 0;
}
}
class TimeOutSocket
{
@ -1178,16 +1071,9 @@ public static class AxiHttp
sw.Start();
TimeoutObject.Reset();
socketexception = null;
TcpClient tcpclient = new TcpClient();
//IPHostEntry hostinfo = Dns.GetHostEntry("emu.axibug.com");
//IPAddress[] aryIP = hostinfo.AddressList;
//host = aryIP[0].ToString();
Log($"BeginConnect {host}:{port} timeoutMSec=>{timeoutMSec}");
tcpclient.BeginConnect(host, port, new AsyncCallback(CallBackMethod), tcpclient);
if (TimeoutObject.WaitOne(timeoutMSec, false))
{
if (IsConnectionSuccessful)
@ -1232,5 +1118,4 @@ public static class AxiHttp
}
}
}
}

View File

@ -13,7 +13,6 @@ public static class AxiHttpProxy
return new SendDownLoadProxy(AxiDownloadAsync(url));
}
public class SendWebRequestProxy
{
public WaitAxiRequest SendWebRequest;
@ -52,7 +51,7 @@ public static class AxiHttpProxy
Debug.Log($"url =>{resp.url}");
Debug.Log($"Raw =>{resp.requestRaw}");
Debug.Log($"code =>{resp.code}");
Debug.Log($"respInfo.bTimeOut =>{resp.bTimeOut}");
Debug.Log($"respInfo.bTimeOut =>{resp.isTimeOut}");
Debug.Log($"");
Debug.Log($"==== response ====");
Debug.Log($"==== header ====");
@ -64,21 +63,21 @@ public static class AxiHttpProxy
Debug.Log($"==== body ====");
Debug.Log($"body_text =>{resp.body}");
Debug.Log($"body_text.Length =>{resp.body.Length}");
Debug.Log($"bodyRaw.Length =>{resp.bodyRaw?.Length}");
Debug.Log($"bodyRaw.Length =>{resp.bodyraw?.Length}");
Debug.Log($"");
Debug.Log($"==== download ====");
Debug.Log($"downloadMode =>{resp.downloadMode}");
Debug.Log($"respInfo.fileName =>{resp.fileName}");
Debug.Log($"respInfo.NeedloadedLenght =>{resp.NeedloadedLenght}");
Debug.Log($"respInfo.loadedLenght =>{resp.loadedLenght}");
Debug.Log($"respInfo.fileName =>{resp.filename}");
Debug.Log($"respInfo.NeedloadedLenght =>{resp.needdownloadLenght}");
Debug.Log($"respInfo.loadedLenght =>{resp.loadedlenght}");
if (resp.bHadErr)
{
Debug.LogError($"code->{resp.code} err->{resp.ErrInfo} url->{resp.url}");
Debug.LogError($"code->{resp.code} err->{resp.errInfo} url->{resp.url}");
}
#else
Debug.Log($"==== request url => { resp.url}");
Debug.Log($"code =>{resp.code}");
Debug.Log($"respInfo.bTimeOut =>{resp.bTimeOut}");
Debug.Log($"respInfo.bTimeOut =>{resp.isTimeOut}");
Debug.Log($"==== response ====");
if (resp.downloadMode == AxiDownLoadMode.NotDownLoad)
{
@ -88,7 +87,7 @@ public static class AxiHttpProxy
else
{
Debug.Log($"==== download ====");
Debug.Log($"respInfo.loadedLenght =>{resp.loadedLenght}");
Debug.Log($"respInfo.loadedLenght =>{resp.loadedlenght}");
}
#endif

View File

@ -29,7 +29,7 @@ public class AxiHttpTest : MonoBehaviour
while (!request.downloadHandler.isDone)
{
Debug.Log($"下载进度:{request.downloadHandler.DownLoadPr} ->{request.downloadHandler.loadedLenght}/{request.downloadHandler.NeedloadedLenght}");
Debug.Log($"下载进度:{request.downloadHandler.downLoadPr} ->{request.downloadHandler.loadedlenght}/{request.downloadHandler.needdownloadLenght}");
yield return null;
}
AxiHttpProxy.ShowAxiHttpDebugInfo(request.downloadHandler);

View File

@ -1,9 +1,10 @@
using AxibugEmuOnline.Client;
using AxibugEmuOnline.Client.ClientCore;
using System;
using System.Collections.Generic;
using UnityEngine;
public class UEGSoundPlayer : MonoBehaviour
public class UEGSoundPlayer : MonoBehaviour, AxiAudioPull
{
[SerializeField]
private AudioSource m_as;
@ -18,32 +19,72 @@ public class UEGSoundPlayer : MonoBehaviour
void Awake()
{
// 获取当前音频配置
AudioConfiguration config = AudioSettings.GetConfiguration();
// 设置目标音频配置
config.sampleRate = sampleRate; // 采样率为 44100Hz
config.numRealVoices = 32; // 设置最大音频源数量(可选)
config.numVirtualVoices = 512; // 设置虚拟音频源数量(可选)
config.dspBufferSize = 1024; // 设置 DSP 缓冲区大小(可选)
config.speakerMode = AudioSpeakerMode.Stereo; // 设置为立体声2 声道)
App.audioMgr.SetAudioConfig(config);
return;
//// 获取当前音频配置
//AudioConfiguration config = AudioSettings.GetConfiguration();
//// 设置目标音频配置
//config.sampleRate = sampleRate; // 采样率为 44100Hz
//config.numRealVoices = 32; // 设置最大音频源数量(可选)
//config.numVirtualVoices = 512; // 设置虚拟音频源数量(可选)
//config.dspBufferSize = 1024; // 设置 DSP 缓冲区大小(可选)
//config.speakerMode = AudioSpeakerMode.Stereo; // 设置为立体声2 声道)
//App.audioMgr.SetAudioConfig(config);
}
private void OnEnable()
{
App.audioMgr.RegisterStream(nameof(UEssgee), AudioSettings.outputSampleRate, this);
}
void OnDisable()
{
App.audioMgr.ClearAudioData(nameof(UEssgee));
}
private Queue<float> sampleQueue = new Queue<float>();
// Unity 音频线程回调
void OnAudioFilterRead(float[] data, int channels)
public unsafe void PullAudio(float[] data, int channels)
{
fixed (float* pData = data)
{
float* outputPtr = pData; // 指向数组起始位置的指针
int dataLength = data.Length;
for (int i = 0; i < dataLength; i++)
{
float rawData;
if (_buffer.TryRead(out rawData))
*outputPtr = rawData;
else
*outputPtr = 0; // 无数据时静音
outputPtr++; // 指针移动到下一个位置
}
}
/*
for (int i = 0; i < data.Length; i++)
{
if (_buffer.TryRead(out float rawData))
data[i] = rawData;
else
data[i] = 0; // ÎÞÊý¾Ýʱ¾²Òô
}
}*/
}
//// Unity 音频线程回调
//void OnAudioFilterRead(float[] data, int channels)
//{
// for (int i = 0; i < data.Length; i++)
// {
// if (_buffer.TryRead(out float rawData))
// data[i] = rawData;
// else
// data[i] = 0; // 无数据时静音
// }
//}
public void Initialize()
{
@ -72,7 +113,7 @@ public class UEGSoundPlayer : MonoBehaviour
{
_buffer.Write(buffer[i] / 32767.0f);
}
App.audioMgr.WriteToRecord(buffer, samples_a);
//App.audioMgr.WriteToRecord(buffer, samples_a);
}
public void BufferWirte(int Off, byte[] Data)
{
@ -91,4 +132,5 @@ public class UEGSoundPlayer : MonoBehaviour
return;
m_as.volume = Vol;
}
}

View File

@ -423,32 +423,32 @@ public static class MameSingleControllSetter
break;
//后续修改后 支持P3 P4
case 2:
singlecontrol.tg_INSERT_COIN = MotionKey.FinalKey;
singlecontrol.tg_GAMESTART = MotionKey.FinalKey;
singlecontrol.tg_UP = MotionKey.FinalKey;
singlecontrol.tg_DOWN = MotionKey.FinalKey;
singlecontrol.tg_LEFT = MotionKey.FinalKey;
singlecontrol.tg_RIGHT = MotionKey.FinalKey;
singlecontrol.tg_BTN_A = MotionKey.FinalKey;
singlecontrol.tg_BTN_B = MotionKey.FinalKey;
singlecontrol.tg_BTN_C = MotionKey.FinalKey;
singlecontrol.tg_BTN_D = MotionKey.FinalKey;
singlecontrol.tg_BTN_E = MotionKey.FinalKey;
singlecontrol.tg_BTN_F = MotionKey.FinalKey;
singlecontrol.tg_INSERT_COIN = MotionKey.P3_INSERT_COIN;
singlecontrol.tg_GAMESTART = MotionKey.P3_GAMESTART;
singlecontrol.tg_UP = MotionKey.P3_UP;
singlecontrol.tg_DOWN = MotionKey.P3_DOWN;
singlecontrol.tg_LEFT = MotionKey.P3_LEFT;
singlecontrol.tg_RIGHT = MotionKey.P3_RIGHT;
singlecontrol.tg_BTN_A = MotionKey.P3_BTN_1;
singlecontrol.tg_BTN_B = MotionKey.P3_BTN_2;
singlecontrol.tg_BTN_C = MotionKey.P3_BTN_3;
singlecontrol.tg_BTN_D = MotionKey.P3_BTN_4;
singlecontrol.tg_BTN_E = MotionKey.P3_BTN_5;
singlecontrol.tg_BTN_F = MotionKey.P3_BTN_6;
break;
case 3:
singlecontrol.tg_INSERT_COIN = MotionKey.FinalKey;
singlecontrol.tg_GAMESTART = MotionKey.FinalKey;
singlecontrol.tg_UP = MotionKey.FinalKey;
singlecontrol.tg_DOWN = MotionKey.FinalKey;
singlecontrol.tg_LEFT = MotionKey.FinalKey;
singlecontrol.tg_RIGHT = MotionKey.FinalKey;
singlecontrol.tg_BTN_A = MotionKey.FinalKey;
singlecontrol.tg_BTN_B = MotionKey.FinalKey;
singlecontrol.tg_BTN_C = MotionKey.FinalKey;
singlecontrol.tg_BTN_D = MotionKey.FinalKey;
singlecontrol.tg_BTN_E = MotionKey.FinalKey;
singlecontrol.tg_BTN_F = MotionKey.FinalKey;
singlecontrol.tg_INSERT_COIN = MotionKey.P4_INSERT_COIN;
singlecontrol.tg_GAMESTART = MotionKey.P4_GAMESTART;
singlecontrol.tg_UP = MotionKey.P4_UP;
singlecontrol.tg_DOWN = MotionKey.P4_DOWN;
singlecontrol.tg_LEFT = MotionKey.P4_LEFT;
singlecontrol.tg_RIGHT = MotionKey.P4_RIGHT;
singlecontrol.tg_BTN_A = MotionKey.P4_BTN_1;
singlecontrol.tg_BTN_B = MotionKey.P4_BTN_2;
singlecontrol.tg_BTN_C = MotionKey.P4_BTN_3;
singlecontrol.tg_BTN_D = MotionKey.P4_BTN_4;
singlecontrol.tg_BTN_E = MotionKey.P4_BTN_5;
singlecontrol.tg_BTN_F = MotionKey.P4_BTN_6;
break;
}
}

View File

@ -1,8 +1,10 @@
using AxibugEmuOnline.Client;
using AxibugEmuOnline.Client.ClientCore;
using MAME.Core;
using System;
using UnityEngine;
public class UniSoundPlayer : MonoBehaviour, ISoundPlayer
public class UniSoundPlayer : MonoBehaviour, ISoundPlayer, AxiAudioPull
{
[SerializeField]
private AudioSource m_as;
@ -13,14 +15,24 @@ public class UniSoundPlayer : MonoBehaviour, ISoundPlayer
void Awake()
{
//TODO 采样率需要更准确而且和clip并没有关系
var dummy = AudioClip.Create("dummy", 1, 1, AudioSettings.outputSampleRate, false);
dummy.SetData(new float[] { 1 }, 0);
m_as.clip = dummy; //just to let unity play the audiosource
m_as.loop = true;
m_as.spatialBlend = 1;
m_as.Play();
////TODO 采样率需要更准确而且和clip并没有关系
//var dummy = AudioClip.Create("dummy", 1, 1, AudioSettings.outputSampleRate, false);
//dummy.SetData(new float[] { 1 }, 0);
//m_as.clip = dummy; //just to let unity play the audiosource
//m_as.loop = true;
//m_as.spatialBlend = 1;
//m_as.Play();
}
private void OnEnable()
{
App.audioMgr.RegisterStream(nameof(UMAME), AudioSettings.outputSampleRate, this);
}
void OnDisable()
{
App.audioMgr.ClearAudioData(nameof(UMAME));
}
public void GetAudioParams(out int frequency, out int channels)
{
frequency = m_as.clip.samples;
@ -38,12 +50,62 @@ public class UniSoundPlayer : MonoBehaviour, ISoundPlayer
public void StopPlay()
{
if (m_as.isPlaying)
{
{
m_as.Stop();
}
}
void OnAudioFilterRead(float[] data, int channels)
public unsafe void PullAudio(float[] data, int channels)
{
if (!UMAME.bInGame) return;
fixed (float* pData = data)
{
float* outputPtr = pData; // 指向数组起始位置的指针
int dataLength = data.Length;
for (int i = 0; i < dataLength; i += channels)
{
float rawFloat = lastData;
float rawData;
if (_buffer.TryRead(out rawData))
{
rawFloat = rawData;
}
*outputPtr = rawFloat;
outputPtr++; // 指针移动到下一个位置
// 填充剩余声道(模拟立体声或多声道)
for (int fill = 1; fill < channels; fill++)
{
*outputPtr = rawFloat;
outputPtr++; // 指针移动到下一个位置
}
lastData = rawFloat;
}
}
/*
int step = channels;
for (int i = 0; i < data.Length; i += step)
{
float rawFloat = lastData;
float rawData;
if (_buffer.TryRead(out rawData))
{
rawFloat = rawData;
}
data[i] = rawFloat;
for (int fill = 1; fill < step; fill++)
data[i + fill] = rawFloat;
lastData = rawFloat;
}*/
}
/*void OnAudioFilterRead(float[] data, int channels)
{
if (!UMAME.bInGame) return;
int step = channels;
@ -61,7 +123,7 @@ public class UniSoundPlayer : MonoBehaviour, ISoundPlayer
data[i + fill] = rawFloat;
lastData = rawFloat;
}
}
}*/
public void SubmitSamples(byte[] buffer, int samples_a)
{
@ -96,4 +158,5 @@ public class UniSoundPlayer : MonoBehaviour, ISoundPlayer
return;
m_as.volume = Vol;
}
}

View File

@ -4,7 +4,7 @@ using VirtualNes.Core;
namespace AxibugEmuOnline.Client
{
public class AudioProvider : MonoBehaviour
public class AudioProvider : MonoBehaviour, AxiAudioPull
{
public NesEmulator NesEmu { get; set; }
@ -14,7 +14,7 @@ namespace AxibugEmuOnline.Client
private SoundBuffer _buffer = new SoundBuffer(4096);
public void Start()
{
return;
//// 获取当前音频配置
//AudioConfiguration config = AudioSettings.GetConfiguration();
//// 设置目标音频配置
@ -25,22 +25,33 @@ namespace AxibugEmuOnline.Client
//config.speakerMode = AudioSpeakerMode.Stereo; // 设置为立体声2 声道)
//App.audioMgr.SetAudioConfig(new AudioConfiguration());
//TODO 采样率需要更准确而且和clip并没有关系
var dummy = AudioClip.Create("dummy", 1, 1, AudioSettings.outputSampleRate, false);
dummy.SetData(new float[] { 1 }, 0);
m_as.clip = dummy; //just to let unity play the audiosource
m_as.loop = true;
m_as.spatialBlend = 1;
m_as.Play();
////TODO 采样率需要更准确而且和clip并没有关系
//var dummy = AudioClip.Create("dummy", 1, 1, AudioSettings.outputSampleRate, false);
//dummy.SetData(new float[] { 1 }, 0);
//m_as.clip = dummy; //just to let unity play the audiosource
//m_as.loop = true;
//m_as.spatialBlend = 1;
//m_as.Play();
}
private void OnEnable()
{
App.audioMgr.RegisterStream(nameof(NesEmulator), AudioSettings.outputSampleRate, this);
}
void OnDisable()
{
App.audioMgr.ClearAudioData(nameof(NesEmulator));
}
public void GetAudioParams(out int frequency, out int channels)
{
frequency = m_as.clip.samples;
channels = m_as.clip.channels;
}
void OnAudioFilterRead(float[] data, int channels)
public unsafe void PullAudio(float[] data, int channels)
{
int step = channels;
@ -49,6 +60,29 @@ namespace AxibugEmuOnline.Client
ProcessSound(NesEmu.NesCore, (uint)(data.Length / channels));
fixed (float* pData = data)
{
float* outputPtr = pData; // 指向 data 数组起始位置的指针
int dataLength = data.Length;
for (int i = 0; i < dataLength; i += step)
{
byte rawData;
float rawFloat = 0f;
if (_buffer.TryRead(out rawData))
rawFloat = rawData / 255f;
*outputPtr = rawFloat;
outputPtr++; //指针移动到下一个位置
for (int fill = 1; fill < step; fill++)
{
*outputPtr = rawFloat;
outputPtr++; //指针移动到下一个位置
}
}
}
/*
for (int i = 0; i < data.Length; i += step)
{
float rawFloat = 0;
@ -59,13 +93,36 @@ namespace AxibugEmuOnline.Client
data[i] = rawFloat;
for (int fill = 1; fill < step; fill++)
data[i + fill] = rawFloat;
}
}*/
}
//void OnAudioFilterRead(float[] data, int channels)
//{
// int step = channels;
// if (NesEmu == null || NesEmu.NesCore == null) return;
// if (NesEmu.IsPause) return;
// ProcessSound(NesEmu.NesCore, (uint)(data.Length / channels));
// for (int i = 0; i < data.Length; i += step)
// {
// float rawFloat = 0;
// byte rawData;
// if (_buffer.TryRead(out rawData))
// rawFloat = rawData / 255f;
// data[i] = rawFloat;
// for (int fill = 1; fill < step; fill++)
// data[i + fill] = rawFloat;
// }
//}
void ProcessSound(NES nes, uint feedCount)
{
nes.apu.Process(_buffer, feedCount);
}
}
}

View File

@ -1,8 +1,10 @@
using AxibugEmuOnline.Client;
using AxibugEmuOnline.Client.ClientCore;
using System;
using System.Collections.Generic;
using UnityEngine;
public class SGSoundPlayer : MonoBehaviour//, ISoundPlayer
public class SGSoundPlayer : MonoBehaviour, AxiAudioPull
{
[SerializeField]
private AudioSource m_as;
@ -18,44 +20,82 @@ public class SGSoundPlayer : MonoBehaviour//, ISoundPlayer
void Awake()
{
// 获取当前音频配置
AudioConfiguration config = AudioSettings.GetConfiguration();
return;
//// 获取当前音频配置
//AudioConfiguration config = AudioSettings.GetConfiguration();
// 设置目标音频配置
config.sampleRate = 44100; // 采样率为 44100Hz
config.numRealVoices = 32; // 设置最大音频源数量(可选)
config.numVirtualVoices = 512; // 设置虚拟音频源数量(可选)
config.dspBufferSize = 1024; // 设置 DSP 缓冲区大小(可选)
config.speakerMode = AudioSpeakerMode.Stereo; // 设置为立体声2 声道)
//// 设置目标音频配置
//config.sampleRate = 44100; // 采样率为 44100Hz
//config.numRealVoices = 32; // 设置最大音频源数量(可选)
//config.numVirtualVoices = 512; // 设置虚拟音频源数量(可选)
//config.dspBufferSize = 1024; // 设置 DSP 缓冲区大小(可选)
//config.speakerMode = AudioSpeakerMode.Stereo; // 设置为立体声2 声道)
// 应用新的音频配置
if (AudioSettings.Reset(config))
{
Debug.Log("Audio settings updated successfully.");
Debug.Log("Sample Rate: " + config.sampleRate + "Hz");
Debug.Log("Speaker Mode: " + config.speakerMode);
}
else
{
Debug.LogError("Failed to update audio settings.");
}
//// 应用新的音频配置
//if (AudioSettings.Reset(config))
//{
// Debug.Log("Audio settings updated successfully.");
// Debug.Log("Sample Rate: " + config.sampleRate + "Hz");
// Debug.Log("Speaker Mode: " + config.speakerMode);
//}
//else
//{
// Debug.LogError("Failed to update audio settings.");
//}
}
private void OnEnable()
{
App.audioMgr.RegisterStream(nameof(UStoicGoose), AudioSettings.outputSampleRate, this);
}
void OnDisable()
{
App.audioMgr.ClearAudioData(nameof(UStoicGoose));
}
private Queue<float> sampleQueue = new Queue<float>();
// Unity 音频线程回调
void OnAudioFilterRead(float[] data, int channels)
public unsafe void PullAudio(float[] data, int channels)
{
fixed (float* pData = data)
{
float* outputPtr = pData; // 指向数组起始位置的指针
int dataLength = data.Length;
for (int i = 0; i < dataLength; i++)
{
float rawData;
if (_buffer.TryRead(out rawData))
*outputPtr = rawData;
else
*outputPtr = 0; // 无数据时静音
outputPtr++; // 指针移动到下一个位置
}
}
/*
for (int i = 0; i < data.Length; i++)
{
if (_buffer.TryRead(out float rawData))
data[i] = rawData;
else
data[i] = 0; // 无数据时静音
}
}*/
}
//// Unity 音频线程回调
//void OnAudioFilterRead(float[] data, int channels)
//{
// for (int i = 0; i < data.Length; i++)
// {
// if (_buffer.TryRead(out float rawData))
// data[i] = rawData;
// else
// data[i] = 0; // 无数据时静音
// }
//}
public void Initialize()

View File

@ -92,5 +92,9 @@
/// 网络即时存档删除
/// </summary>
OnNetGameSavDeleted,
/// <summary>
/// 核心开始游戏
/// </summary>
OnEmuBeginGame,
}
}

View File

@ -1,7 +1,15 @@
using UnityEngine;
using AxibugEmuOnline.Client;
using AxibugEmuOnline.Client.ClientCore;
using UnityEngine;
public class GlobalRef : MonoBehaviour
{
public CanvasGroup FilterPreview;
public CanvasGroup XMBBg;
private void Awake()
{
//初始化后第一时间播放开机音效
App.audioMgr.PlaySFX(AudioMgr.E_SFXTYPE.Launch);
}
}

View File

@ -77,6 +77,7 @@ namespace AxibugEmuOnline.Client.Manager
break;
}
var result = m_emuCore.StartGame(romFile);
if (result)
{
@ -98,6 +99,7 @@ namespace AxibugEmuOnline.Client.Manager
StopGame();
OverlayManager.PopTip(result);
}
Eventer.Instance.PostEvent(EEvent.OnEmuBeginGame);
}
private void OnSlotDataChanged()

View File

@ -51,7 +51,7 @@ namespace AxibugEmuOnline.Client.Settings
{
//获得激活的滤镜
Filter activeFilter = null;
foreach (var filter in Filters)
foreach (var filter in m_filters)
{
if (!filter.m_setting.Enable) continue;
activeFilter = filter;
@ -83,13 +83,16 @@ namespace AxibugEmuOnline.Client.Settings
renderGraphic.texture = result;
}
// 获取 RawImage 在屏幕上的四个顶点的世界坐标
Vector3[] corners = new Vector3[4];
Vector2 GetRawImageScreenResolution(RawImage rawImage)
{
// 获取 RawImage 的 RectTransform
RectTransform rectTransform = rawImage.rectTransform;
// 获取 RawImage 在屏幕上的四个顶点的世界坐标
Vector3[] corners = new Vector3[4];
for (int i = 0; i < corners.Length; i++)
{
corners[0] = Vector3.zero;
}
rectTransform.GetWorldCorners(corners);
// 左下角和右上角的屏幕坐标
@ -124,7 +127,7 @@ namespace AxibugEmuOnline.Client.Settings
/// <param name="filter"></param>
public void EnableFilter(Filter filter)
{
foreach (var selfFiler in Filters)
foreach (var selfFiler in m_filters)
{
if (selfFiler != filter) selfFiler.m_setting.Enable = false;
else selfFiler.m_setting.Enable = true;
@ -137,7 +140,7 @@ namespace AxibugEmuOnline.Client.Settings
public void ShutDownFilter()
{
//关闭所有后处理效果
foreach (var filter in Filters)
foreach (var filter in m_filters)
filter.m_setting.Enable = false;
}

View File

@ -148,6 +148,25 @@ namespace AxibugEmuOnline.Client.Settings
controller.SetBinding(EssgeeSingleKey.RIGHT, device.JOYSTICK.Right, 1);
}
public override void Bind(StandaloneSwitchProController_D device, ControllerBinder controller)
{
controller.SetBinding(EssgeeSingleKey.OPTION_1, device.Plus, 0);
controller.SetBinding(EssgeeSingleKey.OPTION_2, device.Minus, 0);
controller.SetBinding(EssgeeSingleKey.UP, device.Up, 0);
controller.SetBinding(EssgeeSingleKey.DOWN, device.Down, 0);
controller.SetBinding(EssgeeSingleKey.LEFT, device.Left, 0);
controller.SetBinding(EssgeeSingleKey.RIGHT, device.Right, 0);
controller.SetBinding(EssgeeSingleKey.BTN_1, device.A, 0);
controller.SetBinding(EssgeeSingleKey.BTN_2, device.B, 0);
controller.SetBinding(EssgeeSingleKey.BTN_3, device.X, 0);
controller.SetBinding(EssgeeSingleKey.BTN_4, device.Y, 0);
controller.SetBinding(EssgeeSingleKey.UP, device.LeftStick.Up, 1);
controller.SetBinding(EssgeeSingleKey.DOWN, device.LeftStick.Down, 1);
controller.SetBinding(EssgeeSingleKey.LEFT, device.LeftStick.Left, 1);
controller.SetBinding(EssgeeSingleKey.RIGHT, device.LeftStick.Right, 1);
}
public override void Bind(SwitchJoyCon_D device, ControllerBinder controller)
{
controller.SetBinding(EssgeeSingleKey.OPTION_1, device.Plus, 0);

View File

@ -159,6 +159,26 @@ namespace AxibugEmuOnline.Client.Settings
controller.SetBinding(UMAMEKSingleKey.RIGHT, device.JOYSTICK.Right, 1);
}
public override void Bind(StandaloneSwitchProController_D device, ControllerBinder controller)
{
controller.SetBinding(UMAMEKSingleKey.INSERT_COIN, device.Minus, 0);
controller.SetBinding(UMAMEKSingleKey.GAMESTART, device.Plus, 0);
controller.SetBinding(UMAMEKSingleKey.UP, device.Up, 0);
controller.SetBinding(UMAMEKSingleKey.DOWN, device.Down, 0);
controller.SetBinding(UMAMEKSingleKey.LEFT, device.Left, 0);
controller.SetBinding(UMAMEKSingleKey.RIGHT, device.Right, 0);
controller.SetBinding(UMAMEKSingleKey.BTN_A, device.B, 0);
controller.SetBinding(UMAMEKSingleKey.BTN_B, device.A, 0);
controller.SetBinding(UMAMEKSingleKey.BTN_C, device.X, 0);
controller.SetBinding(UMAMEKSingleKey.BTN_D, device.Y, 0);
controller.SetBinding(UMAMEKSingleKey.BTN_E, device.LeftSL, 0);
controller.SetBinding(UMAMEKSingleKey.BTN_F, device.RightSL, 0);
controller.SetBinding(UMAMEKSingleKey.UP, device.LeftStick.Up, 1);
controller.SetBinding(UMAMEKSingleKey.DOWN, device.LeftStick.Down, 1);
controller.SetBinding(UMAMEKSingleKey.LEFT, device.LeftStick.Left, 1);
controller.SetBinding(UMAMEKSingleKey.RIGHT, device.LeftStick.Right, 1);
}
public override void Bind(SwitchJoyCon_D device, ControllerBinder controller)
{
controller.SetBinding(UMAMEKSingleKey.INSERT_COIN, device.Minus, 0);

View File

@ -18,6 +18,7 @@ public abstract class EmuCoreBinder<T> : InternalEmuCoreBinder,
IDeviceBinder<T, XboxController_D>,
IDeviceBinder<T, PSVController_D>,
IDeviceBinder<T, ScreenGamepad_D>,
IDeviceBinder<T, StandaloneSwitchProController_D>,
IDeviceBinder<T, SwitchJoyCon_D>
where T : Enum
{
@ -101,6 +102,7 @@ public abstract class EmuCoreBinder<T> : InternalEmuCoreBinder,
else if (device is XboxController_D xbC) Bind(xbC, binding);
else if (device is PSVController_D psvC) Bind(psvC, binding);
else if (device is ScreenGamepad_D screenGamepad) Bind(screenGamepad, binding);
else if (device is StandaloneSwitchProController_D standaloneswitchproC) Bind(standaloneswitchproC, binding);
else if (device is SwitchJoyCon_D nsJoyCon) Bind(nsJoyCon, binding);
else throw new NotImplementedException($"{device.GetType()}");
}
@ -285,7 +287,7 @@ public abstract class EmuCoreBinder<T> : InternalEmuCoreBinder,
}
private List<InputControl_C> m_caches = new List<InputControl_C>();
public IEnumerable<InputControl_C> GetBinding(T emuBtn)
public List<InputControl_C> GetBinding(T emuBtn)
{
m_caches.Clear();
@ -324,5 +326,6 @@ public abstract class EmuCoreBinder<T> : InternalEmuCoreBinder,
public abstract void Bind(XboxController_D device, ControllerBinder controller);
public abstract void Bind(PSVController_D device, ControllerBinder controller);
public abstract void Bind(ScreenGamepad_D device, ControllerBinder controller);
public abstract void Bind(StandaloneSwitchProController_D device, ControllerBinder controller);
public abstract void Bind(SwitchJoyCon_D device, ControllerBinder controller);
}

View File

@ -121,6 +121,25 @@ namespace AxibugEmuOnline.Client.Settings
controller.SetBinding(EnumButtonType.UP, device.JOYSTICK.Up, 1);
controller.SetBinding(EnumButtonType.DOWN, device.JOYSTICK.Down, 1);
}
public override void Bind(StandaloneSwitchProController_D device, ControllerBinder controller)
{
controller.SetBinding(EnumButtonType.LEFT, device.Left, 0);
controller.SetBinding(EnumButtonType.RIGHT, device.Right, 0);
controller.SetBinding(EnumButtonType.UP, device.Up, 0);
controller.SetBinding(EnumButtonType.DOWN, device.Down, 0);
controller.SetBinding(EnumButtonType.A, device.A, 0);
controller.SetBinding(EnumButtonType.B, device.B, 0);
controller.SetBinding(EnumButtonType.SELECT, device.Minus, 0);
controller.SetBinding(EnumButtonType.START, device.Plus, 0);
controller.SetBinding(EnumButtonType.MIC, device.RightSL, 0);
controller.SetBinding(EnumButtonType.LEFT, device.LeftStick.Left, 1);
controller.SetBinding(EnumButtonType.RIGHT, device.LeftStick.Right, 1);
controller.SetBinding(EnumButtonType.UP, device.LeftStick.Up, 1);
controller.SetBinding(EnumButtonType.DOWN, device.LeftStick.Down, 1);
}
public override void Bind(SwitchJoyCon_D device, ControllerBinder controller)
{
controller.SetBinding(EnumButtonType.LEFT, device.Left, 0);

View File

@ -125,6 +125,21 @@ namespace AxibugEmuOnline.Client.Settings
controller.SetBinding(StoicGooseKey.A, device.BTN_B, 0);
}
public override void Bind(StandaloneSwitchProController_D device, ControllerBinder controller)
{
controller.SetBinding(StoicGooseKey.Start, device.Plus, 0);
controller.SetBinding(StoicGooseKey.X1, device.Up, 0);
controller.SetBinding(StoicGooseKey.X2, device.Down, 0);
controller.SetBinding(StoicGooseKey.X3, device.Left, 0);
controller.SetBinding(StoicGooseKey.X4, device.Right, 0);
controller.SetBinding(StoicGooseKey.Y1, device.RightStick.Up, 0);
controller.SetBinding(StoicGooseKey.Y2, device.RightStick.Down, 0);
controller.SetBinding(StoicGooseKey.Y3, device.RightStick.Left, 0);
controller.SetBinding(StoicGooseKey.Y4, device.RightStick.Right, 0);
controller.SetBinding(StoicGooseKey.B, device.A, 0);
controller.SetBinding(StoicGooseKey.A, device.B, 0);
}
public override void Bind(SwitchJoyCon_D device, ControllerBinder controller)
{
controller.SetBinding(StoicGooseKey.Start, device.Plus, 0);

View File

@ -142,7 +142,7 @@ namespace AxibugEmuOnline.Client
case 0:
controller.SetBinding(EnumCommand.Back, device.BTN_A, 0);
controller.SetBinding(EnumCommand.Enter, device.BTN_B, 0);
controller.SetBinding(EnumCommand.OptionMenu, device.OPTION_1, 0);
controller.SetBinding(EnumCommand.OptionMenu, device.HOME, 0);
controller.SetBinding(EnumCommand.SelectItemDown, device.DOWN, 0);
controller.SetBinding(EnumCommand.SelectItemLeft, device.LEFT, 0);
controller.SetBinding(EnumCommand.SelectItemRight, device.RIGHT, 0);
@ -158,6 +158,29 @@ namespace AxibugEmuOnline.Client
break;
}
}
public override void Bind(StandaloneSwitchProController_D device, ControllerBinder controller)
{
switch (controller.ControllerIndex)
{
case 0://设置标准UI控制
controller.SetBinding(EnumCommand.Back, device.B, 0);
controller.SetBinding(EnumCommand.Enter, device.A, 0);
controller.SetBinding(EnumCommand.OptionMenu, device.Plus, 0);
controller.SetBinding(EnumCommand.SelectItemDown, device.Down, 0);
controller.SetBinding(EnumCommand.SelectItemLeft, device.Left, 0);
controller.SetBinding(EnumCommand.SelectItemRight, device.Right, 0);
controller.SetBinding(EnumCommand.SelectItemUp, device.Up, 0);
controller.SetBinding(EnumCommand.SelectItemDown, device.LeftStick.Down, 1);
controller.SetBinding(EnumCommand.SelectItemLeft, device.LeftStick.Left, 1);
controller.SetBinding(EnumCommand.SelectItemRight, device.LeftStick.Right, 1);
controller.SetBinding(EnumCommand.SelectItemUp, device.LeftStick.Up, 1);
break;
case 1://游戏中UI控制
controller.SetBinding(EnumCommand.OptionMenu, device.RightStickPress, 0);
break;
}
}
public override void Bind(SwitchJoyCon_D device, ControllerBinder controller)
{
switch (controller.ControllerIndex)

View File

@ -1,4 +1,5 @@
using AxibugProtobuf;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
@ -9,13 +10,25 @@ namespace AxibugEmuOnline.Client.Settings
/// </summary>
public class ScreenScaler
{
string key_GlobalMode = nameof(ScreenScaler) + ".GlobalMode";
Dictionary<RomPlatformType, string> cache_PlatMode = new Dictionary<RomPlatformType, string>();
string get_key_PlatMode(RomPlatformType platform) {
if (cache_PlatMode.ContainsKey(platform))
return cache_PlatMode[platform];
string val = nameof(ScreenScaler)+".PlatMode." + platform;
cache_PlatMode[platform] = val;
return val;
}
/// <summary>
/// 全局设置的缩放模式
/// </summary>
public EnumScalerMode GlobalMode
{
get => (EnumScalerMode)AxiPlayerPrefs.GetInt($"{nameof(ScreenScaler)}.GlobalMode", 0);
set => AxiPlayerPrefs.SetInt($"{nameof(ScreenScaler)}.GlobalMode", (int)value);
//get => (EnumScalerMode)AxiPlayerPrefs.GetInt($"{nameof(ScreenScaler)}.GlobalMode", 0);
//set => AxiPlayerPrefs.SetInt($"{nameof(ScreenScaler)}.GlobalMode", (int)value);
get => (EnumScalerMode)AxiPlayerPrefs.GetInt(key_GlobalMode, 0);
set => AxiPlayerPrefs.SetInt(key_GlobalMode, (int)value);
}
/// <summary>
@ -25,7 +38,7 @@ namespace AxibugEmuOnline.Client.Settings
/// <returns></returns>
public EnumScalerMode GetMode(RomPlatformType platform)
{
int setVal = AxiPlayerPrefs.GetInt($"{nameof(ScreenScaler)}.PlatMode.{platform}", -1);
int setVal = AxiPlayerPrefs.GetInt(get_key_PlatMode(platform), -1);
if (setVal == -1)
return GlobalMode;
else
@ -34,14 +47,14 @@ namespace AxibugEmuOnline.Client.Settings
public bool IsSetMode(RomPlatformType platform)
{
int setVal = AxiPlayerPrefs.GetInt($"{nameof(ScreenScaler)}.PlatMode.{platform}", -1);
int setVal = AxiPlayerPrefs.GetInt(get_key_PlatMode(platform), -1);
return setVal != -1;
}
public void SetMode(RomPlatformType platform, EnumScalerMode? mode)
{
int setVal = mode == null ? -1 : (int)mode;
AxiPlayerPrefs.SetInt($"{nameof(ScreenScaler)}.PlatMode.{platform}", setVal);
AxiPlayerPrefs.SetInt(get_key_PlatMode(platform), setVal);
}
/// <summary>

View File

@ -28,18 +28,9 @@ namespace AxibugEmuOnline.Client
if (!string.IsNullOrEmpty(searchKey))
{
string oldsearch = searchKey;
//searchKey = System.Net.WebUtility.UrlEncode(searchKey);
searchKey = AxiHttp.UrlEncode(searchKey);
App.log.Info($"search->{oldsearch} ->{searchKey}");
//searchKey = HttpUtility.UrlDecode(searchKey);
}
//避免特殊字符和个别文字编码问题
//byte[] gb2312Bytes = Encoding.Default.GetBytes(searchKey);
//byte[] utf8Bytes = Encoding.Convert(Encoding.Default, Encoding.UTF8, gb2312Bytes);
//// 将UTF-8编码的字节数组转换回字符串此时是UTF-8编码的字符串
//string utf8String = Encoding.UTF8.GetString(utf8Bytes);
//searchKey = UrlEncode(utf8String);
//App.log.Info($"search->{utf8String} ->{searchKey}");
string url = $"{WebSiteApi}/RomList?Page={page}&PageSize={pageSize}&PType={(int)platform}&SearchKey={searchKey}&Token={App.user.Token}";
App.log.Info($"GetRomList=>{url}");
AxiHttpProxy.SendWebRequestProxy request = AxiHttpProxy.Get(url);
@ -57,19 +48,8 @@ namespace AxibugEmuOnline.Client
yield break;
}
App.log.Error(request.downloadHandler.ErrInfo);
App.log.Error(request.downloadHandler.errInfo);
callback.Invoke(page, null);
/*
UnityWebRequest request = UnityWebRequest.Get($"{WebSiteApi}/NesRomList?Page={page}&PageSize={pageSize}&SearchKey={searchKey}");
yield return request.SendWebRequest();
if (request.result != UnityWebRequest.Result.Success)
{
callback.Invoke(null);
yield break;
}*/
}
private IEnumerator GetRomListFlow(AxibugProtobuf.RomPlatformType platform, int page, int pageSize, Action<int, Resp_GameList> callback)
{
@ -91,18 +71,8 @@ namespace AxibugEmuOnline.Client
yield break;
}
App.log.Error(request.downloadHandler.ErrInfo);
App.log.Error(request.downloadHandler.errInfo);
callback.Invoke(page, null);
/*
UnityWebRequest request = UnityWebRequest.Get($"{WebSiteApi}/NesRomList?Page={page}&PageSize={pageSize}");
yield return request.SendWebRequest();
if (request.result != UnityWebRequest.Result.Success)
{
callback.Invoke(null);
yield break;
}
*/
}
public void GetMarkList(Action<int, Resp_GameList> callback, AxibugProtobuf.RomPlatformType platform, int page, int pageSize = 10)
@ -147,7 +117,7 @@ namespace AxibugEmuOnline.Client
yield break;
}
App.log.Error(request.downloadHandler.ErrInfo);
App.log.Error(request.downloadHandler.errInfo);
callback.Invoke(page, null);
/*
@ -181,7 +151,7 @@ namespace AxibugEmuOnline.Client
yield break;
}
App.log.Error(request.downloadHandler.ErrInfo);
App.log.Error(request.downloadHandler.errInfo);
callback.Invoke(page, null);
/*
UnityWebRequest request = UnityWebRequest.Get($"{WebSiteApi}/NesRomList?Page={page}&PageSize={pageSize}");
@ -215,7 +185,7 @@ namespace AxibugEmuOnline.Client
yield break;
}
App.log.Error(request.downloadHandler.ErrInfo);
App.log.Error(request.downloadHandler.errInfo);
callback.Invoke(null);
/*

View File

@ -19,20 +19,20 @@ namespace AxibugEmuOnline.Client.InputDevices
var axis = GetVector2();
var dir = GetDirection(axis, 0.15f);
Up.m_performing = dir == Direction.Up;
Up.m_performing = (dir & Direction.Up) > 0;
Up.Update();
Down.m_performing = dir == Direction.Down;
Down.m_performing = (dir & Direction.Down) > 0;
Down.Update();
Left.m_performing = dir == Direction.Left;
Left.m_performing = (dir & Direction.Left) > 0;
Left.Update();
Right.m_performing = dir == Direction.Right;
Right.m_performing = (dir & Direction.Right) > 0;
Right.Update();
}
public class VirtualButton : InputControl_C
{
@ -56,62 +56,41 @@ namespace AxibugEmuOnline.Client.InputDevices
}
}
enum Direction
[System.Flags]
enum Direction : byte
{
None,
Up,
Down,
Left,
Right
None = 0,
Up = 1,
Down = 2,
Left = 4,
Right = 8
}
static Direction GetDirection(Vector2 input, float deadzone)
{
// 检查死区:如果点在死区半径内,返回无
//// 检查死区:如果点在死区半径内,返回无
if (input.magnitude <= deadzone)
{
return Direction.None;
}
// 计算点与四个方向基准向量的点积
//float dotUp = Vector2.Dot(normalized, Vector2.up); // (0, 1)
//float dotDown = Vector2.Dot(normalized, Vector2.down); // (0, -1)
//float dotRight = Vector2.Dot(normalized, Vector2.right); // (1, 0)
//float dotLeft = Vector2.Dot(normalized, Vector2.left); // (-1, 0)
// 标准化向量(确保在单位圆上)
Vector2 normalized = input.normalized;
// 计算点与四个方向基准向量的点积
float dotUp = Vector2.Dot(normalized, Vector2.up); // (0, 1)
float dotDown = Vector2.Dot(normalized, Vector2.down); // (0, -1)
float dotRight = Vector2.Dot(normalized, Vector2.right); // (1, 0)
float dotLeft = Vector2.Dot(normalized, Vector2.left); // (-1, 0)
// 找出最大点积对应的方向
Direction bestDirection = Direction.None;
float maxDot = -1f; // 初始化为最小值
// 检查上方向
if (dotUp > maxDot)
{
maxDot = dotUp;
bestDirection = Direction.Up;
}
if (normalized.y > deadzone) bestDirection |= Direction.Up;
// 检查下方向
if (dotDown > maxDot)
{
maxDot = dotDown;
bestDirection = Direction.Down;
}
if (normalized.y < -1 * deadzone) bestDirection |= Direction.Down;
// 检查右方向
if (dotRight > maxDot)
{
maxDot = dotRight;
bestDirection = Direction.Right;
}
if (normalized.x > deadzone) bestDirection |= Direction.Right;
// 检查左方向
if (dotLeft > maxDot)
{
bestDirection = Direction.Left;
}
if (normalized.x < -1 * deadzone) bestDirection |= Direction.Left;
return bestDirection;
}

View File

@ -0,0 +1,34 @@
using AxibugProtobuf;
namespace AxibugEmuOnline.Client.InputDevices
{
public class StandaloneSwitchProController_D : InputDevice_D
{
public Button_C LeftSL;
public Button_C LeftSR;
public Button_C RightSL;
public Button_C RightSR;
public Button_C B;
public Button_C A;
public Button_C Y;
public Button_C X;
public Button_C Up;
public Button_C Down;
public Button_C Left;
public Button_C Right;
public Button_C Minus;
public Button_C Plus;
public Stick_C LeftStick;
public Stick_C RightStick;
public Button_C LeftStickPress;
public Button_C RightStickPress;
public StandaloneSwitchProController_D(InputResolver resolver) : base(resolver) { }
public override GamePadType PadType => GamePadType.SwitchProControl;
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 77370bc30da5106418f2ec162759b122

View File

@ -1,4 +1,7 @@
using AxiInputSP.UGUI;
using AxibugEmuOnline.Client.ClientCore;
using AxibugEmuOnline.Client.Event;
using AxiInputSP.UGUI;
using System;
using System.Collections.Generic;
using UnityEngine;
@ -26,9 +29,15 @@ namespace AxibugEmuOnline.Client.InputDevices
{
AxiScreenGamepad.OnGamepadActive += AxiScreenGamepad_OnGamepadActive;
AxiScreenGamepad.OnGamepadDisactive += AxiScreenGamepad_OnGamepadDisactive;
Eventer.Instance.RegisterEvent(EEvent.OnEmuBeginGame, OnEmuBeginGame);
OnInit();
}
private void OnEmuBeginGame()
{
ClearLastCheckPerformingValue();
}
private void AxiScreenGamepad_OnGamepadDisactive(AxiScreenGamepad sender)
{
if (m_devices.TryGetValue(sender, out var device))
@ -52,7 +61,7 @@ namespace AxibugEmuOnline.Client.InputDevices
/// 获得所有当前已连入的输入设备
/// </summary>
/// <returns></returns>
public IEnumerable<InputDevice_D> GetDevices()
public List<InputDevice_D> GetDevices()
{
m_devicesResultCache.Clear();
m_devicesResultCache.AddRange(m_devices.Values);
@ -95,8 +104,33 @@ namespace AxibugEmuOnline.Client.InputDevices
OnDeviceConnected?.Invoke(connectDevice);
}
long last_CheckPerformingFrameIdx = -100;
bool last_CheckPerformingValue = false;
void ClearLastCheckPerformingValue()
{
last_CheckPerformingFrameIdx = -100;
last_CheckPerformingValue = false;
}
public bool CheckPerforming<CONTROLLER>(CONTROLLER control) where CONTROLLER : InputControl_C
{
////减少遍历开销因为每帧200+次的调用 居然CPU占用了2~3%
//if (App.emu?.Core == null || last_CheckPerformingFrameIdx != App.emu.Core.Frame)
//{
// if (control.Device is ScreenGamepad_D)
// {
// ScreenGamepad_D device = control.Device as ScreenGamepad_D;
// last_CheckPerformingValue = device.CheckPerforming(control);
// }
// else last_CheckPerformingValue = OnCheckPerforming(control);
// if (App.emu?.Core != null)
// last_CheckPerformingFrameIdx = App.emu.Core.Frame;
//}
//return last_CheckPerformingValue;
if (control.Device is ScreenGamepad_D)
{
ScreenGamepad_D device = control.Device as ScreenGamepad_D;

View File

@ -77,6 +77,15 @@ On-Screen Keyboard这个是真正的屏幕软键盘。
else newDevice = new DualShockController_D(this);
}
#endif
#if UNITY_STANDALONE
//PC Mac 平台的SwitchPro 手柄其他平台无法编译包括NS电脑连NSPro手柄是不一样的
//inputsystem 文档说的是SwitchProControllerHIDA Nintendo Switch Pro controller connected to a desktop mac/windows PC using the HID interface.
else if (ipdev is UnityEngine.InputSystem.Switch.SwitchProControllerHID)
{
newDevice = new StandaloneSwitchProController_D(this);
}
#endif
else if (ipdev is XInputController)
{
newDevice = new XboxController_D(this);
@ -309,6 +318,33 @@ On-Screen Keyboard这个是真正的屏幕软键盘。
mapper[ds_d.RightStick] = ipDsGamePad.rightStick;
}
#endif
#if UNITY_STANDALONE
//PC Mac 平台的SwitchPro 手柄其他平台无法编译包括NS电脑连NSPro手柄是不一样的
//inputsystem 文档说的是SwitchProControllerHIDA Nintendo Switch Pro controller connected to a desktop mac/windows PC using the HID interface.
else if (device_d is StandaloneSwitchProController_D standaloneswitchpro_d)
{
var ipdevice_joycon = ipdevice as UnityEngine.InputSystem.Switch.SwitchProControllerHID;
mapper[standaloneswitchpro_d.LeftSL] = ipdevice_joycon.leftTrigger;
mapper[standaloneswitchpro_d.LeftSR] = ipdevice_joycon.leftShoulder;
mapper[standaloneswitchpro_d.RightSL] = ipdevice_joycon.rightTrigger;
mapper[standaloneswitchpro_d.RightSR] = ipdevice_joycon.rightShoulder;
mapper[standaloneswitchpro_d.B] = ipdevice_joycon.bButton;
mapper[standaloneswitchpro_d.A] = ipdevice_joycon.aButton;
mapper[standaloneswitchpro_d.Y] = ipdevice_joycon.yButton;
mapper[standaloneswitchpro_d.X] = ipdevice_joycon.xButton;
mapper[standaloneswitchpro_d.Up] = ipdevice_joycon.dpad.up;
mapper[standaloneswitchpro_d.Down] = ipdevice_joycon.dpad.down;
mapper[standaloneswitchpro_d.Left] = ipdevice_joycon.dpad.left;
mapper[standaloneswitchpro_d.Right] = ipdevice_joycon.dpad.right;
mapper[standaloneswitchpro_d.Minus] = ipdevice_joycon.selectButton;
mapper[standaloneswitchpro_d.Plus] = ipdevice_joycon.startButton;
mapper[standaloneswitchpro_d.LeftStick] = ipdevice_joycon.leftStick;
mapper[standaloneswitchpro_d.RightStick] = ipdevice_joycon.rightStick;
mapper[standaloneswitchpro_d.RightStickPress] = ipdevice_joycon.rightStickButton;
mapper[standaloneswitchpro_d.LeftStickPress] = ipdevice_joycon.leftStickButton;
}
#endif
else if (device_d is XboxController_D xbox_d)
{
var ipXInputGamePad = ipdevice as XInputController;

View File

@ -23,7 +23,7 @@ namespace AxibugEmuOnline.Client
m_downloadingTasks.TryGetValue(url, out var proxy);
if (proxy == null) return null;
return Mathf.Clamp01(proxy.downloadHandler.DownLoadPr);
return Mathf.Clamp01(proxy.downloadHandler.downLoadPr);
}
HashSet<string> temp = new HashSet<string>();
@ -53,7 +53,7 @@ namespace AxibugEmuOnline.Client
}
else
{
Debug.LogError($"{overTask.downloadHandler.ErrInfo}:{overTask.downloadHandler.url}");
Debug.LogError($"{overTask.downloadHandler.errInfo}:{overTask.downloadHandler.url}");
}
}
}

View File

@ -43,7 +43,7 @@ namespace AxibugEmuOnline.Client
if (m_downloadTask.downloadHandler.bHadErr) //下载失败
{
FSM.GetState<SyncFailedState>().Error = m_downloadTask.downloadHandler.ErrInfo;
FSM.GetState<SyncFailedState>().Error = m_downloadTask.downloadHandler.errInfo;
FSM.ChangeState<SyncFailedState>();
return;
}
@ -52,7 +52,7 @@ namespace AxibugEmuOnline.Client
if (m_downloadTaskImg.downloadHandler.bHadErr) //下载失败
{
FSM.GetState<SyncFailedState>().Error = m_downloadTaskImg.downloadHandler.ErrInfo;
FSM.GetState<SyncFailedState>().Error = m_downloadTaskImg.downloadHandler.errInfo;
FSM.ChangeState<SyncFailedState>();
return;
}

View File

@ -4,9 +4,15 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;
using UnityEngine.Audio;
namespace AxibugEmuOnline.Client
{
public interface AxiAudioPull
{
public void PullAudio(float[] data, int channels);
}
public class AudioMgr : MonoBehaviour
{
public enum E_SFXTYPE
@ -19,33 +25,48 @@ namespace AxibugEmuOnline.Client
system_ok
}
public Dictionary<E_SFXTYPE, AudioClip> dictAudioClip = new Dictionary<E_SFXTYPE, AudioClip>();
private AudioSource mSource;
private void Awake()
void Awake()
{
mSource = this.gameObject.AddComponent<AudioSource>();
LoadAudioClip();
PlaySFX(E_SFXTYPE.Launch);
DontDestroyOnLoad(gameObject);
InitializeAudioSystem();
}
/// <summary>
/// 手动设置AudioCfg 主要用于模拟器各核心采样率对齐
/// </summary>
/// <param name="config"></param>
public void SetAudioConfig(AudioConfiguration config)
#region
Dictionary<E_SFXTYPE, AudioClip> dictAudioClip = new Dictionary<E_SFXTYPE, AudioClip>();
void LoadAudioClip()
{
// 应用新的音频配置
if (AudioSettings.Reset(config))
dictAudioClip[E_SFXTYPE.Cancel] = Resources.Load<AudioClip>("Sound/XMBSFX/cancel");
dictAudioClip[E_SFXTYPE.Cursor] = Resources.Load<AudioClip>("Sound/XMBSFX/cursor");
dictAudioClip[E_SFXTYPE.Option] = Resources.Load<AudioClip>("Sound/XMBSFX/option");
dictAudioClip[E_SFXTYPE.Launch] = Resources.Load<AudioClip>("Sound/XMBSFX/StartPSP");
dictAudioClip[E_SFXTYPE.system_ng] = Resources.Load<AudioClip>("Sound/XMBSFX/system_ng");
dictAudioClip[E_SFXTYPE.system_ok] = Resources.Load<AudioClip>("Sound/XMBSFX/system_ok");
}
#endregion
[SerializeField] private AudioMixerGroup _staticGroup; // 静态音效UI等输出组
[Header("静态音效")]
[SerializeField] private AudioSource _staticAudioSource; // 用于播放静态音效的源
AudioStreamData _audioStreams;
private int _targetOutputSampleRate; // Unity音频系统的输出采样率
/// <summary>
/// 初始化音频系统
/// </summary>
private void InitializeAudioSystem()
{
AudioSettings.OnAudioConfigurationChanged += OnAudioConfigurationChanged;
_targetOutputSampleRate = AudioSettings.outputSampleRate;
if (_staticAudioSource == null)
{
Debug.Log("Audio settings updated successfully.");
Debug.Log("Sample Rate: " + config.sampleRate + "Hz");
Debug.Log("Speaker Mode: " + config.speakerMode);
}
else
{
Debug.LogError("Failed to update audio settings.");
_staticAudioSource = this.gameObject.AddComponent<AudioSource>();
_staticAudioSource.outputAudioMixerGroup = _staticGroup;
}
// 设置初始音量
SetStaticVolume(0.9f);
Debug.Log($"Audio System Initialized. Output Sample Rate: {_targetOutputSampleRate}Hz");
LoadAudioClip();
}
/// <summary>
@ -57,28 +78,116 @@ namespace AxibugEmuOnline.Client
//函数仅处理设备变化的情况,非设备变化不再本函数处理,避免核心采样率变化和本处循环调用
if (deviceWasChanged)
{
AudioConfiguration config = AudioSettings.GetConfiguration();
AudioSettings.Reset(config);
ResetAudioCfg();
//AudioConfiguration config = AudioSettings.GetConfiguration();
//AudioSettings.Reset(config);
//TODO 重新播放音效但是DSP不用若有UI BGM后续 这里加重播
}
}
public void LoadAudioClip()
{
dictAudioClip[E_SFXTYPE.Cancel] = Resources.Load<AudioClip>("Sound/XMBSFX/cancel");
dictAudioClip[E_SFXTYPE.Cursor] = Resources.Load<AudioClip>("Sound/XMBSFX/cursor");
dictAudioClip[E_SFXTYPE.Option] = Resources.Load<AudioClip>("Sound/XMBSFX/option");
dictAudioClip[E_SFXTYPE.Launch] = Resources.Load<AudioClip>("Sound/XMBSFX/StartPSP");
dictAudioClip[E_SFXTYPE.system_ng] = Resources.Load<AudioClip>("Sound/XMBSFX/system_ng");
dictAudioClip[E_SFXTYPE.system_ok] = Resources.Load<AudioClip>("Sound/XMBSFX/system_ok");
}
#region
public void PlaySFX(E_SFXTYPE type, bool isLoop = false)
{
mSource.clip = dictAudioClip[type];
mSource.loop = isLoop;
mSource.Play();
PlayStaticSound(dictAudioClip[type], 1, 1);
}
/// <summary>
/// 播放静态音频剪辑UI音效等
/// </summary>
void PlayStaticSound(AudioClip clip, float volume = 1.0f, float pitch = 1.0f)
{
if (clip == null) return;
_staticAudioSource.pitch = Mathf.Clamp(pitch, 0.5f, 2.0f);
_staticAudioSource.PlayOneShot(clip, Mathf.Clamp01(volume));
}
/// <summary>
/// 设置静态音频音量线性0.0-1.0
/// </summary>
public void SetStaticVolume(float volumeLinear)
{
if (_staticGroup != null && _staticGroup.audioMixer != null)
{
float volumeDB = ConvertLinearToDecibel(Mathf.Clamp01(volumeLinear));
_staticGroup.audioMixer.SetFloat("StaticVolume", volumeDB);
}
}
#endregion
#region
/// <summary>
/// 注册一个动态音频流通道(模拟器)
/// </summary>
/// <param name="channelId">通道标识符 (e.g., "NES", "MAME")</param>
/// <param name="inputSampleRate">该通道的原始采样率</param>
public void RegisterStream(string channelId, int inputSampleRate, AxiAudioPull audioPullHandle)
{
_audioStreams = null;
_audioStreams = new AudioStreamData(channelId, inputSampleRate, audioPullHandle);
ResetAudioCfg();
}
private void ResetAudioCfg()
{
// 获取当前音频配置
AudioConfiguration config = AudioSettings.GetConfiguration();
// 设置目标音频配置
config.sampleRate = 48000; // 采样率为 44100Hz
config.numRealVoices = 32; // 设置最大音频源数量(可选)
config.numVirtualVoices = 512; // 设置虚拟音频源数量(可选)
config.dspBufferSize = 1024; // 设置 DSP 缓冲区大小(可选)
config.speakerMode = AudioSpeakerMode.Stereo; // 设置为立体声2 声道)
// 应用新的音频配置
if (AudioSettings.Reset(config))
{
Debug.Log("Audio settings updated successfully.");
Debug.Log("Sample Rate: " + config.sampleRate + "Hz");
Debug.Log("Speaker Mode: " + config.speakerMode);
}
else
{
Debug.LogError("Failed to update audio settings.");
}
_staticAudioSource.Play();//只为让DSP继续
}
/// <summary>
/// 清空指定通道的音频数据
/// </summary>
public void ClearAudioData(string channelId)
{
if (_audioStreams == null || _audioStreams.channelid != channelId)
return;
_audioStreams = null;
}
#endregion
#region Core Audio Processing (Called automatically by Unity)
/// <summary>
/// Unity音频线程回调在这里处理和混合所有动态音频流[1](@ref)
/// </summary>
void OnAudioFilterRead(float[] data, int channels)
{
if (_audioStreams == null) return;
_audioStreams.AxiAudioPullHandle.PullAudio(data, channels);
//TODO 如果要处理采样率差异
if (_audioStreams.NeedsResampling) { }
}
#endregion
#region Helper Methods
/// <summary>
/// 线性音量值转换为分贝值 (dB)[4](@ref)
/// </summary>
private float ConvertLinearToDecibel(float linear)
{
if (linear <= 0.0001f) return -80.0f; // 避免log10(0)
return Mathf.Log10(linear) * 20.0f;
}
#endregion
#region
@ -138,14 +247,6 @@ namespace AxibugEmuOnline.Client
ms.Write(dataChunk.GetBytes(), 0, (int)dataChunk.Length());
AxiIO.File.WriteAllBytesFromStream(filename, ms);
}
//using (FileStream file = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.ReadWrite))
//{
// file.Write(waveHeader.GetBytes(), 0, (int)waveHeader.Length());
// file.Write(formatChunk.GetBytes(), 0, (int)formatChunk.Length());
// file.Write(dataChunk.GetBytes(), 0, (int)dataChunk.Length());
//}
IsRecording = false;
OverlayManager.PopTip("录音结束");
}
@ -159,22 +260,35 @@ namespace AxibugEmuOnline.Client
#endregion
}
// 用于描述一个动态音频流的数据结构
public class AudioStreamData
{
public string channelid;
public int SourceSampleRate;
public bool NeedsResampling;
public AxiAudioPull AxiAudioPullHandle;
public AudioStreamData(string channelid, int SourceSampleRate, AxiAudioPull audiohandle)
{
this.channelid = channelid;
this.SourceSampleRate = SourceSampleRate;
this.AxiAudioPullHandle = audiohandle;
NeedsResampling = SourceSampleRate != AudioSettings.outputSampleRate;
AudioSettings.GetDSPBufferSize(out int bufferLength, out int numBuffers);
}
}
class WaveHeader
{
const string fileTypeId = "RIFF";
const string mediaTypeId = "WAVE";
public string FileTypeId { get; private set; }
public uint FileLength { get; set; }
public string MediaTypeId { get; private set; }
public WaveHeader()
{
FileTypeId = fileTypeId;
MediaTypeId = mediaTypeId;
FileLength = 4; /* Minimum size is always 4 bytes */
}
public byte[] GetBytes()
{
List<byte> chunkData = new List<byte>();
@ -185,7 +299,6 @@ namespace AxibugEmuOnline.Client
return chunkData.ToArray();
}
public uint Length()
{
return (uint)GetBytes().Length;
@ -195,35 +308,28 @@ namespace AxibugEmuOnline.Client
class FormatChunk
{
const string chunkId = "fmt ";
ushort bitsPerSample, channels;
uint frequency;
public string ChunkId { get; private set; }
public uint ChunkSize { get; private set; }
public ushort FormatTag { get; private set; }
public ushort Channels
{
get { return channels; }
set { channels = value; RecalcBlockSizes(); }
}
public uint Frequency
{
get { return frequency; }
set { frequency = value; RecalcBlockSizes(); }
}
public uint AverageBytesPerSec { get; private set; }
public ushort BlockAlign { get; private set; }
public ushort BitsPerSample
{
get { return bitsPerSample; }
set { bitsPerSample = value; RecalcBlockSizes(); }
}
public FormatChunk()
{
ChunkId = chunkId;
@ -234,20 +340,17 @@ namespace AxibugEmuOnline.Client
BitsPerSample = 16; /* Default to 16bits */
RecalcBlockSizes();
}
public FormatChunk(int frequency, int channels) : this()
{
Channels = (ushort)channels;
Frequency = (ushort)frequency;
RecalcBlockSizes();
}
private void RecalcBlockSizes()
{
BlockAlign = (ushort)(channels * (bitsPerSample / 8));
AverageBytesPerSec = frequency * BlockAlign;
}
public byte[] GetBytes()
{
List<byte> chunkBytes = new List<byte>();
@ -263,7 +366,6 @@ namespace AxibugEmuOnline.Client
return chunkBytes.ToArray();
}
public uint Length()
{
return (uint)GetBytes().Length;

View File

@ -19,7 +19,7 @@ namespace AxibugEmuOnline.Client
m_checkCmds = Enum.GetValues(typeof(EnumCommand)) as EnumCommand[];
}
IEnumerable<CommandState> GetCommand()
List<CommandState> GetCommand()
{
if (CheckFrame == Time.frameCount)
return m_commands;
@ -39,7 +39,7 @@ namespace AxibugEmuOnline.Client
return m_commands;
}
public void Update(IEnumerable<CommandExecuter> executers)
public void Update(List<CommandExecuter> executers)
{
foreach (var cmd in GetCommand())
{