记忆美术效果添加和素材替换

This commit is contained in:
2025-02-13 17:45:22 +08:00
parent 38be876a74
commit 03141e8a26
9 changed files with 1904 additions and 84 deletions
@@ -320,7 +320,10 @@ public class MemoryProcess : MonoBehaviour
Debug.LogError("Memory not found: " + PunchTape.MemoryIndex);
}
MemoryProcessVloume.weight=1;
yield return new WaitForSeconds(1f);
memoryFinishedspRender.color=Color.white;
OnFrequencyChanged(frequencySlider.value);
OnClarityChanged(claritySlider.value);
@@ -332,6 +335,7 @@ public class MemoryProcess : MonoBehaviour
yield return memorySequence.WaitForCompletion();
}
public bool IsProcessing()
{
return isProcessing;
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 545c523362b028945be9ab40038c7528
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,622 @@
fileFormatVersion: 2
guid: e9415304abb986643be762d6adb803f3
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: b2a9591990af98743ba3ff7cf1000886, type: 3}
textureImporterSettings:
alphaSource: 1
mipMapMode: 0
enableMipMap: 1
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
convertToNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
swizzle: 50462976
isReadable: 0
streamingMipmaps: 1
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
nPOTScale: 1
sRGBTexture: 1
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 200
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 0
flipbookColumns: 0
ignorePngGamma: 0
cookieMode: 0
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapW: 0
normalMap: 0
textureFormat: 0
maxTextureSize: 0
lightmap: 0
compressionQuality: 0
linearTexture: 0
grayScaleToAlpha: 0
rGBM: 0
cubemapConvolutionSteps: 0
cubemapConvolutionExponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
applyGammaDecoding: 0
spriteImportData:
- name:
originalName:
pivot: {x: 0, y: 0}
alignment: 0
border: {x: 0, y: 0, z: 0, w: 0}
rect:
serializedVersion: 2
x: 0
y: 0
width: 0
height: 0
spriteID:
spriteBone: []
spriteOutline: []
vertices: []
spritePhysicsOutline: []
indices:
edges: []
tessellationDetail: 0
uvTransform: {x: 0, y: 0}
spritePosition: {x: 0, y: 0}
mosaicSpriteImportData: []
rigSpriteImportData:
- name: "\u76D6\u5B50"
originalName:
pivot: {x: 0.5, y: 0.5}
alignment: 0
border: {x: 0, y: 0, z: 0, w: 0}
rect:
serializedVersion: 2
x: 3242
y: 2260
width: 401
height: 108
spriteID: 162c8bf032df4a7489d47b6cedffe118
spriteBone: []
spriteOutline: []
vertices: []
spritePhysicsOutline: []
indices:
edges: []
tessellationDetail: 0
uvTransform: {x: 3242, y: 2260}
spritePosition: {x: 2418, y: 816}
- name: "\u653E\u6620\u673A\u63D2\u5165\u53E3\u5185\u90E8"
originalName:
pivot: {x: 0.5, y: 0.5}
alignment: 0
border: {x: 0, y: 0, z: 0, w: 0}
rect:
serializedVersion: 2
x: 3726
y: 4
width: 357
height: 176
spriteID: a0bda809c603f14418c623132f4c4726
spriteBone: []
spriteOutline: []
vertices: []
spritePhysicsOutline: []
indices:
edges: []
tessellationDetail: 0
uvTransform: {x: 3726, y: 4}
spritePosition: {x: 2440, y: 816}
- name: "\u653E\u6620\u673A\u63D2\u5165\u53E3"
originalName:
pivot: {x: 0.5, y: 0.5}
alignment: 0
border: {x: 0, y: 0, z: 0, w: 0}
rect:
serializedVersion: 2
x: 3726
y: 188
width: 357
height: 176
spriteID: e48085212e4f1f84aa28fdc954f95153
spriteBone: []
spriteOutline: []
vertices: []
spritePhysicsOutline: []
indices:
edges: []
tessellationDetail: 0
uvTransform: {x: 3726, y: 188}
spritePosition: {x: 2440, y: 816}
- name: "\u653E\u6620\u673A\u65CB\u8F6C\u94AE\u673A"
originalName:
pivot: {x: 0.5, y: 0.5}
alignment: 0
border: {x: 0, y: 0, z: 0, w: 0}
rect:
serializedVersion: 2
x: 3726
y: 372
width: 242
height: 242
spriteID: 847e795a5a9fbdd44ae796e9c165ca76
spriteBone: []
spriteOutline: []
vertices: []
spritePhysicsOutline: []
indices:
edges: []
tessellationDetail: 0
uvTransform: {x: 3726, y: 372}
spritePosition: {x: 2499, y: 468}
- name: "\u5C4F\u5E55"
originalName:
pivot: {x: 0.5, y: 0.5}
alignment: 0
border: {x: 0, y: 0, z: 0, w: 0}
rect:
serializedVersion: 2
x: 1105
y: 1348
width: 492
height: 398
spriteID: 62587819e95600d45b5401697d2a0ad2
spriteBone: []
spriteOutline: []
vertices: []
spritePhysicsOutline: []
indices:
edges: []
tessellationDetail: 0
uvTransform: {x: 1105, y: 1348}
spritePosition: {x: 2371, y: 1064}
- name: "\u5C0F\u62C9\u6746B"
originalName:
pivot: {x: 0.5, y: 0.5}
alignment: 0
border: {x: 0, y: 0, z: 0, w: 0}
rect:
serializedVersion: 2
x: 3651
y: 2260
width: 111
height: 61
spriteID: 87d0eaa054a7fae4e99a00e66c45b11c
spriteBone: []
spriteOutline: []
vertices: []
spritePhysicsOutline: []
indices:
edges: []
tessellationDetail: 0
uvTransform: {x: 3651, y: 2260}
spritePosition: {x: 2908, y: 1448}
- name: "\u69FDB"
originalName:
pivot: {x: 0.5, y: 0.5}
alignment: 0
border: {x: 0, y: 0, z: 0, w: 0}
rect:
serializedVersion: 2
x: 3726
y: 622
width: 35
height: 551
spriteID: 4e8961b995d9273478a1b795857cd8f6
spriteBone: []
spriteOutline: []
vertices: []
spritePhysicsOutline: []
indices:
edges: []
tessellationDetail: 0
uvTransform: {x: 3726, y: 622}
spritePosition: {x: 2947, y: 973}
- name: "\u5C0F\u62C9\u6746A"
originalName:
pivot: {x: 0.5, y: 0.5}
alignment: 0
border: {x: 0, y: 0, z: 0, w: 0}
rect:
serializedVersion: 2
x: 3770
y: 2260
width: 111
height: 61
spriteID: 8e29f6e7ea22ab34d94895a67a0d0941
spriteBone: []
spriteOutline: []
vertices: []
spritePhysicsOutline: []
indices:
edges: []
tessellationDetail: 0
uvTransform: {x: 3770, y: 2260}
spritePosition: {x: 2211, y: 1448}
- name: "\u69FDA"
originalName:
pivot: {x: 0.5, y: 0.5}
alignment: 0
border: {x: 0, y: 0, z: 0, w: 0}
rect:
serializedVersion: 2
x: 3769
y: 622
width: 35
height: 551
spriteID: 8b2fe97104a377a40a740aa650760147
spriteBone: []
spriteOutline: []
vertices: []
spritePhysicsOutline: []
indices:
edges: []
tessellationDetail: 0
uvTransform: {x: 3769, y: 622}
spritePosition: {x: 2251, y: 973}
- name: "\u56FE\u5C42 1"
originalName:
pivot: {x: 0.5, y: 0.5}
alignment: 0
border: {x: 0, y: 0, z: 0, w: 0}
rect:
serializedVersion: 2
x: 4
y: 1348
width: 1093
height: 904
spriteID: 6da8783f1d406ca48815a8dcf02e4147
spriteBone: []
spriteOutline: []
vertices: []
spritePhysicsOutline: []
indices:
edges: []
tessellationDetail: 0
uvTransform: {x: 4, y: 1348}
spritePosition: {x: 2068, y: 798}
- name: "\u653E\u6620\u673A\u5916\u58F3"
originalName:
pivot: {x: 0.5, y: 0.5}
alignment: 0
border: {x: 0, y: 0, z: 0, w: 0}
rect:
serializedVersion: 2
x: 2480
y: 4
width: 1238
height: 1336
spriteID: 7a4e315f1f20f424fb03ce1adac6212d
spriteBone: []
spriteOutline: []
vertices: []
spritePhysicsOutline: []
indices:
edges: []
tessellationDetail: 0
uvTransform: {x: 2480, y: 4}
spritePosition: {x: 1999, y: 412}
- name: "\u80F6\u7247"
originalName:
pivot: {x: 0.5, y: 0.5}
alignment: 0
border: {x: 0, y: 0, z: 0, w: 0}
rect:
serializedVersion: 2
x: 4
y: 2260
width: 3230
height: 118
spriteID: e1b276793320a1848990e54e35e1102b
spriteBone: []
spriteOutline: []
vertices: []
spritePhysicsOutline: []
indices:
edges: []
tessellationDetail: 0
uvTransform: {x: 4, y: 2260}
spritePosition: {x: 7, y: 1198}
- name: "\u653E\u6620\u673A\u80CC\u666F"
originalName:
pivot: {x: 0.5, y: 0.5}
alignment: 0
border: {x: 0, y: 0, z: 0, w: 0}
rect:
serializedVersion: 2
x: 4
y: 4
width: 2468
height: 1336
spriteID: 578ed2827fbf05040a3ac6fd2a2eb153
spriteBone: []
spriteOutline: []
vertices: []
spritePhysicsOutline: []
indices:
edges: []
tessellationDetail: 0
uvTransform: {x: 4, y: 4}
spritePosition: {x: 1365, y: 412}
characterData:
bones: []
parts: []
dimension: {x: 0, y: 0}
characterGroups: []
pivot: {x: 0, y: 0}
boneReadOnly: 0
sharedRigSpriteImportData: []
sharedRigCharacterData:
bones: []
parts: []
dimension: {x: 0, y: 0}
characterGroups: []
pivot: {x: 0, y: 0}
boneReadOnly: 0
platformSettings:
- name: DefaultTexturePlatform
overridden: 0
ignorePlatformSupport: 0
maxTextureSize: 4096
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
forceMaximumCompressionQuality_BC6H_BC7: 0
crunchedCompression: 0
allowsAlphaSplitting: 0
androidETC2FallbackOverride: 0
- name: Standalone
overridden: 0
ignorePlatformSupport: 0
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
forceMaximumCompressionQuality_BC6H_BC7: 0
crunchedCompression: 0
allowsAlphaSplitting: 0
androidETC2FallbackOverride: 0
- name: Server
overridden: 0
ignorePlatformSupport: 0
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
forceMaximumCompressionQuality_BC6H_BC7: 0
crunchedCompression: 0
allowsAlphaSplitting: 0
androidETC2FallbackOverride: 0
- name: WebGL
overridden: 0
ignorePlatformSupport: 0
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
forceMaximumCompressionQuality_BC6H_BC7: 0
crunchedCompression: 0
allowsAlphaSplitting: 0
androidETC2FallbackOverride: 0
mosaicLayers: 1
characterMode: 1
documentPivot: {x: 0, y: 0}
documentAlignment: 7
importHiddenLayers: 0
layerMappingOption: 2
generatePhysicsShape: 0
paperDollMode: 0
keepDupilcateSpriteName: 1
skeletonAssetReferenceID:
padding: 4
spriteSizeExpand: 0
spriteCategoryList:
categories: []
spritePackingTag:
resliceFromLayer: 0
mosaicPSDLayers: []
rigPSDLayers:
- name: "\u653E\u6620\u673A"
spriteName:
isGroup: 1
parentIndex: -1
spriteID: 0b18eae6a14b41c4e905c1ecc4d55ad1
layerID: 35
mosaicPosition: {x: 0, y: 0}
flatten: 0
isImported: 0
isVisible: 1
- name: "\u653E\u6620\u673A\u63D2\u5165\u53E3\u6253\u5F00"
spriteName:
isGroup: 1
parentIndex: 0
spriteID: 8f36b3aeecce75f41ab831f9e917f2a1
layerID: 34
mosaicPosition: {x: 0, y: 0}
flatten: 0
isImported: 0
isVisible: 1
- name: "\u76D6\u5B50"
spriteName: "\u76D6\u5B50"
isGroup: 0
parentIndex: 1
spriteID: 162c8bf032df4a7489d47b6cedffe118
layerID: 33
mosaicPosition: {x: 3242, y: 2260}
flatten: 0
isImported: 1
isVisible: 1
- name: "\u6253\u5B54\u5E26 "
spriteName:
isGroup: 0
parentIndex: 1
spriteID: afed1720897b7ab4ca47379b68be559b
layerID: 32
mosaicPosition: {x: 0, y: 0}
flatten: 0
isImported: 0
isVisible: 0
- name: "\u653E\u6620\u673A\u63D2\u5165\u53E3\u5185\u90E8"
spriteName: "\u653E\u6620\u673A\u63D2\u5165\u53E3\u5185\u90E8"
isGroup: 0
parentIndex: 1
spriteID: a0bda809c603f14418c623132f4c4726
layerID: 31
mosaicPosition: {x: 3726, y: 4}
flatten: 0
isImported: 1
isVisible: 1
- name: "\u653E\u6620\u673A\u63D2\u5165\u53E3"
spriteName: "\u653E\u6620\u673A\u63D2\u5165\u53E3"
isGroup: 0
parentIndex: 0
spriteID: e48085212e4f1f84aa28fdc954f95153
layerID: 29
mosaicPosition: {x: 3726, y: 188}
flatten: 0
isImported: 1
isVisible: 1
- name: "\u653E\u6620\u673A\u65CB\u8F6C\u94AE\u673A"
spriteName: "\u653E\u6620\u673A\u65CB\u8F6C\u94AE\u673A"
isGroup: 0
parentIndex: 0
spriteID: 847e795a5a9fbdd44ae796e9c165ca76
layerID: 28
mosaicPosition: {x: 3726, y: 372}
flatten: 0
isImported: 1
isVisible: 1
- name: "\u5C4F\u5E55"
spriteName: "\u5C4F\u5E55"
isGroup: 0
parentIndex: 0
spriteID: 62587819e95600d45b5401697d2a0ad2
layerID: 27
mosaicPosition: {x: 1105, y: 1348}
flatten: 0
isImported: 1
isVisible: 1
- name: "\u5C0F\u62C9\u6746B"
spriteName: "\u5C0F\u62C9\u6746B"
isGroup: 0
parentIndex: 0
spriteID: 87d0eaa054a7fae4e99a00e66c45b11c
layerID: 26
mosaicPosition: {x: 3651, y: 2260}
flatten: 0
isImported: 1
isVisible: 1
- name: "\u69FDB"
spriteName: "\u69FDB"
isGroup: 0
parentIndex: 0
spriteID: 4e8961b995d9273478a1b795857cd8f6
layerID: 25
mosaicPosition: {x: 3726, y: 622}
flatten: 0
isImported: 1
isVisible: 1
- name: "\u5C0F\u62C9\u6746A"
spriteName: "\u5C0F\u62C9\u6746A"
isGroup: 0
parentIndex: 0
spriteID: 8e29f6e7ea22ab34d94895a67a0d0941
layerID: 24
mosaicPosition: {x: 3770, y: 2260}
flatten: 0
isImported: 1
isVisible: 1
- name: "\u69FDA"
spriteName: "\u69FDA"
isGroup: 0
parentIndex: 0
spriteID: 8b2fe97104a377a40a740aa650760147
layerID: 23
mosaicPosition: {x: 3769, y: 622}
flatten: 0
isImported: 1
isVisible: 1
- name: "\u56FE\u5C42 1"
spriteName: "\u56FE\u5C42 1"
isGroup: 0
parentIndex: 0
spriteID: 6da8783f1d406ca48815a8dcf02e4147
layerID: 37
mosaicPosition: {x: 4, y: 1348}
flatten: 0
isImported: 1
isVisible: 1
- name: "\u653E\u6620\u673A\u5916\u58F3"
spriteName: "\u653E\u6620\u673A\u5916\u58F3"
isGroup: 0
parentIndex: 0
spriteID: 7a4e315f1f20f424fb03ce1adac6212d
layerID: 22
mosaicPosition: {x: 2480, y: 4}
flatten: 0
isImported: 1
isVisible: 1
- name: "\u80F6\u7247"
spriteName: "\u80F6\u7247"
isGroup: 0
parentIndex: 0
spriteID: e1b276793320a1848990e54e35e1102b
layerID: 21
mosaicPosition: {x: 4, y: 2260}
flatten: 0
isImported: 1
isVisible: 1
- name: "\u653E\u6620\u673A\u80CC\u666F"
spriteName: "\u653E\u6620\u673A\u80CC\u666F"
isGroup: 0
parentIndex: 0
spriteID: 578ed2827fbf05040a3ac6fd2a2eb153
layerID: 20
mosaicPosition: {x: 4, y: 4}
flatten: 0
isImported: 1
isVisible: 1
sharedRigPSDLayers: []
pSDLayerImportSetting: []
importFileNodeState: 1
platformSettingsDirtyTick: 0
spriteSizeExpandChanged: 0
generateGOHierarchy: 0
textureAssetName:
prefabAssetName:
spriteLibAssetName:
skeletonAssetName:
secondarySpriteTextures: []
@@ -42,6 +42,7 @@ position: -2052,-2351
---
ULM自训练进程: 检测到进程接管请求!正在识别手动选择的目标……
<<UF_SwitchState UFSystem UF 0.1>>
<<wait 0.1>>
<<UF_spriteIn UFSystem>>
ULM自训练进程: 已池化图像卷积数据!正在上传神经网络数据集……
//绑定一些描述,减少后面重复判断的逻辑
@@ -73,11 +74,13 @@ position: -2052,-2351
me: 【占位】这就是UF创造力的来源么
peipei: 啊,痛…又开始了……
<<UF_SwitchState UFSystem imagination 3>>
<<wait 3>>
peipei: 【占位】那些颜色,那些感受,我都还记得...
<<set $UfCount = $UfCount + 1>>
me: 【占位】佩佩,你做了什么?
<<hide_dialog>>
<<UF_SwitchState UFSystem memory 3>>
<<UF_SwitchState UFSystem memory 2>>
<<wait 2>>
peipei: 【占位】{$memoryDescription}
<<wait 1>>
me: 【占位】是佩佩的记忆!佩佩的记忆在做数据写入!
@@ -85,6 +88,7 @@ position: -2052,-2351
<<OpenSingleButtonWindow WindowManager 警告! 发现未授权的数据传入!正在清除...>>
<<UF_SwitchState UFSystem UF 2>>
<<wait 2>>
<<UF_spriteOut UFSystem 2>>
me: 【占位】UF清除了这些数据...
me: 【占位】数据污染...这就是绘图异常的原因么?
@@ -109,11 +113,12 @@ position: -2052,-2351
<<if $memoryTarget!="">>
<<UF_SwitchState UFSystem imagination 3>>
<<wait 1.5>>
<<UF_SwitchState UFSystem memory 3>>
<<wait 1.5>>
<<wait 3>>
<<UF_SwitchState UFSystem memory 2>>
<<wait 2>>
me: 【占位】嗯,{$memoryTarget}这里流入的信息是佩佩的记忆...
<<UF_SwitchState UFSystem UF 2>>
<<wait 2>>
<<UF_spriteOut UFSystem 2>>
me: 【占位】我得确认下其他部分
<<set $memoryTarget = "">>
@@ -121,10 +126,10 @@ position: -2052,-2351
<<else>>
<<set $UfCount = $UfCount + 1>>
<<UF_SwitchState UFSystem imagination 3>>
<<wait 1>>
<<wait 3>>
peipei: 【占位】{$memoryDescription}
<<UF_SwitchState UFSystem memory 3>>
<<wait 1.5>>
<<UF_SwitchState UFSystem memory 2>>
<<wait 2>>
<<OpenSingleButtonWindow WindowManager 警告! 发现未授权的数据传入!正在清除...>>
me: 这里流入的也是记忆数据...
<<UF_SwitchState UFSystem UF 2>>
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -7940,7 +7940,7 @@ MonoBehaviour:
runMode: 2
firstTalkSo: {fileID: 11400000, guid: ac5ca9a66ff22ab4b9cd5adbdade6b8c, type: 2}
testTalkSo: {fileID: 11400000, guid: 10601ce26230723479d875a630f15732, type: 2}
saveFileName: "PeipeiDay1_\u624B\u672F"
saveFileName: "PeipeiDay1_\u8BB0\u5FC6\u68C0\u67E5"
--- !u!4 &719228339
Transform:
m_ObjectHideFlags: 0
+55 -33
View File
@@ -1,13 +1,16 @@
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
using DG.Tweening;
using System.Numerics;
using AibisDream;
public class ClueSlotBase : MonoBehaviour, IDropHandler
{
public Image filmImage; // 新增的胶片Image
public Image RoateImage; // 新增的胶片Image
private Transform filmStartPos;
protected ClueType expectedClueType; // 期望的 Clue 类型
protected ClueInteraction interaction; // Clue 的交互
@@ -23,10 +26,9 @@ public class ClueSlotBase : MonoBehaviour, IDropHandler
[HideInInspector]
public bool isOccupied = false; // 插槽是否已占用
[HideInInspector]
[HideInInspector]
public bool isLocked = false; // 插槽是否已占用
protected virtual void Start()
{
currentClueItem = null;
@@ -35,45 +37,46 @@ public class ClueSlotBase : MonoBehaviour, IDropHandler
punchTapeImage.enabled=false;
punchtapeStartpos=punchTapeImage.rectTransform;
//slotFrame.color=Color.white;
filmStartPos=filmImage.rectTransform;
}
public void SetSlotCorrect()
{
SetSlotLockState(true);
}
public void OnDrop(PointerEventData eventData)
{
ClueItem clueItem = eventData.pointerDrag.GetComponent<ClueItem>();
if (clueItem != null)
public void OnDrop(PointerEventData eventData)
{
Clue clue = clueItem.GetClueData();
interaction = clueItem.GetComponent<ClueInteraction>();
if (clue != null && interaction != null&&!isOccupied)
ClueItem clueItem = eventData.pointerDrag.GetComponent<ClueItem>();
if (clueItem != null)
{
interaction.SetClueParentAndPosition(transform);
// 更新当前的 ClueItem
currentClueItem = clueItem;
isOccupied = true;
punchTapeImage.enabled=true;
AudioManager.RandomPlayInteraction("punchtape");
punchTapeImage.rectTransform.DOAnchorPosY(-473f,4f)
.OnComplete(() =>
{
punchTapeImage.enabled=false;
punchTapeImage.rectTransform.DOAnchorPosY(-3f,0.1f);
OnClueInserted(clue);
});
}
else
{
// 如果类型不匹配,返回 ClueItem 到原位
interaction?.ReturnToOriginalPosition();
Clue clue = clueItem.GetClueData();
interaction = clueItem.GetComponent<ClueInteraction>();
if (clue != null && interaction != null&&!isOccupied)
{
interaction.SetClueParentAndPosition(transform);
// 更新当前的 ClueItem
currentClueItem = clueItem;
isOccupied = true;
punchTapeImage.enabled=true;
AudioManager.RandomPlayInteraction("punchtape");
StartFilmAnimation();
punchTapeImage.rectTransform.DOAnchorPosY(-473f,4f)
.OnComplete(() =>
{
punchTapeImage.enabled=false;
punchTapeImage.rectTransform.DOAnchorPosY(-3f,0.1f);
OnClueInserted(clue);
StopFilmAnimation();
});
}
else
{
// 如果类型不匹配,返回 ClueItem 到原位
interaction?.ReturnToOriginalPosition();
}
}
}
}
// 释放插槽时调用
public virtual void ReleaseSlot()
{
@@ -83,6 +86,7 @@ public void OnDrop(PointerEventData eventData)
isOccupied = false;
currentClueItem = null;
interaction = null;
filmImage.rectTransform.localPosition=filmStartPos.localPosition;
}
// 将 ClueItem 返回到集合的逻辑
@@ -109,6 +113,24 @@ public void OnDrop(PointerEventData eventData)
public void SetSlotLockState(bool lockState)
{
isLocked=lockState;
}
private void StartFilmAnimation()
{
// 使用 DOTween 实现胶片的循环移动
filmImage.rectTransform.DOLocalMoveX(-1256f, 1f)
.SetLoops(-1, LoopType.Restart)
.SetEase(Ease.Linear);
RoateImage.rectTransform.DORotate(new Vector3(0, 0, 360), 1f, RotateMode.FastBeyond360)
.SetLoops(-1, LoopType.Restart)
.SetEase(Ease.Linear);
}
private void StopFilmAnimation()
{
// 停止胶片动画
filmImage.rectTransform.DOKill();
RoateImage.rectTransform.DOKill();
}
}
+18 -1
View File
@@ -1,12 +1,14 @@
using System.Drawing;
using UnityEngine;
using DG.Tweening;
public class MemoryClueSlot : ClueSlotBase
{
private MemoryProcess memoryManager;
[HideInInspector]
public PunchTape punchTape;
protected override void Start()
{
base.Start(); // 初始化基类中的内容
@@ -37,4 +39,19 @@ public class MemoryClueSlot : ClueSlotBase
StartCoroutine(memoryManager.SearchMemory(punchTape));
}
}
private void StartFilmAnimation()
{
// 使用 DOTween 实现胶片的循环移动
filmImage.rectTransform.DOLocalMoveX(-1256f, 1f)
.SetLoops(-1, LoopType.Restart)
.SetEase(Ease.Linear);
}
private void StopFilmAnimation()
{
// 停止胶片动画
filmImage.rectTransform.DOKill();
// 重置胶片位置
filmImage.rectTransform.localPosition = Vector3.zero;
}
}