Compare commits

..

18 Commits

Author SHA1 Message Date
ce409c6a0a 合并 2025-02-28 14:56:05 +08:00
d87158fd45 提交2.28陈佳乐。微信,反馈,几条 2025-02-28 14:47:05 +08:00
shenjianxing
2d17f012fe 增加缺少的dll 2025-02-27 20:01:03 +08:00
shenjianxing
afc63ea87c 新增PC端实验报告导出功能 2025-02-27 19:15:03 +08:00
shenjianxing
ad1dd6f480 修改UI字体 2025-02-27 18:45:26 +08:00
shenjianxing
7c0fcffcc1 弹窗增加下次不在弹出提示 2025-02-27 18:35:44 +08:00
shenjianxing
0da2c9ea70 扩展timeline 倍速参数 2025-02-27 15:51:55 +08:00
shenjianxing
09435dd391 新增timeline 速度参数 2025-02-27 15:46:27 +08:00
shenjianxing
d8b62e6ac2 修改材质更换逻辑 2025-02-27 14:30:46 +08:00
shenjianxing
e62fe5a842 修改注册事件的前后逻辑 2025-02-26 17:17:58 +08:00
shenjianxing
37349dc4a1 删除多余引用 2025-02-26 16:36:46 +08:00
shenjianxing
8af3a68042 回退代码 2025-02-26 14:25:21 +08:00
shenjianxing
bbf6fd7246 点击忽略Ignore层 2025-02-26 14:07:34 +08:00
shenjianxing
a0f0405ae0 完善画板 2025-02-24 17:37:06 +08:00
shenjianxing
3802bfbc6b 性能问题待修复 2025-02-24 17:03:44 +08:00
shenjianxing
8cfeecd8e8 完成矩形和圆形绘画 2025-02-24 11:11:14 +08:00
shenjianxing
ef725203b5 增加颜色设定 2025-02-21 17:50:33 +08:00
shenjianxing
8205a21dc7 重写画板功能 2025-02-21 17:26:17 +08:00
77 changed files with 10517 additions and 890 deletions

File diff suppressed because it is too large Load Diff

View File

@ -179,6 +179,140 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &963341410792452669
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8306813097888173733}
- component: {fileID: 3837189004134352734}
- component: {fileID: 7614384700572048380}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8306813097888173733
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 963341410792452669}
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: 248141855332757782}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: 86.7, y: 0}
m_SizeDelta: {x: 125.9408, y: 26.6775}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3837189004134352734
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 963341410792452669}
m_CullTransparentMesh: 1
--- !u!114 &7614384700572048380
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 963341410792452669}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\u4E0D\u5728\u5F39\u51FA"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: e7da174c677019b49aa681250aa4ded8, type: 2}
m_sharedMaterial: {fileID: -7878122246201655599, guid: e7da174c677019b49aa681250aa4ded8, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 14
m_fontSizeBase: 14
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &965987611090981841
GameObject:
m_ObjectHideFlags: 0
@ -471,6 +605,83 @@ MonoBehaviour:
ContentText: {fileID: 2630179459340483145}
OperationContent: {fileID: 3768800539522999701}
ConfirmBtn: {fileID: 783019177237190269}
NoToggle: {fileID: 348326873578363908}
--- !u!1 &2503928927472218135
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8122422719238859266}
- component: {fileID: 6943201433567018558}
- component: {fileID: 9120054127247695426}
m_Layer: 5
m_Name: Background
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8122422719238859266
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2503928927472218135}
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: 7220735263378127805}
m_Father: {fileID: 248141855332757782}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 10, y: -10}
m_SizeDelta: {x: 15, y: 14}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6943201433567018558
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2503928927472218135}
m_CullTransparentMesh: 1
--- !u!114 &9120054127247695426
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2503928927472218135}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 9464ca413b2bcb04cb493e10e581608c, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &2550146359932684284
GameObject:
m_ObjectHideFlags: 0
@ -574,6 +785,81 @@ MonoBehaviour:
CustomComponentName:
CustomComment:
mComponentName: UnityEngine.UI.Toggle
--- !u!1 &2570030987872014484
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7220735263378127805}
- component: {fileID: 8195180130690482555}
- component: {fileID: 9078779131021137493}
m_Layer: 5
m_Name: Checkmark
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7220735263378127805
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2570030987872014484}
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: 8122422719238859266}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 11, y: 7}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8195180130690482555
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2570030987872014484}
m_CullTransparentMesh: 1
--- !u!114 &9078779131021137493
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2570030987872014484}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 602c10f94513ff948ae3265e93663fd0, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &3022383873887137971
GameObject:
m_ObjectHideFlags: 0
@ -874,6 +1160,140 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &3928332711450143475
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5035779744222043849}
- component: {fileID: 3606052736764112539}
- component: {fileID: 1180986773106598373}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5035779744222043849
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3928332711450143475}
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: 2372316975154564413}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 200, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3606052736764112539
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3928332711450143475}
m_CullTransparentMesh: 1
--- !u!114 &1180986773106598373
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3928332711450143475}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\u786E\u5B9A"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: e7da174c677019b49aa681250aa4ded8, type: 2}
m_sharedMaterial: {fileID: -7878122246201655599, guid: e7da174c677019b49aa681250aa4ded8, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 16
m_fontSizeBase: 16
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &3987550854091427406
GameObject:
m_ObjectHideFlags: 0
@ -1088,7 +1508,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4372367197721826394}
- {fileID: 5035779744222043849}
m_Father: {fileID: 4839883224716733706}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
@ -1230,7 +1650,7 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &5331334700477330333
--- !u!1 &4335738970878834065
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@ -1238,77 +1658,101 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4372367197721826394}
- component: {fileID: 4841981992143538647}
- component: {fileID: 1789336353052483050}
- component: {fileID: 248141855332757782}
- component: {fileID: 348326873578363908}
- component: {fileID: 5533678330431192180}
m_Layer: 5
m_Name: 'Text '
m_Name: NoToggle
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4372367197721826394
--- !u!224 &248141855332757782
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5331334700477330333}
m_GameObject: {fileID: 4335738970878834065}
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: 2372316975154564413}
m_Children:
- {fileID: 8122422719238859266}
- {fileID: 8306813097888173733}
m_Father: {fileID: 4839883224716733706}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 155, y: -152}
m_SizeDelta: {x: 160, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4841981992143538647
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5331334700477330333}
m_CullTransparentMesh: 1
--- !u!114 &1789336353052483050
--- !u!114 &348326873578363908
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5331334700477330333}
m_GameObject: {fileID: 4335738970878834065}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 9120054127247695426}
toggleTransition: 1
graphic: {fileID: 9078779131021137493}
m_Group: {fileID: 0}
onValueChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 12800000, guid: 20ebdb412ee9aec4a9d3005965d9c962, type: 3}
m_FontSize: 16
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 1
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: "\u786E\u5B9A"
m_IsOn: 0
--- !u!114 &5533678330431192180
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4335738970878834065}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0d51f3a7c41ab0346b49ae50d456bece, type: 3}
m_Name:
m_EditorClassIdentifier:
MarkType: 0
CustomComponentName:
CustomComment:
mComponentName: UnityEngine.UI.Toggle
--- !u!1 &5793951295459804211
GameObject:
m_ObjectHideFlags: 0
@ -2073,6 +2517,7 @@ RectTransform:
- {fileID: 5869372504899619242}
- {fileID: 3938101680096514251}
- {fileID: 2372316975154564413}
- {fileID: 248141855332757782}
m_Father: {fileID: 293141910494228245}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 B

View File

@ -0,0 +1,179 @@
fileFormatVersion: 2
guid: 9464ca413b2bcb04cb493e10e581608c
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
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
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 2
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 8192
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 8192
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 8192
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 8192
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Windows Store Apps
maxTextureSize: 8192
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 8192
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 8192
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: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 B

View File

@ -0,0 +1,179 @@
fileFormatVersion: 2
guid: 602c10f94513ff948ae3265e93663fd0
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
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
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 2
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 8192
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 8192
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 8192
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 8192
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Windows Store Apps
maxTextureSize: 8192
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 8192
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 8192
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: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

8
Assets/Draw.meta Normal file
View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: bd538c372611ede46a4389a4ef8ba9cb
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7be60a2437157b749bc25c72427f35d5
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 919 B

View File

@ -0,0 +1,91 @@
fileFormatVersion: 2
guid: 45b6d471659424c4f88c4aa6112e1bd3
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 10
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 79520199945d34148a54066eb2e001bc
timeCreated: 1575620920
licenseType: Pro
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: c41c94f41a0a95d49b97d88fd9327cef
folderAsset: yes
timeCreated: 1575447409
licenseType: Pro
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,63 @@
Shader "Unlit/BrushIcon"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_Color("Color",Color)=(0,0,0,1)
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 100
ZTest Always Cull Off ZWrite Off Fog{ Mode Off }
Blend SrcAlpha OneMinusSrcAlpha
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
// make fog work
#pragma multi_compile_fog
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f
{
float2 uv : TEXCOORD0;
UNITY_FOG_COORDS(1)
float4 vertex : SV_POSITION;
};
sampler2D _MainTex;
float4 _MainTex_ST;
fixed4 _Color;
v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
UNITY_TRANSFER_FOG(o,o.vertex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
// sample the texture
fixed4 col = tex2D(_MainTex, i.uv);
// apply fog
UNITY_APPLY_FOG(i.fogCoord, col);
fixed4 color=_Color;
col.rgb=1;
col*=color;
return col;
}
ENDCG
}
}
}

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 6ad73eaed0c4f374a8948ba16a866634
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,83 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: BrushIconMat
m_Shader: {fileID: 4800000, guid: 6ad73eaed0c4f374a8948ba16a866634, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 0, g: 0, b: 0, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d9be9b56f48ab1d478231a9ac3c2b666
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,85 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: CaptureBGMat
m_Shader: {fileID: 4800000, guid: a48b37570e9694f4388befba363bc962, type: 3}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BrushTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _Size: 1
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _Transp: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 0.2205882, g: 0.20436849, b: 0.20436849, a: 0.503}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _Rect: {r: 0, g: 0, b: 1, a: 1}
- _UV: {r: 0, g: 0, b: 0, a: 0}

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 0490854394524a04cbe2ab86ebb3d15c
timeCreated: 1575517239
licenseType: Pro
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,68 @@
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
Shader "Unlit/CaptureGray"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_Color("Color",Color)=(1,1,1,1)
//_OutRegionTex ("OutRegionTexture", 2D) = "white" {}
//_LeftDownConner("UV",Vector)=(0,0,0,0)
//_RightUpConner("UV",Vector)=(0,0,0,0)
_Rect("Rect",Vector)=(0,0,1,1)
}
SubShader
{
Tags { "RenderType"="Transparent" }
LOD 100
ZTest Always Cull Off ZWrite Off Fog{ Mode Off }
Blend SrcAlpha OneMinusSrcAlpha
//Blend One DstColor
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f
{
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};
sampler2D _MainTex;
float4 _MainTex_ST;
//fixed4 _LeftDownConner;
//fixed4 _RightUpConner;
fixed4 _Rect;
fixed4 _Color;
v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
fixed4 col =_Color;
float2 uv = i.uv ;
if(uv.x> _Rect.x&&uv.x< _Rect.z && uv.y> _Rect.y&&uv.y< _Rect.w)
col.a = 0;
return col;
}
ENDCG
}
}
}

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: a48b37570e9694f4388befba363bc962
timeCreated: 1575611893
licenseType: Pro
ShaderImporter:
externalObjects: {}
defaultTextures: []
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,56 @@
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
Shader "Unlit/ClearBrush"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
}
SubShader
{
Tags { "RenderType"="Opaque" }
LOD 100
ZTest Always Cull Off ZWrite Off Fog{ Mode Off }
Blend One DstColor
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f
{
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};
sampler2D _MainTex;
float4 _MainTex_ST;
v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
// sample the texture
fixed4 col = tex2D(_MainTex, i.uv);
col = 0;
return col;
}
ENDCG
}
}
}

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 914277ceb0abbd24f8b6d9ef1d036232
timeCreated: 1575447443
licenseType: Pro
ShaderImporter:
externalObjects: {}
defaultTextures: []
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,86 @@
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
Shader "Unlit/EraserBrush"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_BrushTex("Brush Texture",2D)= "white" {}
_Color("Color",Color)=(1,1,1,1)
_UV("UV",Vector)=(0,0,0,0)
_Size("Size",Range(1,1000))=1
_SizeY("SizeY",Range(1,1000))=1
}
SubShader
{
Tags { "RenderType"="Transparent" }
LOD 100
ZTest Always Cull Off ZWrite Off Fog{ Mode Off }
Blend Off
//Blend One DstColor
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f
{
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};
sampler2D _MainTex;
float4 _MainTex_ST;
sampler2D _BrushTex;
fixed4 _UV;
float _Size;
float _SizeY;
fixed4 _Color;
v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
// sample the texture
float size = _Size;
float2 uv = i.uv + (0.5f / size);
uv = uv - _UV.xy;
uv *= size;
float sizeY = _SizeY;
uv.y=uv.y*sizeY/size;
float cirle = pow(uv.x-0.5f, 2)+pow(uv.y-0.5f*sizeY/size, 2);
if(cirle>0.25f)
discard;
fixed4 col = tex2D(_BrushTex,uv);
col.rgb = 1;
col *= _Color;
return col;
}
ENDCG
}
}
}

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: e21211aad6317ba438958cafe3bbc621
timeCreated: 1575545892
licenseType: Pro
ShaderImporter:
externalObjects: {}
defaultTextures: []
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,81 @@
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
Shader "Unlit/PaintBrush"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_BrushTex("Brush Texture",2D)= "white" {}
_Color("Color",Color)=(1,1,1,1)
_UV("UV",Vector)=(0,0,0,0)
_Size("Size",Range(1,1000))=1
_SizeY("SizeY",Range(1,1000))=1
}
SubShader
{
Tags { "RenderType"="Transparent" }
LOD 100
ZTest Always Cull Off ZWrite Off Fog{ Mode Off }
Blend SrcAlpha OneMinusSrcAlpha
//Blend One DstColor
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f
{
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};
sampler2D _MainTex;
float4 _MainTex_ST;
sampler2D _BrushTex;
fixed4 _UV;
float _Size;
float _SizeY;
fixed4 _Color;
v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
return o;
}
fixed4 frag (v2f i) : SV_Target
{
// sample the texture
float size = _Size;
float2 uv = i.uv + (0.5f / size);
uv = uv - _UV.xy;
uv *= size;
float sizeY = _SizeY;
uv.y=uv.y*sizeY/size;
fixed4 col = tex2D(_BrushTex,uv);
col.rgb = 1;
col *= _Color;
return col;
}
ENDCG
}
}
}

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 5a1d0a91d22cbad448c70ea8be65d261
timeCreated: 1575447443
licenseType: Pro
ShaderImporter:
externalObjects: {}
defaultTextures: []
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@ -0,0 +1,166 @@
fileFormatVersion: 2
guid: 65913fb5fa490a5419b2807fc55348de
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
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
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 1
swizzle: 50462976
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@ -0,0 +1,140 @@
fileFormatVersion: 2
guid: db4a67f07ed284f48b1c84975dacbd91
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 1
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 1
swizzle: 50462976
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
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: 3
buildTarget: Standalone
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: 3
buildTarget: WebGL
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: 3
buildTarget: Server
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: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

8
Assets/Draw/Scripts.meta Normal file
View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 358f091379c297d4cacfa04f20e1d0e8
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,194 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GraffitiSettingView : MonoBehaviour
{
public GameObject ViewRootNode;
public Slider BrushSizeSlider;
public Slider EraserSizeSlider;
public Image BrushUIIcon;
public Image EraserUIIcon;
public Button SaveButton;
public Button EraserButton;
public Button PaintButton;
public Text Tip;
[Range(0,1)]
public float DefaultBrushSliderValue;
[Range(0, 1)]
public float DefaultEraserSliderValue;
public Color DefaultBrushColor;
public RawImage EraserIcon;
void Start () {
DefaultBrushSliderValue = 1-(PaintingParams.BrushDefaultSize- PaintingParams.BrushSizeMaxValue) /PaintingParams.BrushSizeFactor;
DefaultEraserSliderValue = 1 - (PaintingParams.EraserDefaultSize - PaintingParams.EraserSizeMaxValue) / PaintingParams.EraserSizeFactor;
DefaultBrushColor = new Color(0, 0, 0, 1);
ScreenShotPainter.instance.FinishedRegionEvent.AddListener(() =>
{
ViewRootNode.SetActive(true);
});
ScreenShotPainter.instance.CannelRegionEvent.AddListener(() =>
{
ViewRootNode.SetActive(false);
});
ScreenShotPainter.instance.FinishedCapture.AddListener(() =>
{
ViewRootNode.SetActive(false);
Tip.gameObject.SetActive(false);
});
ScreenShotPainter.instance.EnterCaptureModeEvent.AddListener(() =>
{
InitBrushUI();
InitEraserUI();
Tip.gameObject.SetActive(true);
});
ScreenShotPainter.instance.EscapeCaptureEvent.AddListener(() =>
{
ViewRootNode.SetActive(false);
Tip.gameObject.SetActive(false);
EraserIcon.gameObject.SetActive(false);
});
ScreenShotPainter.instance.EraserModeUpdateEvent.AddListener(EraserIconUpdate);
}
// Update is called once per frame
void Update () {
}
public void ChangeBrushColor(Color color)
{
BrushUIIcon.material.SetColor("_Color", color);
ScreenShotPainter.instance.SetPaintColor(color);
}
public void OnBrushSliderValueChange()
{
float size = PaintingParams.BrushSizeMaxValue + (1-BrushSizeSlider.value) * PaintingParams.BrushSizeFactor;
//ScreenShotPainter.instance.SetPaintingSize(size);
float sizeY = ((float)Screen.height / (float)Screen.width) * size;
ScreenShotPainter.instance.SetPaintingSize(size, sizeY);
float width = Screen.width / size;
float height = Screen.width / size;//不缩放y轴了
BrushUIIcon.transform.localScale = new Vector3(width / BrushUIIcon.rectTransform.rect.width, height / BrushUIIcon.rectTransform.rect.height, 1);
}
public void OnEraserSliderValueChange()
{
float size = PaintingParams.EraserSizeMaxValue + (1 - EraserSizeSlider.value) * PaintingParams.EraserSizeFactor;
float sizeY = ((float)Screen.height / (float)Screen.width) * size;
ScreenShotPainter.instance.SetEraserSize(size, sizeY);
float width = Screen.width / size;
float height = Screen.width / size;//不缩放y轴了
EraserUIIcon.transform.localScale = new Vector3(width / EraserUIIcon.rectTransform.rect.width, height / EraserUIIcon.rectTransform.rect.height, 1);
}
public void SaveScreenShot()
{
ScreenShotPainter.instance.SaveCapture();
ViewRootNode.SetActive(false);
Tip.gameObject.SetActive(false);
}
public void ChangeToEraserBtn()
{
BrushSizeSlider.gameObject.SetActive(false);
BrushUIIcon.gameObject.SetActive(false);
EraserSizeSlider.gameObject.SetActive(true);
EraserUIIcon.gameObject.SetActive(true);
ScreenShotPainter.instance.ChangeToEraser(true);
}
public void ChangeToPaintBtn()
{
BrushSizeSlider.gameObject.SetActive(true);
BrushUIIcon.gameObject.SetActive(true);
EraserSizeSlider.gameObject.SetActive(false);
EraserUIIcon.gameObject.SetActive(false);
ScreenShotPainter.instance.ChangeToEraser(false);
}
public void EraserIconUpdate(bool show)
{
if (show)
{
EraserIcon.rectTransform.anchoredPosition=new Vector2(Input.mousePosition.x, Input.mousePosition.y);
//大小
float size = PaintingParams.EraserSizeMaxValue + (1 - EraserSizeSlider.value) * PaintingParams.EraserSizeFactor;
float width = Screen.width/ size;
float height = Screen.width / size;//不缩放y轴了
EraserIcon.transform.localScale=new Vector3(width/EraserIcon.rectTransform.rect.width, height / EraserIcon.rectTransform.rect.height,1);
//EraserIcon.transform.localScale=new Vector3(300/width);
EraserIcon.gameObject.SetActive(true);
}
else
{
EraserIcon.gameObject.SetActive(false);
}
}
/// <summary>
/// 初始化画笔
/// </summary>
public void InitBrushUI()
{
BrushUIIcon.material.SetColor("_Color", DefaultBrushColor);
ScreenShotPainter.instance.SetPaintColor(DefaultBrushColor);
BrushSizeSlider.value = DefaultBrushSliderValue;
float size = PaintingParams.BrushSizeMaxValue + (1 - DefaultBrushSliderValue) * PaintingParams.BrushSizeFactor;
//ScreenShotPainter.instance.SetPaintingSize(size);
float sizeY = ((float)Screen.height / (float)Screen.width) * size;
ScreenShotPainter.instance.SetPaintingSize(size, sizeY);
float width = Screen.width / size;
float height = Screen.width / size;//不缩放y轴了
BrushUIIcon.transform.localScale = new Vector3(width / BrushUIIcon.rectTransform.rect.width, height / BrushUIIcon.rectTransform.rect.height, 1);
BrushSizeSlider.gameObject.SetActive(true);
BrushUIIcon.gameObject.SetActive(true);
}
/// <summary>
/// 初始化橡皮擦
/// </summary>
public void InitEraserUI()
{
EraserSizeSlider.value = DefaultEraserSliderValue;
float size = PaintingParams.EraserSizeMaxValue + (1 - DefaultEraserSliderValue) * PaintingParams.EraserSizeFactor;
//ScreenShotPainter.instance.SetPaintingSize(size);
float sizeY = ((float)Screen.height / (float)Screen.width) * size;
ScreenShotPainter.instance.SetEraserSize(size, sizeY);
float width = Screen.width / size;
float height = Screen.width / size;//不缩放y轴了
EraserUIIcon.transform.localScale = new Vector3(width / EraserUIIcon.rectTransform.rect.width, height / EraserUIIcon.rectTransform.rect.height, 1);
EraserUIIcon.gameObject.SetActive(false);
EraserSizeSlider.gameObject.SetActive(false);
}
}

View File

@ -0,0 +1,13 @@
fileFormatVersion: 2
guid: 2a66f3e5857929944836f4346e9b1476
timeCreated: 1575447009
licenseType: Pro
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
fileFormatVersion: 2
guid: 79b0867c9de34f244993591484ca0dfb
timeCreated: 1575706423
licenseType: Pro
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,28 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TestGraffitiComponent : MonoBehaviour
{
public bool isFullScreen;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
public void FullScreenGraffiti()
{
ScreenShotPainter.instance.SwitchOn(true);
}
public void FreeScreenGraffiti()
{
ScreenShotPainter.instance.SwitchOn(false);
}
}

View File

@ -0,0 +1,13 @@
fileFormatVersion: 2
guid: 20b5c33222cb1134ca378a897b59b851
timeCreated: 1575460289
licenseType: Pro
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

1501
Assets/Draw/Test.unity Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: f1f73df32e71233469be718fcff1f704
timeCreated: 1575453536
licenseType: Pro
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: ba16243601d48674bbd94478034635d0
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/Plugins/I18N.CJK.dll Normal file

Binary file not shown.

View File

@ -0,0 +1,105 @@
fileFormatVersion: 2
guid: 011acf0a952213a4b97dec494970b89c
timeCreated: 1557824456
licenseType: Pro
PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
data:
first:
Any:
second:
enabled: 1
settings: {}
data:
first:
Editor: Editor
second:
enabled: 0
settings:
CPU: x86_64
DefaultValueInitialized: true
data:
first:
Facebook: Win
second:
enabled: 0
settings:
CPU: None
data:
first:
Facebook: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Standalone: Linux
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Linux64
second:
enabled: 1
settings:
CPU: x86_64
data:
first:
Standalone: LinuxUniversal
second:
enabled: 1
settings:
CPU: x86_64
data:
first:
Standalone: OSXIntel
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: OSXIntel64
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: x86_64
data:
first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,105 @@
fileFormatVersion: 2
guid: 7753f3b607b83164cbf74e2e36d090c9
timeCreated: 1557824457
licenseType: Pro
PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
data:
first:
Any:
second:
enabled: 1
settings: {}
data:
first:
Editor: Editor
second:
enabled: 0
settings:
CPU: x86_64
DefaultValueInitialized: true
data:
first:
Facebook: Win
second:
enabled: 0
settings:
CPU: None
data:
first:
Facebook: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Standalone: Linux
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Linux64
second:
enabled: 1
settings:
CPU: x86_64
data:
first:
Standalone: LinuxUniversal
second:
enabled: 1
settings:
CPU: x86_64
data:
first:
Standalone: OSXIntel
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: OSXIntel64
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: x86_64
data:
first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,105 @@
fileFormatVersion: 2
guid: 9c94780bdbcb48240b70f6c632e3fb73
timeCreated: 1557824458
licenseType: Pro
PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
data:
first:
Any:
second:
enabled: 1
settings: {}
data:
first:
Editor: Editor
second:
enabled: 0
settings:
CPU: x86_64
DefaultValueInitialized: true
data:
first:
Facebook: Win
second:
enabled: 0
settings:
CPU: None
data:
first:
Facebook: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Standalone: Linux
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Linux64
second:
enabled: 1
settings:
CPU: x86_64
data:
first:
Standalone: LinuxUniversal
second:
enabled: 1
settings:
CPU: x86_64
data:
first:
Standalone: OSXIntel
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: OSXIntel64
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: x86_64
data:
first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,105 @@
fileFormatVersion: 2
guid: 6c8687baf70c2e44899226fcf87bd57b
timeCreated: 1557824457
licenseType: Pro
PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
data:
first:
Any:
second:
enabled: 1
settings: {}
data:
first:
Editor: Editor
second:
enabled: 0
settings:
CPU: x86_64
DefaultValueInitialized: true
data:
first:
Facebook: Win
second:
enabled: 0
settings:
CPU: None
data:
first:
Facebook: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Standalone: Linux
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Linux64
second:
enabled: 1
settings:
CPU: x86_64
data:
first:
Standalone: LinuxUniversal
second:
enabled: 1
settings:
CPU: x86_64
data:
first:
Standalone: OSXIntel
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: OSXIntel64
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: x86_64
data:
first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,105 @@
fileFormatVersion: 2
guid: f97ed92fe8f098e40835de50638f9bfb
timeCreated: 1557824458
licenseType: Pro
PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
data:
first:
Any:
second:
enabled: 1
settings: {}
data:
first:
Editor: Editor
second:
enabled: 0
settings:
CPU: x86_64
DefaultValueInitialized: true
data:
first:
Facebook: Win
second:
enabled: 0
settings:
CPU: None
data:
first:
Facebook: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Standalone: Linux
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Linux64
second:
enabled: 1
settings:
CPU: x86_64
data:
first:
Standalone: LinuxUniversal
second:
enabled: 1
settings:
CPU: x86_64
data:
first:
Standalone: OSXIntel
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: OSXIntel64
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: x86_64
data:
first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/Plugins/I18N.dll Normal file

Binary file not shown.

View File

@ -0,0 +1,105 @@
fileFormatVersion: 2
guid: 69712f7176d85a4428351b6b7cb03045
timeCreated: 1557824456
licenseType: Pro
PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
data:
first:
Any:
second:
enabled: 1
settings: {}
data:
first:
Editor: Editor
second:
enabled: 0
settings:
CPU: x86_64
DefaultValueInitialized: true
data:
first:
Facebook: Win
second:
enabled: 0
settings:
CPU: None
data:
first:
Facebook: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Standalone: Linux
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Linux64
second:
enabled: 1
settings:
CPU: x86_64
data:
first:
Standalone: LinuxUniversal
second:
enabled: 1
settings:
CPU: x86_64
data:
first:
Standalone: OSXIntel
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: OSXIntel64
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: x86_64
data:
first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
data:
first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 82549cd4bc10d654d876aaf0f7f4b64d
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -60,7 +60,22 @@ namespace QFramework
int.TryParse(index, out matIndex);
if (string.IsNullOrEmpty(matName) == false)
{
mesh.materials[matIndex] = Resources.Load<Material>("Mat/" + matName);
//mesh.materials[matIndex].CopyMatchingPropertiesFromMaterial();
var mat = Resources.Load<Material>("Mat/" + matName);
var mats = new Material[mesh.materials.Length];
for (int i = 0; i < mesh.materials.Length; i++)
{
if (i == matIndex)
{
mats[i] = mat;
}
else
{
mats[i] = mesh.materials[i];
}
}
mesh.materials = mats;
}
if (mainTexture != null)
{

View File

@ -22,6 +22,7 @@ public class TimeLineAction : IAction
string frame;
string endFrame;
float curEndFrame = -1;
string speed = "1";
GameObject obj = null;
PlayableDirector play = null;
float fps = 24;
@ -38,6 +39,7 @@ public class TimeLineAction : IAction
retNode.isWait = datas.ContainsKey("isWait") ? datas["isWait"] : "true";
retNode.frame = datas.ContainsKey("frame") ? datas["frame"] : string.Empty;
retNode.endFrame = datas.ContainsKey("endFrame") ? datas["endFrame"] : string.Empty;
retNode.speed = datas.ContainsKey("speed") ? datas["speed"] : string.Empty;
retNode.curEndFrame = -1;
retNode.play = null;
return retNode;
@ -102,6 +104,16 @@ public class TimeLineAction : IAction
float.TryParse(frame, out curFrame);
}
play.time = curFrame / fps;
float curSpeed = 1;
if (float.TryParse(speed, out curSpeed) == false)
{
curSpeed = 1;
}
if (!play.playableGraph.IsValid())
{
play.RebuildGraph();
}
play.playableGraph.GetRootPlayable(0).SetSpeed(curSpeed);
play.Play();
if (string.IsNullOrEmpty(endFrame) == false)

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 150740f8c53e3e042b1b3bbba9639cc6
guid: 6bb2448096f447040ac74cd700f14893
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -0,0 +1,46 @@
using Aspose.Words;
using Aspose.Words.Replacing;
using QFramework;
using System.IO;
using UnityEngine;
using System.Windows.Forms;
using Newtonsoft.Json.Linq;
public class AsposeHelper : MonoBehaviour
{
public static void Writer(string json)
{
Debug.LogError(File.Exists(Global.reportDemoPath));
// 加载Word文档
Document doc = new Document(Global.reportDemoPath);
JObject jObject = JObject.Parse(json);
foreach (JProperty property in jObject.Properties())
{
string key = property.Name;
string value = property.Value.ToString();
doc.Range.Replace($"{{{key}}}", $"{value}", new FindReplaceOptions());
}
// 替换文本
SaveWithDialog(doc);
//Debug.Log("文档处理完成,新文档已保存到: " + outputFilePath);
}
private static void SaveWithDialog(Document doc)
{
SaveFileDialog dialog = new SaveFileDialog();
dialog.Filter = "Word文档|*.docx";
if (dialog.ShowDialog() == DialogResult.OK)
{
doc.Save(dialog.FileName);
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 7f42727d4b91acc4e938a10542fba938
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -5,11 +5,15 @@ using QFramework;
namespace QFramework.Example
{
// Generate Id:8c5ec0b4-a1fd-4da0-8a13-2042597989ea
// Generate Id:28bba342-def7-4cb6-b857-4ec16c1da4ca
public partial class UIDraw
{
public const string Name = "UIDraw";
[SerializeField]
public UnityEngine.UI.RawImage captureBGImg;
[SerializeField]
public UnityEngine.UI.RawImage RawImg;
[SerializeField]
public RectTransform Content;
[SerializeField]
@ -41,9 +45,9 @@ namespace QFramework.Example
[SerializeField]
public UnityEngine.UI.Toggle Line;
[SerializeField]
public UnityEngine.UI.Toggle Fang;
public UnityEngine.UI.Toggle Rect;
[SerializeField]
public UnityEngine.UI.Toggle Yuan;
public UnityEngine.UI.Toggle Circle;
[SerializeField]
public UnityEngine.UI.Toggle Arrow;
[SerializeField]
@ -66,11 +70,17 @@ namespace QFramework.Example
public UnityEngine.UI.Toggle White;
[SerializeField]
public UnityEngine.UI.Image More;
[SerializeField]
public UnityEngine.UI.Image CirCleImg;
[SerializeField]
public UnityEngine.UI.Image RectImg;
private UIDrawData mPrivateData = null;
protected override void ClearUIComponents()
{
captureBGImg = null;
RawImg = null;
Content = null;
ClearBtn = null;
BackBtn = null;
@ -86,8 +96,8 @@ namespace QFramework.Example
Pen = null;
Eraser = null;
Line = null;
Fang = null;
Yuan = null;
Rect = null;
Circle = null;
Arrow = null;
Colors = null;
Black = null;
@ -99,6 +109,8 @@ namespace QFramework.Example
Purple = null;
White = null;
More = null;
CirCleImg = null;
RectImg = null;
mData = null;
}

View File

@ -3,11 +3,9 @@ using UnityEngine.UI;
using QFramework;
using System.IO;
using UnityEngine.Rendering.Universal;
using static UnityEngine.GraphicsBuffer;
using TMPro;
using UnityEngine.EventSystems;
using DG.Tweening;
using static UnityEngine.Rendering.DebugUI;
namespace QFramework.Example
{
@ -17,37 +15,11 @@ namespace QFramework.Example
public partial class UIDraw : UIPanel
{
public int brushSize = 5;
public LineRenderer curLineRender;
private bool isDrawing = false;
public Camera drawingCamera; // 用于指定绘制使用的相机
public Plane drawingPlane; // 定义绘制平面
Color eraserColor = new Color(1, 1, 1, 0);
enum Tools
{
Pen,
Eraser,
}
Tools curTool = Tools.Pen;
int orderLayer = 0;
protected override void OnInit(IUIData uiData = null)
{
mData = uiData as UIDrawData ?? new UIDrawData();
// 获取绘制相机
drawingCamera = DrawController.instance.self;
if (drawingCamera == null)
{
Debug.LogError("Drawing camera is not assigned!");
return;
}
// 定义绘制平面,这里假设平面的法线为相机的正前方,距离相机为 10 个单位
drawingPlane = new Plane(drawingCamera.transform.forward, drawingCamera.transform.position + drawingCamera.transform.forward * 10);
// ¹Ø±Õ°´Å¥¼àÌý
@ -112,42 +84,94 @@ namespace QFramework.Example
BackBtn.onClick.AddListener(() =>
{
orderLayer--;
DrawController.instance.Remove();
ScreenShotPainter.instance.Undo();
});
ClearBtn.onClick.AddListener(() =>
{
orderLayer = 0;
DrawController.instance.Clear();
ScreenShotPainter.instance.Clear();
});
Pen.onValueChanged.AddListener(isOn =>
{
curTool = Tools.Pen;
if (isOn)
{
ScreenShotPainter.instance.SetStatus(ScreenShotPainter.Status.Pen);
RefreshPenSize();
}
});
Eraser.onValueChanged.AddListener(isOn =>
{
curTool = Tools.Eraser;
if (isOn)
{
ScreenShotPainter.instance.SetStatus(ScreenShotPainter.Status.Eraser);
RefreshPenSize();
}
});
Line.onValueChanged.AddListener(isOn =>
{
if (isOn)
{
ScreenShotPainter.instance.SetStatus(ScreenShotPainter.Status.Line);
}
});
Rect.onValueChanged.AddListener(isOn =>
{
if (isOn)
{
ScreenShotPainter.instance.SetStatus(ScreenShotPainter.Status.Rect);
}
});
Circle.onValueChanged.AddListener(isOn =>
{
if (isOn)
{
ScreenShotPainter.instance.SetStatus(ScreenShotPainter.Status.Circle);
}
});
RefreshAlphaSet();
RefreshPenSize();
}
public void ChangeColor(Color color)
{
Icon.color = new Color(color.r, color.g, color.b, Icon.color.a);
ScreenShotPainter.instance.SetPaintColor(Icon.color);
}
public void RefreshPenSize()
{
var value = PenSizeSlider.value;
float mappedValue = (100f * (value)) / 32f;
// 设置 UI 的长宽
Icon.rectTransform.sizeDelta = new Vector2(mappedValue, mappedValue);
Penvalue.text = value.ToString();
var normalValue = PenSizeSlider.value / PenSizeSlider.maxValue;
if (Eraser.isOn)
{
//大小
float size = PaintingParams.EraserSizeMaxValue + (1 - normalValue) * PaintingParams.EraserSizeFactor;
float sizeY = ((float)Screen.height / (float)Screen.width) * size;
ScreenShotPainter.instance.SetEraserSize(size, sizeY);
float width = Screen.width / size;
float height = Screen.width / size;//不缩放y轴了
Icon.transform.localScale = new Vector3(width / Icon.rectTransform.rect.width, height / Icon.rectTransform.rect.height, 1);
}
else
{
float size = PaintingParams.BrushSizeMaxValue + (1 - normalValue) * PaintingParams.BrushSizeFactor;
float sizeY = ((float)Screen.height / (float)Screen.width) * size;
ScreenShotPainter.instance.SetPaintingSize(size, sizeY);
float width = Screen.width / size;
float height = Screen.width / size;//不缩放y轴了
Icon.transform.localScale = new Vector3(width / Icon.rectTransform.rect.width, height / Icon.rectTransform.rect.height, 1);
}
Penvalue.text = PenSizeSlider.value.ToString();
}
public void RefreshAlphaSet()
@ -155,6 +179,7 @@ namespace QFramework.Example
var color = Icon.color;
color.a = AlphaSlider.value / 100f;
Icon.color = color;
ScreenShotPainter.instance.SetPaintColor(Icon.color);
AlphaValue.text = AlphaSlider.value.ToString();
}
@ -168,28 +193,6 @@ namespace QFramework.Example
}
private void SetupLineRenderer()
{
orderLayer++;
switch (curTool)
{
case Tools.Pen:
curLineRender.startColor = Icon.color;
curLineRender.endColor = Icon.color;
break;
case Tools.Eraser:
curLineRender.startColor = eraserColor;
curLineRender.endColor = eraserColor;
break;
}
curLineRender.startWidth = brushSize / 50f;
curLineRender.endWidth = brushSize / 50f;
curLineRender.positionCount = 0;
curLineRender.useWorldSpace = true; // 使用世界坐标系
curLineRender.material.renderQueue = 3000; // 设置较高的渲染队列值,确保置顶显示
curLineRender.sortingOrder = orderLayer;
}
void Update()
{
@ -200,57 +203,8 @@ namespace QFramework.Example
AlphaValue.gameObject.SetActive(false);
}
if (EventSystem.current.IsPointerOverGameObject() == false)
{
HandleDrawingInput();
HandleSaveClearColorInput();
}
}
private void HandleDrawingInput()
{
if (Input.GetMouseButtonDown(0))
{
isDrawing = true;
curLineRender = DrawController.instance.LineRendererFactory();
SetupLineRenderer();
curLineRender.positionCount = 0;
}
if (Input.GetMouseButtonUp(0))
{
isDrawing = false;
curLineRender = null;
}
if (isDrawing)
{
Ray ray = drawingCamera.ScreenPointToRay(Input.mousePosition);
float enter;
if (drawingPlane.Raycast(ray, out enter))
{
Vector3 drawPoint = ray.GetPoint(enter);
if (ShouldAddNewPoint(drawPoint))
{
AddPointToLineRenderer(drawPoint);
}
Debug.DrawRay(ray.origin, ray.direction * enter, Color.red);
}
}
}
private bool ShouldAddNewPoint(Vector3 drawPoint)
{
return curLineRender.positionCount == 0 ||
Vector3.Distance(drawPoint, curLineRender.GetPosition(curLineRender.positionCount - 1)) > 0.1f;
}
private void AddPointToLineRenderer(Vector3 drawPoint)
{
curLineRender.positionCount++;
curLineRender.SetPosition(curLineRender.positionCount - 1, drawPoint);
}
private void HandleSaveClearColorInput()
{
@ -276,6 +230,11 @@ namespace QFramework.Example
{
Show3DCamera.instance.lockMove = true;
DrawController.instance.gameObject.SetActive(true);
ScreenShotPainter.instance.Init(RawImg, captureBGImg,CirCleImg,RectImg);
ScreenShotPainter.instance.SwitchOn(true);
ScreenShotPainter.instance.SetPaintColor(Icon.color);
RefreshAlphaSet();
RefreshPenSize();
}
protected override void OnShow()

View File

@ -5,7 +5,7 @@ using QFramework;
namespace QFramework.Example
{
// Generate Id:031f03df-56cd-4f22-b0e4-b4cc8ddb2f1a
// Generate Id:f74eb422-cd3e-482e-ab12-950f7715d7bc
public partial class UIInstruction
{
public const string Name = "UIInstruction";
@ -22,6 +22,8 @@ namespace QFramework.Example
public UnityEngine.UI.Image OperationContent;
[SerializeField]
public UnityEngine.UI.Button ConfirmBtn;
[SerializeField]
public UnityEngine.UI.Toggle NoToggle;
private UIInstructionData mPrivateData = null;
@ -33,6 +35,7 @@ namespace QFramework.Example
ContentText = null;
OperationContent = null;
ConfirmBtn = null;
NoToggle = null;
mData = null;
}

View File

@ -8,9 +8,11 @@ namespace QFramework.Example
{
public class UIInstructionData : UIPanelData
{
public bool isRightTop = false;
}
public partial class UIInstruction : UIPanel
{
bool isNo = false;
protected override void OnInit(IUIData uiData = null)
{
TypeEventSystem.Global.Register<OnModuleQuit>((arg) => Hide()).UnRegisterWhenGameObjectDestroyed(gameObject);
@ -42,12 +44,19 @@ namespace QFramework.Example
}
OperationContent.gameObject.SetActive(isOn);
});
ConfirmBtn.onClick.AddListener(() => Hide());
ConfirmBtn.onClick.AddListener(() =>
{
Hide();
isNo = NoToggle.isOn;
});
}
protected override void OnOpen(IUIData uiData = null)
{
mData = uiData as UIInstructionData ?? new UIInstructionData();
if (string.IsNullOrEmpty(Global.Instance.curModule.Descript))
{
@ -57,14 +66,22 @@ namespace QFramework.Example
{
ContentText.text = Global.Instance.curModule.Descript;
}
NoToggle.gameObject.SetActive(mData != null && mData.isRightTop == false);
}
protected override void OnShow()
{
if (isNo == true && mData != null && mData.isRightTop == false)
{
Hide();
}
}
protected override void OnHide()
{
mData = null;
}
protected override void OnClose()

View File

@ -81,14 +81,7 @@ namespace QFramework.Example
private void OnLoadFinished(Scene arg0, LoadSceneMode arg1)
{
SceneManager.sceneLoaded -= OnLoadFinished;
if (Global.Instance.curModule.FSM.Count > 0)
{
var machin = StateMachineController.Instance;
}
if (Global.Instance.curModule.Operations != null && Global.Instance.curModule.Operations.Count > 0)
{
var op = OperationController.Instance;
}
if (Global.Instance.curModule.Devices != null && Global.Instance.curModule.Devices.Count > 0)
{
var dev = DeviceController.Instance;
@ -101,6 +94,14 @@ namespace QFramework.Example
{
ScoreController.Instance.Init();
}
if (Global.Instance.curModule.Operations != null && Global.Instance.curModule.Operations.Count > 0)
{
var op = OperationController.Instance;
}
if (Global.Instance.curModule.FSM.Count > 0)
{
var machin = StateMachineController.Instance;
}
UIKit.OpenPanelAsync<UIRightTop>().ToAction().StartGlobal(() =>
{

View File

@ -33,7 +33,9 @@ namespace QFramework.Example
}
public void OnDesClick()
{
UIKit.OpenPanelAsync<UIInstruction>(canvasLevel: UILevel.PopUI).ToAction().StartGlobal();
UIInstructionData data = new UIInstructionData();
data.isRightTop = true;
UIKit.OpenPanelAsync<UIInstruction>(canvasLevel: UILevel.PopUI, uiData: data).ToAction().StartGlobal();
}
public void OnSetClick()
{

View File

@ -22,27 +22,36 @@ namespace QFramework.Example
}
#if UNITY_WEBGL
ResLoader loader = ResLoader.Allocate();
loader.Add2Load(Global.reportDemoPath.ToLocalBytesResName(), (success, res) =>
{
if (success)
{
byte[] bytes = res.As<LocalBytesRes>().bytes;
var data = new LabReprotData();
data.realname = InputName.text;
data.biaobencaiji_1_buzhou_1 = "[1111]";
string json = JsonConvert.SerializeObject(data);
#if UNITY_WEBGL
WebGLDownLoadFile.Instance.DownloadDocx(bytes, json);
#endif
WebGLDownLoadFile.Instance.DownloadDocx(bytes, GetScoreDataJson());
}
});
loader.LoadAsync();
#elif UNITY_STANDALONE_WIN
AsposeHelper.Writer(GetScoreDataJson());
#endif
});
Confirm.onClick.AddListener(Hide);
}
public string GetScoreDataJson()
{
var data = new LabReprotData();
data.realname = InputName.text;
data.biaobencaiji_1_buzhou_1 = "[1111]";
string json = JsonConvert.SerializeObject(data);
return json;
}
protected override void OnOpen(IUIData uiData = null)

View File

@ -1230,6 +1230,11 @@ namespace XMLTool
{
act.args.Add("endFrame", endFrame.Value);
}
XAttribute speed = action.Attribute("speed");
if (speed != null)
{
act.args.Add("speed", speed.Value);
}
newAction = act;
}
break;

View File

@ -449,6 +449,11 @@
<Condition type="UIClick" value="UIRoot/RightBottom/UIBtns/BtnContent/下一步"/>
<Action type="Show" value="ExamPrefab/Teach_ModelChose/SM_zhu_an2" isShow="true"></Action>
<Action type="Move" value="FlyCamera" to="3.97, 3.37, -24.80" time="0"></Action>
<Action type="Rotate" value="FlyCamera" to="17.27, 183.30, 0.00" time="0"></Action>
<Action type="NextOperation"></Action>
</Action>

View File

@ -403,6 +403,13 @@
<Action type="Btns" value="下一步"/>
<Condition type="UIClick" value="UIRoot/RightBottom/UIBtns/BtnContent/下一步"/>
<Action type="Move" value="FlyCamera" to="3.97, 3.37, -24.80" time="0"></Action>
<Action type="Rotate" value="FlyCamera" to="17.27, 183.30, 0.00" time="0"></Action>
<Action type="NextOperation"></Action>
</Action>

View File

@ -13,7 +13,7 @@
<Action type="UIShow" value="UIOperationList"></Action>
<Action type="NextOperation"></Action>
<Action type="Show" value="ExamPrefab/Teach_ModelChose/SM_zhu_an3_4 (1)" isShow="false" ></Action>
<Action type="Show" value="ExamPrefab/Teach_ModelChose/SM_zhu_an3_4/SM_XiaoTuiChe/SM_XiaoWuJian/SM_JianYaQian2" isShow="false"></Action>
</Action>
</Action>
</Enter>
@ -460,6 +460,10 @@
<Action type="Btns" value="下一步"/>
<Condition type="UIClick" value="UIRoot/RightBottom/UIBtns/BtnContent/下一步"/>
<Action type="Move" value="FlyCamera" to="3.97, 3.37, -24.80" time="0"></Action>
<Action type="Rotate" value="FlyCamera" to="17.27, 183.30, 0.00" time="0"></Action>
<Action type="NextOperation"></Action>
</Action>
@ -1070,6 +1074,7 @@
<Action type="Sequence">
<Action type="Hint" value="完成操作后,将仔猪轻放于原栏中。" time="-1" icon="true" audio="Zhu/Z053.mp3"></Action>
<Action type="CameraSwitch" nearPos="2.78, 1.01, -0.65" nearRot="37.02, 90.30, 0.00" nearTime="0" normalPos="1.77, 1.84, -0.59" normalRot="20.12, 90.55, 0.00" normalTime="0" isNear="false"></Action>
<Action type="HighLight" value="ExamPrefab/Teach_ModelChose/SM_zhu_an3_4/SM_XiaoZhu/group4/SM_XiaoZhu_qiege2:geo/SM_XiaoZhu_qiege2:SM_XiaoZhu_ShenTi" isHigh="true" color="0,255,0,255"></Action>
@ -1764,7 +1769,7 @@
<!--将仔猪放回栏中-->
<Action type="Sequence">
<Action type="CameraSwitch" nearPos="1.77, 1.84, -0.59" nearRot="20.12, 90.55, 0.00" nearTime="0" normalPos="1.77, 1.84, -0.59" normalRot="20.12, 90.55, 0.00" normalTime="0" ></Action>
<Action type="CameraSwitch" nearPos="2.78, 1.01, -0.65" nearRot="37.02, 90.30, 0.00" nearTime="0" normalPos="1.77, 1.84, -0.59" normalRot="20.12, 90.55, 0.00" normalTime="0" isNear="false"></Action>
<Action type="Hint" value="请按顺序进行相关操作" time="-1" icon="true"></Action>

View File

@ -403,6 +403,11 @@
<Action type="Btns" value="下一步"/>
<Condition type="UIClick" value="UIRoot/RightBottom/UIBtns/BtnContent/下一步"/>
<Action type="Move" value="FlyCamera" to="3.97, 3.37, -24.80" time="0"></Action>
<Action type="Rotate" value="FlyCamera" to="17.27, 183.30, 0.00" time="0"></Action>
<Action type="NextOperation"></Action>
</Action>

View File

@ -472,6 +472,11 @@
<!--点击下一步,进行-->
<Action type="Btns" value="下一步"/>
<Condition type="UIClick" value="UIRoot/RightBottom/UIBtns/BtnContent/下一步"/>
<Action type="Move" value="FlyCamera" to="3.97, 3.37, -24.80" time="0"></Action>
<Action type="Rotate" value="FlyCamera" to="17.27, 183.30, 0.00" time="0"></Action>
<Action type="NextOperation"></Action>
</Action>

View File

@ -491,6 +491,10 @@
<!--点击下一步,进行-->
<Action type="Btns" value="下一步"/>
<Condition type="UIClick" value="UIRoot/RightBottom/UIBtns/BtnContent/下一步"/>
<Action type="Move" value="FlyCamera" to="3.97, 3.37, -24.80" time="0"></Action>
<Action type="Rotate" value="FlyCamera" to="17.27, 183.30, 0.00" time="0"></Action>
<Action type="NextOperation"></Action>
</Action>

View File

@ -42,8 +42,8 @@ PlayerSettings:
m_SplashScreenLogos: []
m_VirtualRealitySplashScreen: {fileID: 0}
m_HolographicTrackingLossScreen: {fileID: 0}
defaultScreenWidth: 1920
defaultScreenHeight: 1080
defaultScreenWidth: 3840
defaultScreenHeight: 2160
defaultScreenWidthWeb: 1280
defaultScreenHeightWeb: 720
m_StereoRenderingPath: 0
@ -77,7 +77,7 @@ PlayerSettings:
androidMinimumWindowHeight: 300
androidFullscreenMode: 1
androidAutoRotationBehavior: 1
defaultIsNativeResolution: 1
defaultIsNativeResolution: 0
macRetinaSupport: 1
runInBackground: 1
captureSingleScreen: 0