post processing; dynamic world space ui; wasm interpreter
This commit is contained in:
parent
0093909358
commit
176ad8c8da
131 changed files with 2202 additions and 210 deletions
|
@ -24,8 +24,9 @@ MonoBehaviour:
|
|||
probeSamplingDebugMesh: {fileID: 0}
|
||||
probeSamplingDebugTexture: {fileID: 0}
|
||||
probeVolumeBlendStatesCS: {fileID: 0}
|
||||
m_RendererFeatures: []
|
||||
m_RendererFeatureMap:
|
||||
m_RendererFeatures:
|
||||
- {fileID: 601012607912154617}
|
||||
m_RendererFeatureMap: f9952258c8395708
|
||||
m_UseNativeRenderPass: 0
|
||||
xrSystemData: {fileID: 0}
|
||||
postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
|
||||
|
@ -44,10 +45,36 @@ MonoBehaviour:
|
|||
failOperation: 0
|
||||
zFailOperation: 0
|
||||
m_ShadowTransparentReceive: 1
|
||||
m_RenderingMode: 0
|
||||
m_RenderingMode: 2
|
||||
m_DepthPrimingMode: 0
|
||||
m_CopyDepthMode: 1
|
||||
m_DepthAttachmentFormat: 0
|
||||
m_DepthTextureFormat: 0
|
||||
m_AccurateGbufferNormals: 0
|
||||
m_IntermediateTextureMode: 1
|
||||
--- !u!114 &601012607912154617
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f62c9c65cf3354c93be831c8bc075510, type: 3}
|
||||
m_Name: ScreenSpaceAmbientOcclusion
|
||||
m_EditorClassIdentifier:
|
||||
m_Active: 1
|
||||
m_Settings:
|
||||
AOMethod: 0
|
||||
Downsample: 0
|
||||
AfterOpaque: 0
|
||||
Source: 1
|
||||
NormalSamples: 1
|
||||
Intensity: 3
|
||||
DirectLightingStrength: 0.25
|
||||
Radius: 0.035
|
||||
Samples: 1
|
||||
BlurQuality: 0
|
||||
Falloff: 100
|
||||
SampleCount: -1
|
||||
|
|
|
@ -92,7 +92,7 @@ MonoBehaviour:
|
|||
m_MaxPixelLights: 0
|
||||
m_ShadowAtlasResolution: 256
|
||||
m_VolumeFrameworkUpdateMode: 0
|
||||
m_VolumeProfile: {fileID: 0}
|
||||
m_VolumeProfile: {fileID: 11400000, guid: ab09877e2e707104187f6f83e2f62510, type: 2}
|
||||
apvScenesData:
|
||||
obsoleteSceneBounds:
|
||||
m_Keys: []
|
||||
|
|
30
Assets/DefaultEditor.cs
Normal file
30
Assets/DefaultEditor.cs
Normal file
|
@ -0,0 +1,30 @@
|
|||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
using UnityEngine.UIElements;
|
||||
using UnityEditor.UIElements;
|
||||
|
||||
[CustomEditor(typeof(Object), true, isFallback = true)]
|
||||
public class DefaultEditor : Editor
|
||||
{
|
||||
public override VisualElement CreateInspectorGUI()
|
||||
{
|
||||
var container = new VisualElement();
|
||||
|
||||
var iterator = serializedObject.GetIterator();
|
||||
if (iterator.NextVisible(true))
|
||||
{
|
||||
do
|
||||
{
|
||||
var propertyField = new PropertyField(iterator.Copy()) { name = "PropertyField:" + iterator.propertyPath };
|
||||
|
||||
if (iterator.propertyPath == "m_Script" && serializedObject.targetObject != null)
|
||||
propertyField.SetEnabled(value: false);
|
||||
|
||||
container.Add(propertyField);
|
||||
}
|
||||
while (iterator.NextVisible(false));
|
||||
}
|
||||
|
||||
return container;
|
||||
}
|
||||
}
|
2
Assets/DefaultEditor.cs.meta
Normal file
2
Assets/DefaultEditor.cs.meta
Normal file
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b9af3c2b0b924c5a6a45c4788726c0be
|
15
Assets/New Volume Profile.asset
Normal file
15
Assets/New Volume Profile.asset
Normal file
|
@ -0,0 +1,15 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3}
|
||||
m_Name: New Volume Profile
|
||||
m_EditorClassIdentifier:
|
||||
components: []
|
8
Assets/New Volume Profile.asset.meta
Normal file
8
Assets/New Volume Profile.asset.meta
Normal file
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 0ef82ce49038ef596b5717dac6df2898
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
166
Assets/Prefabs/Key.prefab
Normal file
166
Assets/Prefabs/Key.prefab
Normal file
|
@ -0,0 +1,166 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &2892703864492016621
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2368094401510200604}
|
||||
- component: {fileID: 3721857971285848745}
|
||||
- component: {fileID: 4840302974988827429}
|
||||
- component: {fileID: 2542814135003069057}
|
||||
- component: {fileID: 2022912019066975223}
|
||||
- component: {fileID: 1756562992861857283}
|
||||
m_Layer: 0
|
||||
m_Name: Key
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2368094401510200604
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2892703864492016621}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0.38268343, z: 0, w: 0.92387956}
|
||||
m_LocalPosition: {x: -2, y: 0.005, z: 0}
|
||||
m_LocalScale: {x: 0.4, y: 0.01, z: 0.2}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 45, z: 0}
|
||||
--- !u!33 &3721857971285848745
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2892703864492016621}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &4840302974988827429
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2892703864492016621}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: be8072c6f51e356f8a8c5affbe22973f, type: 2}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!65 &2542814135003069057
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2892703864492016621}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 0
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &2022912019066975223
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2892703864492016621}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 6eeb0be32fefa054589fe082a0a7273a, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
oneTimeUse: 0
|
||||
onInteracted:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 1756562992861857283}
|
||||
m_TargetAssemblyTypeName: KitsuneCafe.Interaction.AddItem, Assembly-CSharp
|
||||
m_MethodName: ToInteractor
|
||||
m_Mode: 0
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
- m_Target: {fileID: 2892703864492016621}
|
||||
m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine
|
||||
m_MethodName: SetActive
|
||||
m_Mode: 6
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
--- !u!114 &1756562992861857283
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2892703864492016621}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 67cbbbb78aff08ac19b6fa07b7f41307, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
item: {fileID: 11400000, guid: 3a9b5fc9b523890cf8abd310dbc64940, type: 2}
|
||||
count: 1
|
7
Assets/Prefabs/Key.prefab.meta
Normal file
7
Assets/Prefabs/Key.prefab.meta
Normal file
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 51202e3c62c3d3e1c9bb0ff9c09a608f
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -1,34 +0,0 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fcf7219bab7fe46a1ad266029b2fee19, type: 3}
|
||||
m_Name: Readme
|
||||
m_EditorClassIdentifier:
|
||||
icon: {fileID: 2800000, guid: 727a75301c3d24613a3ebcec4a24c2c8, type: 3}
|
||||
title: URP Empty Template
|
||||
sections:
|
||||
- heading: Welcome to the Universal Render Pipeline
|
||||
text: This template includes the settings and assets you need to start creating with the Universal Render Pipeline.
|
||||
linkText:
|
||||
url:
|
||||
- heading: URP Documentation
|
||||
text:
|
||||
linkText: Read more about URP
|
||||
url: https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@latest
|
||||
- heading: Forums
|
||||
text:
|
||||
linkText: Get answers and support
|
||||
url: https://forum.unity.com/forums/universal-render-pipeline.383/
|
||||
- heading: Report bugs
|
||||
text:
|
||||
linkText: Submit a report
|
||||
url: https://unity3d.com/unity/qa/bug-reporting
|
||||
loadedLayout: 1
|
|
@ -1,5 +1,5 @@
|
|||
fileFormatVersion: 2
|
||||
guid: acb1c120479088ab5b42b2f04af1cbf0
|
||||
guid: adffce9df35457a8e85ccb5847423921
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
137
Assets/Resources/Materials/DebugKey.mat
Normal file
137
Assets/Resources/Materials/DebugKey.mat
Normal file
|
@ -0,0 +1,137 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-7920160008583251365
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 10
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: DebugKey
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, 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:
|
||||
RenderType: Opaque
|
||||
disabledShaderPasses:
|
||||
- MOTIONVECTORS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
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}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AddPrecomputedVelocity: 0
|
||||
- _AlphaClip: 0
|
||||
- _AlphaToMask: 0
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 1
|
||||
- _BumpScale: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _DstBlendAlpha: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 0
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 0
|
||||
- _Metallic: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.005
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0.5
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 0
|
||||
- _WorkflowMode: 1
|
||||
- _XRMotionVectorsPass: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _Color: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
|
@ -1,8 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 8105016687592461f977c054a80ce2f2
|
||||
guid: be8072c6f51e356f8a8c5affbe22973f
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
16
Assets/SOAP/HelloEnvironment.asset
Normal file
16
Assets/SOAP/HelloEnvironment.asset
Normal file
|
@ -0,0 +1,16 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 7fb754f9e0773ecf5b1fe29c163e1ec2, type: 3}
|
||||
m_Name: HelloEnvironment
|
||||
m_EditorClassIdentifier:
|
||||
functions:
|
||||
- {fileID: 11400000, guid: 5c153b604f1b1916cb5880726d0123d5, type: 2}
|
8
Assets/SOAP/HelloEnvironment.asset.meta
Normal file
8
Assets/SOAP/HelloEnvironment.asset.meta
Normal file
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: aa4803d7cbd2cd0d3938c170ae2e4426
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
18
Assets/SOAP/HelloModule.asset
Normal file
18
Assets/SOAP/HelloModule.asset
Normal file
|
@ -0,0 +1,18 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c278fb50cca0b84469e0af15b5b75ce9, type: 3}
|
||||
m_Name: HelloModule
|
||||
m_EditorClassIdentifier:
|
||||
moduleName: hello
|
||||
wasm: {fileID: -8528525496504085160, guid: ba9642a266c04a33d8a1443db2ebb016, type: 3}
|
||||
SkipModuleValidation: 0
|
||||
SkipStartFunction: 0
|
8
Assets/SOAP/HelloModule.asset.meta
Normal file
8
Assets/SOAP/HelloModule.asset.meta
Normal file
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5000fd7bd5e859c3aa908dda32789565
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
18
Assets/SOAP/HelloRuntime.asset
Normal file
18
Assets/SOAP/HelloRuntime.asset
Normal file
|
@ -0,0 +1,18 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e6dc78199a8464287bf7cf7e9e8ff4d3, type: 3}
|
||||
m_Name: HelloRuntime
|
||||
m_EditorClassIdentifier:
|
||||
environments:
|
||||
- {fileID: 11400000, guid: aa4803d7cbd2cd0d3938c170ae2e4426, type: 2}
|
||||
modules:
|
||||
- {fileID: 11400000, guid: 5000fd7bd5e859c3aa908dda32789565, type: 2}
|
8
Assets/SOAP/HelloRuntime.asset.meta
Normal file
8
Assets/SOAP/HelloRuntime.asset.meta
Normal file
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 7cdd54e2ee68f04efa76abf0d040e9ad
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/SOAP/HelloWorld.wasm
Normal file
BIN
Assets/SOAP/HelloWorld.wasm
Normal file
Binary file not shown.
7
Assets/SOAP/HelloWorld.wasm.meta
Normal file
7
Assets/SOAP/HelloWorld.wasm.meta
Normal file
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: ba9642a266c04a33d8a1443db2ebb016
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -20,5 +20,5 @@ MonoBehaviour:
|
|||
stackable: 0
|
||||
maxStackCount: 10
|
||||
icon: {fileID: 0}
|
||||
instancePrefab: {fileID: 0}
|
||||
instancePrefab: {fileID: 2892703864492016621, guid: 51202e3c62c3d3e1c9bb0ff9c09a608f, type: 3}
|
||||
previewPrefab: {fileID: 0}
|
||||
|
|
|
@ -12,7 +12,5 @@ MonoBehaviour:
|
|||
m_Script: {fileID: 11500000, guid: 9702da9b93bb25bf089c54dc37cc44e7, type: 3}
|
||||
m_Name: TestInventory
|
||||
m_EditorClassIdentifier:
|
||||
serializableItems:
|
||||
- Item: {fileID: 11400000, guid: 3a9b5fc9b523890cf8abd310dbc64940, type: 2}
|
||||
count: 1
|
||||
serializableItems: []
|
||||
capacity: 8
|
||||
|
|
14
Assets/SOAP/SayCBinding.asset
Normal file
14
Assets/SOAP/SayCBinding.asset
Normal file
|
@ -0,0 +1,14 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: a1d86ab1e1c07c78fbb94a44dbb50503, type: 3}
|
||||
m_Name: SayCBinding
|
||||
m_EditorClassIdentifier:
|
8
Assets/SOAP/SayCBinding.asset.meta
Normal file
8
Assets/SOAP/SayCBinding.asset.meta
Normal file
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5c153b604f1b1916cb5880726d0123d5
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
8
Assets/SOAP/UI.meta
Normal file
8
Assets/SOAP/UI.meta
Normal file
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 6f947de2f0fa0d654bffc844a3dd5433
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
17
Assets/SOAP/UI/Modal.asset
Normal file
17
Assets/SOAP/UI/Modal.asset
Normal file
|
@ -0,0 +1,17 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 0}
|
||||
m_Name: Modal
|
||||
m_EditorClassIdentifier: Assembly-CSharp:KitsuneCafe.UI:ModalElementSO
|
||||
visualTreeAsset: {fileID: 9197481963319205126, guid: bc70bdaaf37609283aac14435c5441a2, type: 3}
|
||||
titleId: title
|
||||
contentId: content
|
8
Assets/SOAP/UI/Modal.asset.meta
Normal file
8
Assets/SOAP/UI/Modal.asset.meta
Normal file
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1a47b12328bfde496ab2f3847d762a79
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
17
Assets/SOAP/UI/New Modal Element.asset
Normal file
17
Assets/SOAP/UI/New Modal Element.asset
Normal file
|
@ -0,0 +1,17 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0b01085379e9a10319622dd3dd23f4bd, type: 3}
|
||||
m_Name: New Modal Element
|
||||
m_EditorClassIdentifier:
|
||||
visualTreeAsset: {fileID: 0}
|
||||
titleId: title
|
||||
contentId: content
|
8
Assets/SOAP/UI/New Modal Element.asset.meta
Normal file
8
Assets/SOAP/UI/New Modal Element.asset.meta
Normal file
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 71a6f29fae4392a4f97870a52b6adf1e
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
14
Assets/SOAP/UI/Orchestrator.asset
Normal file
14
Assets/SOAP/UI/Orchestrator.asset
Normal file
|
@ -0,0 +1,14 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 6a0779b28f619757e9a8468b485857f3, type: 3}
|
||||
m_Name: Orchestrator
|
||||
m_EditorClassIdentifier:
|
8
Assets/SOAP/UI/Orchestrator.asset.meta
Normal file
8
Assets/SOAP/UI/Orchestrator.asset.meta
Normal file
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 994ab04db2c2004abb8272830cb16b26
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -751,7 +751,7 @@ Transform:
|
|||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &832575517
|
||||
--- !u!1 &881234002
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
|
@ -759,8 +759,8 @@ GameObject:
|
|||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 832575519}
|
||||
- component: {fileID: 832575518}
|
||||
- component: {fileID: 881234004}
|
||||
- component: {fileID: 881234003}
|
||||
m_Layer: 0
|
||||
m_Name: Global Volume
|
||||
m_TagString: Untagged
|
||||
|
@ -768,13 +768,13 @@ GameObject:
|
|||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &832575518
|
||||
--- !u!114 &881234003
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 832575517}
|
||||
m_GameObject: {fileID: 881234002}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3}
|
||||
|
@ -784,14 +784,14 @@ MonoBehaviour:
|
|||
priority: 0
|
||||
blendDistance: 0
|
||||
weight: 1
|
||||
sharedProfile: {fileID: 11400000, guid: 10fc4df2da32a41aaa32d77bc913491c, type: 2}
|
||||
--- !u!4 &832575519
|
||||
sharedProfile: {fileID: 11400000, guid: ab09877e2e707104187f6f83e2f62510, type: 2}
|
||||
--- !u!4 &881234004
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 832575517}
|
||||
m_GameObject: {fileID: 881234002}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
|
@ -1066,6 +1066,70 @@ MeshFilter:
|
|||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1190731365}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!1 &1281046467
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1281046468}
|
||||
- component: {fileID: 1281046469}
|
||||
- component: {fileID: 1281046470}
|
||||
m_Layer: 0
|
||||
m_Name: World Space UI
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1281046468
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1281046467}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 1520555326}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1281046469
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1281046467}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 39f2893c7acdb9928b0e8e9c693228ce, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
camera: {fileID: 330585546}
|
||||
registerChildren: 1
|
||||
--- !u!114 &1281046470
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1281046467}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 9a35ed32b167081b98babff069b52667, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
orchestrator: {fileID: 11400000, guid: 994ab04db2c2004abb8272830cb16b26, type: 2}
|
||||
root: {fileID: 1281046468}
|
||||
panelSettings: {fileID: 11400000, guid: 2bc58aab5867867e5b0feeae2df42fd0, type: 2}
|
||||
prefab: {fileID: 0}
|
||||
--- !u!1 &1363717994
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -1082,6 +1146,8 @@ GameObject:
|
|||
- component: {fileID: 1363718002}
|
||||
- component: {fileID: 1363718005}
|
||||
- component: {fileID: 1363718004}
|
||||
- component: {fileID: 1363718007}
|
||||
- component: {fileID: 1363718006}
|
||||
m_Layer: 0
|
||||
m_Name: Player
|
||||
m_TagString: Untagged
|
||||
|
@ -1427,6 +1493,39 @@ MonoBehaviour:
|
|||
motor: {fileID: 1363718002}
|
||||
sprint: {fileID: 11400000, guid: 07250b1c5f2bd07c793772099684f602, type: 2}
|
||||
adjustedMaxSpeed: 3.5
|
||||
--- !u!114 &1363718006
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1363717994}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: b57786c673a3e53d0aa6fad8d47eeed5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
inventory: {fileID: 11400000, guid: cd3f9ac2afa71f8b6acb3fb0cacfe441, type: 2}
|
||||
--- !u!114 &1363718007
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1363717994}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 1f31bf0aa63f4af71b570fff56455548, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
root: {fileID: 1363717994}
|
||||
collider: {fileID: 1915136996}
|
||||
interactSource: {fileID: 11400000, guid: 8ad6b00b0192bc3d4b39b6f91de2447f, type: 2}
|
||||
updateFrequency: 7
|
||||
minimumChangeDelta: 0.1
|
||||
outlineColor: {r: 1, g: 0.2705882, b: 0, a: 1}
|
||||
outlineWidth: 3
|
||||
outlineMode: 0
|
||||
--- !u!1 &1504087844
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -1535,6 +1634,117 @@ Transform:
|
|||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &1520555325
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1520555326}
|
||||
- component: {fileID: 1520555327}
|
||||
- component: {fileID: 1520555328}
|
||||
- component: {fileID: 1520555329}
|
||||
m_Layer: 5
|
||||
m_Name: UIDocument
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1520555326
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1520555325}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -2, y: 1, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1281046468}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1520555327
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1520555325}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 19102, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_PanelSettings: {fileID: 11400000, guid: 2bc58aab5867867e5b0feeae2df42fd0, type: 2}
|
||||
m_ParentUI: {fileID: 0}
|
||||
sourceAsset: {fileID: 9197481963319205126, guid: bc70bdaaf37609283aac14435c5441a2, type: 3}
|
||||
m_SortingOrder: 0
|
||||
m_WorldSpaceSizeMode: 1
|
||||
m_WorldSpaceWidth: 1920
|
||||
m_WorldSpaceHeight: 1080
|
||||
--- !u!1931382933 &1520555328
|
||||
UIRenderer:
|
||||
m_ObjectHideFlags: 2
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1520555325}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 0
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 0
|
||||
m_RayTracingMode: 0
|
||||
m_RayTraceProcedural: 0
|
||||
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 0}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
--- !u!114 &1520555329
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1520555325}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d11d59e048d068de9a36d02d67cfd1ad, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
doc: {fileID: 1520555327}
|
||||
value: test
|
||||
--- !u!1001 &1574173917
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -1669,9 +1879,8 @@ GameObject:
|
|||
m_Component:
|
||||
- component: {fileID: 1915136995}
|
||||
- component: {fileID: 1915136996}
|
||||
- component: {fileID: 1915136997}
|
||||
m_Layer: 0
|
||||
m_Name: Interactor
|
||||
m_Name: Interaction Collider
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
|
@ -1711,28 +1920,10 @@ CapsuleCollider:
|
|||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Radius: 0.55
|
||||
m_Height: 2
|
||||
m_Radius: 1.25
|
||||
m_Height: 2.5
|
||||
m_Direction: 1
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1915136997
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1915136994}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 1f31bf0aa63f4af71b570fff56455548, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
collider: {fileID: 1915136996}
|
||||
interactSource: {fileID: 11400000, guid: 8ad6b00b0192bc3d4b39b6f91de2447f, type: 2}
|
||||
updateFrequency: 7
|
||||
minimumChangeDelta: 0.1
|
||||
outlineColor: {r: 1, g: 0.2705882, b: 0, a: 1}
|
||||
outlineWidth: 3
|
||||
--- !u!1 &1918868759
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -1842,6 +2033,63 @@ Transform:
|
|||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &7547016027398857338
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 2368094401510200604, guid: 51202e3c62c3d3e1c9bb0ff9c09a608f, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: -2
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2368094401510200604, guid: 51202e3c62c3d3e1c9bb0ff9c09a608f, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0.005
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2368094401510200604, guid: 51202e3c62c3d3e1c9bb0ff9c09a608f, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2368094401510200604, guid: 51202e3c62c3d3e1c9bb0ff9c09a608f, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 0.92387956
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2368094401510200604, guid: 51202e3c62c3d3e1c9bb0ff9c09a608f, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2368094401510200604, guid: 51202e3c62c3d3e1c9bb0ff9c09a608f, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0.38268343
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2368094401510200604, guid: 51202e3c62c3d3e1c9bb0ff9c09a608f, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2368094401510200604, guid: 51202e3c62c3d3e1c9bb0ff9c09a608f, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2368094401510200604, guid: 51202e3c62c3d3e1c9bb0ff9c09a608f, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 45
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2368094401510200604, guid: 51202e3c62c3d3e1c9bb0ff9c09a608f, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2892703864492016621, guid: 51202e3c62c3d3e1c9bb0ff9c09a608f, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Key
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 51202e3c62c3d3e1c9bb0ff9c09a608f, type: 3}
|
||||
--- !u!1660057539 &9223372036854775807
|
||||
SceneRoots:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -1849,7 +2097,7 @@ SceneRoots:
|
|||
- {fileID: 330585546}
|
||||
- {fileID: 230761406}
|
||||
- {fileID: 410087041}
|
||||
- {fileID: 832575519}
|
||||
- {fileID: 881234004}
|
||||
- {fileID: 1363717997}
|
||||
- {fileID: 1918868763}
|
||||
- {fileID: 983805441}
|
||||
|
@ -1857,3 +2105,5 @@ SceneRoots:
|
|||
- {fileID: 518677617}
|
||||
- {fileID: 584591836}
|
||||
- {fileID: 1632951288}
|
||||
- {fileID: 7547016027398857338}
|
||||
- {fileID: 1281046468}
|
||||
|
|
8
Assets/Scenes/SampleScene_Profiles.meta
Normal file
8
Assets/Scenes/SampleScene_Profiles.meta
Normal file
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 671b6caed5b67ba9abeaf60b897cebfb
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
57
Assets/Scenes/SampleScene_Profiles/Main Camera Profile.asset
Normal file
57
Assets/Scenes/SampleScene_Profiles/Main Camera Profile.asset
Normal file
|
@ -0,0 +1,57 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 8e6292b2c06870d4495f009f912b9600, type: 3}
|
||||
m_Name: Main Camera Profile
|
||||
m_EditorClassIdentifier:
|
||||
settings:
|
||||
- {fileID: 2740214698417265193}
|
||||
--- !u!114 &2740214698417265193
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 54ccac7a7b193e24b838948044c40846, type: 3}
|
||||
m_Name: RetroPostProcessEffect
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
enabled:
|
||||
overrideState: 1
|
||||
value: 1
|
||||
UsesFixedResolution:
|
||||
overrideState: 0
|
||||
value: 0
|
||||
PixelScale:
|
||||
overrideState: 1
|
||||
value: 4
|
||||
FixedVerticalResolution:
|
||||
overrideState: 1
|
||||
value: 480
|
||||
ColorDepth:
|
||||
overrideState: 1
|
||||
value: 0.15
|
||||
DitherPattern:
|
||||
overrideState: 1
|
||||
value: {fileID: 0}
|
||||
defaultState: 0
|
||||
DitherPatternScale:
|
||||
overrideState: 1
|
||||
value: 1
|
||||
DitherThreshold:
|
||||
overrideState: 1
|
||||
value: 0.75
|
||||
DitherIntensity:
|
||||
overrideState: 1
|
||||
value: 0.15
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 8b8055d59bd35cbc2bb1da055bbe21b2
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
36
Assets/Scripts/Interaction/AddItem.cs
Normal file
36
Assets/Scripts/Interaction/AddItem.cs
Normal file
|
@ -0,0 +1,36 @@
|
|||
using System;
|
||||
using KitsuneCafe.ItemSystem;
|
||||
using UnityEngine;
|
||||
|
||||
namespace KitsuneCafe.Interaction
|
||||
{
|
||||
public class AddItem : MonoBehaviour
|
||||
{
|
||||
[SerializeField]
|
||||
private Item item;
|
||||
|
||||
[SerializeField]
|
||||
private int count = 1;
|
||||
|
||||
public void ToInventory<T>(IInventory<T> inventory) where T : IEquatable<Item>, ICountable
|
||||
{
|
||||
Debug.Log(inventory.Add(item, count));
|
||||
}
|
||||
|
||||
public bool ToGameObject(GameObject gameObject)
|
||||
{
|
||||
if (gameObject != null && gameObject.TryGetComponent<InventoryInstance>(out var inventory))
|
||||
{
|
||||
ToInventory(inventory);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public void ToInteractor(IInteractor interactor)
|
||||
{
|
||||
ToGameObject(interactor.Root);
|
||||
}
|
||||
}
|
||||
}
|
2
Assets/Scripts/Interaction/AddItem.cs.meta
Normal file
2
Assets/Scripts/Interaction/AddItem.cs.meta
Normal file
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 67cbbbb78aff08ac19b6fa07b7f41307
|
|
@ -1,6 +1,6 @@
|
|||
using System;
|
||||
using KitsuneCafe.System;
|
||||
using Unity.Entities.UI;
|
||||
using UnityEngine;
|
||||
|
||||
namespace KitsuneCafe.Interaction
|
||||
{
|
||||
|
@ -65,7 +65,10 @@ namespace KitsuneCafe.Interaction
|
|||
}
|
||||
}
|
||||
|
||||
public interface IInteractor : IGameObject { }
|
||||
public interface IInteractor : IGameObject
|
||||
{
|
||||
GameObject Root { get; }
|
||||
}
|
||||
|
||||
public interface IInteractable : IGameObject
|
||||
{
|
||||
|
|
|
@ -13,6 +13,10 @@ namespace KitsuneCafe.Player
|
|||
{
|
||||
public class Interactor : MonoBehaviour, IInteractor
|
||||
{
|
||||
[SerializeField]
|
||||
private GameObject root;
|
||||
public GameObject Root => root;
|
||||
|
||||
[SerializeField]
|
||||
private new Collider collider;
|
||||
|
||||
|
@ -33,13 +37,27 @@ namespace KitsuneCafe.Player
|
|||
[SerializeField]
|
||||
private int outlineWidth = 3;
|
||||
|
||||
[SerializeField]
|
||||
private Outline.Mode outlineMode = Outline.Mode.OutlineAll;
|
||||
|
||||
private readonly ObservableHashSet<IInteractable> interactables = new ObservableHashSet<IInteractable>();
|
||||
public ReactiveProperty<IInteractable> CurrentHighlightedInteractable { get; private set; }
|
||||
|
||||
private Vector3 lastPosition;
|
||||
|
||||
public new T GetComponent<T>()
|
||||
{
|
||||
return Root.GetComponent<T>();
|
||||
}
|
||||
|
||||
public new bool TryGetComponent<T>(out T component)
|
||||
{
|
||||
return root.TryGetComponent<T>(out component);
|
||||
}
|
||||
|
||||
void Reset()
|
||||
{
|
||||
root = gameObject;
|
||||
collider = GetComponent<Collider>();
|
||||
}
|
||||
|
||||
|
@ -151,14 +169,13 @@ namespace KitsuneCafe.Player
|
|||
{
|
||||
if (interactable == null) { return; }
|
||||
|
||||
Outline outline;
|
||||
if (!interactable.TryGetComponent(out outline))
|
||||
if (!interactable.TryGetComponent(out Outline outline))
|
||||
{
|
||||
outline = interactable.gameObject.AddComponent<Outline>();
|
||||
|
||||
outline.OutlineColor = outlineColor;
|
||||
outline.OutlineWidth = outlineWidth;
|
||||
outline.OutlineMode = Outline.Mode.OutlineVisible;
|
||||
outline.OutlineMode = outlineMode;
|
||||
}
|
||||
|
||||
outline.enabled = true;
|
||||
|
|
|
@ -83,7 +83,7 @@ namespace KitsuneCafe.ItemSystem
|
|||
bool Has(Item item);
|
||||
}
|
||||
|
||||
[CreateAssetMenu(menuName = KitsuneCafeMenu.ItemMenu + "Inventory")]
|
||||
[CreateAssetMenu(menuName = KitsuneCafeMenu.Item + "Inventory")]
|
||||
public class Inventory : ScriptableObject, IInventory<InventoryItem>, IEnumerable<InventoryItem>, IObservableCollection<InventoryItem>, ISerializationCallbackReceiver
|
||||
{
|
||||
[SerializeField]
|
||||
|
@ -179,11 +179,6 @@ namespace KitsuneCafe.ItemSystem
|
|||
|
||||
private IResult<int, InventoryError> AddToExisting(Item item, int count)
|
||||
{
|
||||
if (!item.IsStackable)
|
||||
{
|
||||
return Result.Err<int, InventoryError>(InventoryError.ItemNotStackable);
|
||||
}
|
||||
|
||||
if (count <= 0)
|
||||
{
|
||||
return Result.Err<int, InventoryError>(InventoryError.InvalidQuantity);
|
||||
|
@ -195,6 +190,11 @@ namespace KitsuneCafe.ItemSystem
|
|||
|
||||
if (existingItem.Equals(item))
|
||||
{
|
||||
if (!item.IsStackable)
|
||||
{
|
||||
return Result.Err<int, InventoryError>(InventoryError.ItemNotStackable);
|
||||
}
|
||||
|
||||
var consumedAmount = existingItem.IncreaseCount(count, out var updatedItem);
|
||||
runtimeItems[i] = updatedItem.Value;
|
||||
|
||||
|
@ -253,7 +253,7 @@ namespace KitsuneCafe.ItemSystem
|
|||
{
|
||||
if (existingItem.Count > count)
|
||||
{
|
||||
var consumedAmount = existingItem.ReduceCount(count, out var updatedItem);
|
||||
existingItem.ReduceCount(count, out var updatedItem);
|
||||
runtimeItems[i] = updatedItem.Value;
|
||||
return Result.Ok<Unit, InventoryError>(Unit.Default);
|
||||
}
|
||||
|
|
37
Assets/Scripts/Item/InventoryInstance.cs
Normal file
37
Assets/Scripts/Item/InventoryInstance.cs
Normal file
|
@ -0,0 +1,37 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using KitsuneCafe.System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace KitsuneCafe.ItemSystem
|
||||
{
|
||||
public class InventoryInstance : MonoBehaviour, IInventory<InventoryItem>
|
||||
{
|
||||
[SerializeField]
|
||||
private Inventory inventory;
|
||||
|
||||
public int Capacity => inventory.Capacity;
|
||||
|
||||
public int Count => inventory.Count;
|
||||
|
||||
public IResult<Unit, InventoryError> Add(Item item, int count = 1)
|
||||
{
|
||||
return inventory.Add(item, count);
|
||||
}
|
||||
|
||||
public IEnumerable<InventoryItem> Find(Func<InventoryItem, bool> predicate)
|
||||
{
|
||||
return inventory.Find(predicate);
|
||||
}
|
||||
|
||||
public bool Has(Item item)
|
||||
{
|
||||
return inventory.Has(item);
|
||||
}
|
||||
|
||||
public IResult<Unit, InventoryError> Remove(Item item, int count = 1)
|
||||
{
|
||||
return inventory.Remove(item, count);
|
||||
}
|
||||
}
|
||||
}
|
2
Assets/Scripts/Item/InventoryInstance.cs.meta
Normal file
2
Assets/Scripts/Item/InventoryInstance.cs.meta
Normal file
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b57786c673a3e53d0aa6fad8d47eeed5
|
|
@ -14,7 +14,7 @@ namespace KitsuneCafe.ItemSystem
|
|||
Tool
|
||||
}
|
||||
|
||||
[CreateAssetMenu(menuName = KitsuneCafeMenu.ItemMenu + "Item")]
|
||||
[CreateAssetMenu(menuName = KitsuneCafeMenu.Item + "Item")]
|
||||
public class Item : ScriptableObject
|
||||
{
|
||||
[SerializeField]
|
||||
|
|
|
@ -3,7 +3,7 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.ItemSystem
|
||||
{
|
||||
[CreateAssetMenu(fileName = "NewRecipe", menuName = KitsuneCafeMenu.ItemMenu + "Recipe")]
|
||||
[CreateAssetMenu(fileName = "NewRecipe", menuName = KitsuneCafeMenu.Item + "Recipe")]
|
||||
public class Recipe : ScriptableObject
|
||||
{
|
||||
[SerializeField]
|
||||
|
|
52
Assets/Scripts/Rendering/BillboardManager.cs
Normal file
52
Assets/Scripts/Rendering/BillboardManager.cs
Normal file
|
@ -0,0 +1,52 @@
|
|||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace KitsuneCafe.Rendering
|
||||
{
|
||||
public class BillboardManager : MonoBehaviour
|
||||
{
|
||||
[SerializeField]
|
||||
private new Transform camera;
|
||||
|
||||
[SerializeField]
|
||||
private bool registerChildren = false;
|
||||
|
||||
private readonly List<Transform> transforms = new();
|
||||
|
||||
private void Reset()
|
||||
{
|
||||
camera = Camera.main.transform;
|
||||
}
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
if (camera == null)
|
||||
{
|
||||
camera = Camera.main.transform;
|
||||
}
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
var count = transform.childCount;
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
Register(transform.GetChild(i));
|
||||
}
|
||||
}
|
||||
|
||||
private void Register(Transform transform)
|
||||
{
|
||||
transforms.Add(transform);
|
||||
}
|
||||
|
||||
private void LateUpdate()
|
||||
{
|
||||
var count = transforms.Count;
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
transforms[i].forward = camera.forward;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
2
Assets/Scripts/Rendering/BillboardManager.cs.meta
Normal file
2
Assets/Scripts/Rendering/BillboardManager.cs.meta
Normal file
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 39f2893c7acdb9928b0e8e9c693228ce
|
|
@ -3,7 +3,7 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "BoolConstant", menuName = KitsuneCafeMenu.SoapConstantMenu + "Bool")]
|
||||
[CreateAssetMenu(fileName = "BoolConstant", menuName = KitsuneCafeMenu.SoapConstant + "Bool")]
|
||||
public class BoolConstant : ConstantValue<string>
|
||||
{
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "FloatConstant", menuName = KitsuneCafeMenu.SoapConstantMenu + "Float")]
|
||||
[CreateAssetMenu(fileName = "FloatConstant", menuName = KitsuneCafeMenu.SoapConstant + "Float")]
|
||||
public class FloatConstant : ConstantValue<string>
|
||||
{
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "IntConstant", menuName = KitsuneCafeMenu.SoapConstantMenu + "Int")]
|
||||
[CreateAssetMenu(fileName = "IntConstant", menuName = KitsuneCafeMenu.SoapConstant + "Int")]
|
||||
public class IntConstant : ConstantValue<string>
|
||||
{
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "StringConstant", menuName = KitsuneCafeMenu.SoapConstantMenu + "String")]
|
||||
[CreateAssetMenu(fileName = "StringConstant", menuName = KitsuneCafeMenu.SoapConstant + "String")]
|
||||
public class StringConstant : ConstantValue<string>
|
||||
{
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "Vector2Constant", menuName = KitsuneCafeMenu.SoapConstantMenu + "Vector2")]
|
||||
[CreateAssetMenu(fileName = "Vector2Constant", menuName = KitsuneCafeMenu.SoapConstant + "Vector2")]
|
||||
public class Vector2Constant : ConstantValue<string>
|
||||
{
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "Vector3Constant", menuName = KitsuneCafeMenu.SoapConstantMenu + "Vector3")]
|
||||
[CreateAssetMenu(fileName = "Vector3Constant", menuName = KitsuneCafeMenu.SoapConstant + "Vector3")]
|
||||
public class Vector3Constant : ConstantValue<string>
|
||||
{
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "BoolEvent", menuName = KitsuneCafeMenu.SoapEventMenu + "Bool")]
|
||||
[CreateAssetMenu(fileName = "BoolEvent", menuName = KitsuneCafeMenu.SoapEvent + "Bool")]
|
||||
public class BoolEvent : ReactiveEvent<bool> { }
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "FloatEvent", menuName = KitsuneCafeMenu.SoapEventMenu + "Float")]
|
||||
[CreateAssetMenu(fileName = "FloatEvent", menuName = KitsuneCafeMenu.SoapEvent + "Float")]
|
||||
public class FloatEvent : ReactiveEvent<float> { }
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "IntEvent", menuName = KitsuneCafeMenu.SoapEventMenu + "Int")]
|
||||
[CreateAssetMenu(fileName = "IntEvent", menuName = KitsuneCafeMenu.SoapEvent + "Int")]
|
||||
public class IntEvent : ReactiveEvent<int> { }
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "StringEvent", menuName = KitsuneCafeMenu.SoapEventMenu + "String")]
|
||||
[CreateAssetMenu(fileName = "StringEvent", menuName = KitsuneCafeMenu.SoapEvent + "String")]
|
||||
public class StringEvent : ReactiveEvent<string> { }
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "UnitEvent", menuName = KitsuneCafeMenu.SoapEventMenu + "Unit")]
|
||||
[CreateAssetMenu(fileName = "UnitEvent", menuName = KitsuneCafeMenu.SoapEvent + "Unit")]
|
||||
public class UnitEvent : ReactiveEvent<Unit> { }
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "Vector2Event", menuName = KitsuneCafeMenu.SoapEventMenu + "Vector2")]
|
||||
[CreateAssetMenu(fileName = "Vector2Event", menuName = KitsuneCafeMenu.SoapEvent + "Vector2")]
|
||||
public class Vector2Event : ReactiveEvent<Vector2> { }
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "Vector3Event", menuName = KitsuneCafeMenu.SoapEventMenu + "Vector3")]
|
||||
[CreateAssetMenu(fileName = "Vector3Event", menuName = KitsuneCafeMenu.SoapEvent + "Vector3")]
|
||||
public class Vector3Event : ReactiveEvent<Vector3> { }
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "BoolInputAction", menuName = KitsuneCafeMenu.SoapInputMenu + "Bool")]
|
||||
[CreateAssetMenu(fileName = "BoolInputAction", menuName = KitsuneCafeMenu.SoapInput + "Bool")]
|
||||
public class BoolInputAction : ReactiveInputAction<bool> { }
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "FloatInputAction", menuName = KitsuneCafeMenu.SoapInputMenu + "Float")]
|
||||
[CreateAssetMenu(fileName = "FloatInputAction", menuName = KitsuneCafeMenu.SoapInput + "Float")]
|
||||
public class FloatInputAction : ReactiveInputAction<float> { }
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "IntInputAction", menuName = KitsuneCafeMenu.SoapInputMenu + "Int")]
|
||||
[CreateAssetMenu(fileName = "IntInputAction", menuName = KitsuneCafeMenu.SoapInput + "Int")]
|
||||
public class IntInputAction : ReactiveInputAction<int> { }
|
||||
}
|
||||
|
|
|
@ -3,6 +3,6 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "UnitInputAction", menuName = KitsuneCafeMenu.SoapInputMenu + "Unit")]
|
||||
[CreateAssetMenu(fileName = "UnitInputAction", menuName = KitsuneCafeMenu.SoapInput + "Unit")]
|
||||
public class UnitInputAction : ReactiveInputAction<Unit> { }
|
||||
}
|
||||
|
|
|
@ -4,6 +4,6 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "FloatInputAction", menuName = KitsuneCafeMenu.SoapInputMenu + "Vector2")]
|
||||
[CreateAssetMenu(fileName = "FloatInputAction", menuName = KitsuneCafeMenu.SoapInput + "Vector2")]
|
||||
public class Vector2InputAction : ReactiveInputAction<UnityEngine.Vector2> { }
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "BoolValue", menuName = KitsuneCafeMenu.SoapValueMenu + "Bool")]
|
||||
[CreateAssetMenu(fileName = "BoolValue", menuName = KitsuneCafeMenu.SoapValue + "Bool")]
|
||||
public class BoolValue : ReactiveValue<bool>
|
||||
{
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "FloatValue", menuName = KitsuneCafeMenu.SoapValueMenu + "Float")]
|
||||
[CreateAssetMenu(fileName = "FloatValue", menuName = KitsuneCafeMenu.SoapValue + "Float")]
|
||||
public class FloatValue : ReactiveValue<float>
|
||||
{
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "IntValue", menuName = KitsuneCafeMenu.SoapValueMenu + "Int")]
|
||||
[CreateAssetMenu(fileName = "IntValue", menuName = KitsuneCafeMenu.SoapValue + "Int")]
|
||||
public class IntValue : ReactiveValue<int>
|
||||
{
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "ItemValue", menuName = KitsuneCafeMenu.SoapValueMenu + "Item")]
|
||||
[CreateAssetMenu(fileName = "ItemValue", menuName = KitsuneCafeMenu.SoapValue + "Item")]
|
||||
public class ItemValue : ReactiveValue<ItemValue>
|
||||
{
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "StringValue", menuName = KitsuneCafeMenu.SoapValueMenu + "String")]
|
||||
[CreateAssetMenu(fileName = "StringValue", menuName = KitsuneCafeMenu.SoapValue + "String")]
|
||||
public class StringValue : ReactiveValue<string>
|
||||
{
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "Vector2Value", menuName = KitsuneCafeMenu.SoapValueMenu + "Vector2")]
|
||||
[CreateAssetMenu(fileName = "Vector2Value", menuName = KitsuneCafeMenu.SoapValue + "Vector2")]
|
||||
public class Vector2Value : ReactiveValue<Vector2>
|
||||
{
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ using UnityEngine;
|
|||
|
||||
namespace KitsuneCafe.SOAP
|
||||
{
|
||||
[CreateAssetMenu(fileName = "Vector3Value", menuName = KitsuneCafeMenu.SoapValueMenu + "Vector3")]
|
||||
[CreateAssetMenu(fileName = "Vector3Value", menuName = KitsuneCafeMenu.SoapValue + "Vector3")]
|
||||
public class Vector3Value : ReactiveValue<Vector3>
|
||||
{
|
||||
|
||||
|
|
8
Assets/Scripts/Scripting.meta
Normal file
8
Assets/Scripts/Scripting.meta
Normal file
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 3f745ff4441ac838eb0807da4d23ec40
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
41
Assets/Scripts/Scripting/BindingPath.cs
Normal file
41
Assets/Scripts/Scripting/BindingPath.cs
Normal file
|
@ -0,0 +1,41 @@
|
|||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace KitsuneCafe.Scripting
|
||||
{
|
||||
[Serializable]
|
||||
public class BindingPath
|
||||
{
|
||||
[SerializeField]
|
||||
private string module;
|
||||
public string Module => module;
|
||||
|
||||
[SerializeField]
|
||||
private string entity;
|
||||
public string Entity => entity;
|
||||
|
||||
public static implicit operator (string, string)(BindingPath path) => (path.Module, path.Entity);
|
||||
public static implicit operator BindingPath((string, string) path) => new BindingPath(path.Item1, path.Item2);
|
||||
|
||||
public BindingPath(string module, string entity)
|
||||
{
|
||||
this.module = module;
|
||||
this.entity = entity;
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
return base.Equals(obj);
|
||||
}
|
||||
|
||||
public override int GetHashCode()
|
||||
{
|
||||
return HashCode.Combine(module, entity);
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return $"{module}:{entity}";
|
||||
}
|
||||
}
|
||||
}
|
2
Assets/Scripts/Scripting/BindingPath.cs.meta
Normal file
2
Assets/Scripts/Scripting/BindingPath.cs.meta
Normal file
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 38efbecfc805be3c786e4103c80659ae
|
8
Assets/Scripts/Scripting/Editor.meta
Normal file
8
Assets/Scripts/Scripting/Editor.meta
Normal file
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 90b993d7c2f96489eba5b4c5fd9e9d21
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
29
Assets/Scripts/Scripting/Editor/WasmImporter.cs
Normal file
29
Assets/Scripts/Scripting/Editor/WasmImporter.cs
Normal file
|
@ -0,0 +1,29 @@
|
|||
using UnityEngine;
|
||||
using UnityEditor.AssetImporters;
|
||||
using System.IO;
|
||||
using System.Security.Cryptography;
|
||||
|
||||
namespace KitsuneCafe.Scripting
|
||||
{
|
||||
[ScriptedImporter(1, "wasm")]
|
||||
public class WasmImporter : ScriptedImporter
|
||||
{
|
||||
public override void OnImportAsset(AssetImportContext ctx)
|
||||
{
|
||||
byte[] data = File.ReadAllBytes(ctx.assetPath);
|
||||
|
||||
WasmAsset wasmAsset = ScriptableObject.CreateInstance<WasmAsset>();
|
||||
wasmAsset.data = data;
|
||||
|
||||
var hash = Hash(data);
|
||||
ctx.AddObjectToAsset(hash.ToString(), wasmAsset);
|
||||
ctx.SetMainObject(wasmAsset);
|
||||
}
|
||||
|
||||
private byte[] Hash(byte[] buffer)
|
||||
{
|
||||
using var md5 = MD5.Create();
|
||||
return md5.ComputeHash(buffer);
|
||||
}
|
||||
}
|
||||
}
|
2
Assets/Scripts/Scripting/Editor/WasmImporter.cs.meta
Normal file
2
Assets/Scripts/Scripting/Editor/WasmImporter.cs.meta
Normal file
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e59d983acfd8a9f0b9ab00905bd3a44d
|
39
Assets/Scripts/Scripting/Environment.cs
Normal file
39
Assets/Scripts/Scripting/Environment.cs
Normal file
|
@ -0,0 +1,39 @@
|
|||
using System.Collections.Generic;
|
||||
using KitsuneCafe.System;
|
||||
using UnityEngine;
|
||||
using Wacs.Core.Runtime;
|
||||
|
||||
namespace KitsuneCafe.Scripting
|
||||
{
|
||||
public interface IEnvironment
|
||||
{
|
||||
void Bind(WasmRuntime runtime, RuntimeState state);
|
||||
}
|
||||
|
||||
public class RuntimeState : Dictionary<BindingPath, IFunctionState> { }
|
||||
|
||||
[CreateAssetMenu(menuName = KitsuneCafeMenu.Module + "Environment")]
|
||||
public class Environment : ScriptableObject, IEnvironment
|
||||
{
|
||||
[SerializeField]
|
||||
private List<FunctionBinding> functions = new();
|
||||
|
||||
public void Bind(WasmRuntime runtime, RuntimeState state)
|
||||
{
|
||||
BindFunctions(runtime, state);
|
||||
}
|
||||
|
||||
private void BindFunctions(WasmRuntime runtime, RuntimeState state)
|
||||
{
|
||||
foreach (var fn in functions)
|
||||
{
|
||||
var result = fn.Bind(runtime);
|
||||
|
||||
if (result.IsSome)
|
||||
{
|
||||
state.Add(fn.BindingPath, result.Unwrap());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
2
Assets/Scripts/Scripting/Environment.cs.meta
Normal file
2
Assets/Scripts/Scripting/Environment.cs.meta
Normal file
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 7fb754f9e0773ecf5b1fe29c163e1ec2
|
30
Assets/Scripts/Scripting/GlobalValueBinding.cs
Normal file
30
Assets/Scripts/Scripting/GlobalValueBinding.cs
Normal file
|
@ -0,0 +1,30 @@
|
|||
using KitsuneCafe.System;
|
||||
using UnityEngine;
|
||||
using Wacs.Core.Runtime;
|
||||
using Wacs.Core.Types;
|
||||
using Wacs.Core.Types.Defs;
|
||||
|
||||
namespace KitsuneCafe.Scripting
|
||||
{
|
||||
[CreateAssetMenu(menuName = KitsuneCafeMenu.ModuleBinding + "Global Value")]
|
||||
public class GlobalValueBinding : ScriptableObject, IHostBinding
|
||||
{
|
||||
[SerializeField]
|
||||
private BindingPath bindingPath;
|
||||
public BindingPath BindingPath => bindingPath;
|
||||
|
||||
[SerializeField]
|
||||
private ValType type;
|
||||
public ValType Type => type;
|
||||
|
||||
[SerializeField]
|
||||
private Mutability mutability = Mutability.Immutable;
|
||||
public Mutability Mutability => mutability;
|
||||
|
||||
public void Bind(WasmRuntime runtime)
|
||||
{
|
||||
var globalType = new GlobalType(type, mutability);
|
||||
//runtime.BindHostGlobal((module, entity), globalType, null);
|
||||
}
|
||||
}
|
||||
}
|
2
Assets/Scripts/Scripting/GlobalValueBinding.cs.meta
Normal file
2
Assets/Scripts/Scripting/GlobalValueBinding.cs.meta
Normal file
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5c303c023438bace9a083b7a9d8d799d
|
9
Assets/Scripts/Scripting/IHostBinding.cs
Normal file
9
Assets/Scripts/Scripting/IHostBinding.cs
Normal file
|
@ -0,0 +1,9 @@
|
|||
using Wacs.Core.Runtime;
|
||||
|
||||
namespace KitsuneCafe.Scripting
|
||||
{
|
||||
public interface IHostBinding
|
||||
{
|
||||
BindingPath BindingPath { get; }
|
||||
}
|
||||
}
|
2
Assets/Scripts/Scripting/IHostBinding.cs.meta
Normal file
2
Assets/Scripts/Scripting/IHostBinding.cs.meta
Normal file
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 2ca6d3de3e9498a5da26fefd79d7ae46
|
46
Assets/Scripts/Scripting/Module.cs
Normal file
46
Assets/Scripts/Scripting/Module.cs
Normal file
|
@ -0,0 +1,46 @@
|
|||
using KitsuneCafe.System;
|
||||
using UnityEngine;
|
||||
using Wacs.Core.Runtime;
|
||||
using Wacs.Core.Runtime.Types;
|
||||
|
||||
namespace KitsuneCafe.Scripting
|
||||
{
|
||||
public interface IModule
|
||||
{
|
||||
string Name { get; }
|
||||
ModuleInstance Instantiate(WasmRuntime runtime);
|
||||
}
|
||||
|
||||
[CreateAssetMenu(menuName = KitsuneCafeMenu.Module + "Module")]
|
||||
public class Module : ScriptableObject, IModule
|
||||
{
|
||||
[SerializeField]
|
||||
private string moduleName;
|
||||
public string Name => moduleName;
|
||||
|
||||
[SerializeField]
|
||||
private WasmAsset wasm;
|
||||
|
||||
[SerializeField]
|
||||
private bool SkipModuleValidation = false;
|
||||
|
||||
[SerializeField]
|
||||
private bool SkipStartFunction = false;
|
||||
|
||||
public ModuleInstance Instantiate(WasmRuntime runtime)
|
||||
{
|
||||
var module = wasm.CreateModule();
|
||||
var instance = runtime.InstantiateModule(module, GetRuntimeOptions());
|
||||
return instance;
|
||||
}
|
||||
|
||||
private RuntimeOptions GetRuntimeOptions()
|
||||
{
|
||||
return new RuntimeOptions
|
||||
{
|
||||
SkipModuleValidation = SkipModuleValidation,
|
||||
SkipStartFunction = SkipStartFunction
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
2
Assets/Scripts/Scripting/Module.cs.meta
Normal file
2
Assets/Scripts/Scripting/Module.cs.meta
Normal file
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c278fb50cca0b84469e0af15b5b75ce9
|
144
Assets/Scripts/Scripting/Runtime.cs
Normal file
144
Assets/Scripts/Scripting/Runtime.cs
Normal file
|
@ -0,0 +1,144 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using KitsuneCafe.System;
|
||||
using UnityEngine;
|
||||
using Wacs.Core.Runtime;
|
||||
using Wacs.Core.Runtime.Types;
|
||||
|
||||
namespace KitsuneCafe.Scripting
|
||||
{
|
||||
public class RuntimeInstance
|
||||
{
|
||||
public const string DefaultStartFunction = "main";
|
||||
|
||||
public readonly WasmRuntime Runtime;
|
||||
public readonly Runtime Asset;
|
||||
public readonly IDictionary<BindingPath, IFunctionState> State;
|
||||
|
||||
public RuntimeInstance(WasmRuntime runtime, Runtime asset, IDictionary<BindingPath, IFunctionState> state)
|
||||
{
|
||||
Runtime = runtime;
|
||||
Asset = asset;
|
||||
State = state;
|
||||
}
|
||||
|
||||
public IResult<Unit, Exception> Invoke(FuncAddr addr, InvokerOptions options = null)
|
||||
{
|
||||
var caller = Runtime.CreateInvokerAction(addr, options);
|
||||
try
|
||||
{
|
||||
caller();
|
||||
return Result.Ok<Unit, Exception>(default);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return Result.Err<Unit, Exception>(e);
|
||||
}
|
||||
}
|
||||
|
||||
public IResult<T, Exception> Invoke<T>(FuncAddr addr, InvokerOptions options = null)
|
||||
{
|
||||
var caller = Runtime.CreateInvokerFunc<T>(addr, options);
|
||||
try
|
||||
{
|
||||
T value = caller();
|
||||
return Result.Ok<T, Exception>(default);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return Result.Err<T, Exception>(e);
|
||||
}
|
||||
}
|
||||
|
||||
public IResult<Unit, Exception> Invoke(BindingPath path, InvokerOptions options = null)
|
||||
{
|
||||
if (Runtime.TryGetExportedFunction(path, out var addr))
|
||||
{
|
||||
return Invoke(addr, options);
|
||||
}
|
||||
|
||||
return Result.Err<Unit, Exception>(new ArgumentException($"No such function \"{path}\""));
|
||||
}
|
||||
|
||||
public IResult<T, Exception> Invoke<T>(BindingPath path, InvokerOptions options = null)
|
||||
{
|
||||
if (Runtime.TryGetExportedFunction(path, out var addr))
|
||||
{
|
||||
return Invoke<T>(addr, options);
|
||||
}
|
||||
|
||||
return Result.Err<T, Exception>(new ArgumentException($"No such function \"{path}\""));
|
||||
}
|
||||
|
||||
public IResult<Unit, Exception> Start(ModuleInstance module, InvokerOptions options = null)
|
||||
{
|
||||
return Invoke(module.StartFunc, options);
|
||||
}
|
||||
|
||||
public IResult<Unit, Exception> Start(string moduleName, InvokerOptions options = null)
|
||||
{
|
||||
return Start(Runtime.GetModule(moduleName), options);
|
||||
}
|
||||
|
||||
public IResult<Unit, Exception> Start(Module module, InvokerOptions options = null)
|
||||
{
|
||||
return Start(module.Name, options);
|
||||
}
|
||||
|
||||
public IResult<Unit, Exception> Start(InvokerOptions options = null)
|
||||
{
|
||||
if (Asset.Modules.Count != 1)
|
||||
{
|
||||
return Result.Err<Unit, Exception>(new ArgumentException("Runtime has more than one module registered. Specify the module to start."));
|
||||
}
|
||||
|
||||
return Start(Asset.Modules[0], options);
|
||||
}
|
||||
}
|
||||
|
||||
[CreateAssetMenu(menuName = KitsuneCafeMenu.Module + "Runtime")]
|
||||
public class Runtime : ScriptableObject
|
||||
{
|
||||
[SerializeField]
|
||||
private RuntimeAttributes attributes = new();
|
||||
public RuntimeAttributes Attributes => attributes;
|
||||
|
||||
[SerializeField]
|
||||
private List<Environment> environments = new();
|
||||
public List<Environment> Environments => environments;
|
||||
|
||||
[SerializeField]
|
||||
private List<Module> modules = new();
|
||||
public List<Module> Modules => modules;
|
||||
|
||||
public RuntimeInstance Instantiate()
|
||||
{
|
||||
var runtime = new WasmRuntime(attributes);
|
||||
var state = BindEnvironments(runtime);
|
||||
RegisterModules(runtime);
|
||||
|
||||
return new RuntimeInstance(runtime, this, state);
|
||||
}
|
||||
|
||||
private RuntimeState BindEnvironments(WasmRuntime runtime)
|
||||
{
|
||||
var state = new RuntimeState();
|
||||
|
||||
foreach (var env in environments)
|
||||
{
|
||||
env.Bind(runtime, state);
|
||||
}
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
private void RegisterModules(WasmRuntime runtime)
|
||||
{
|
||||
foreach (var module in modules)
|
||||
{
|
||||
var instance = module.Instantiate(runtime);
|
||||
runtime.RegisterModule(module.Name, instance);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
2
Assets/Scripts/Scripting/Runtime.cs.meta
Normal file
2
Assets/Scripts/Scripting/Runtime.cs.meta
Normal file
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e6dc78199a8464287bf7cf7e9e8ff4d3
|
47
Assets/Scripts/Scripting/SayCBinding.cs
Normal file
47
Assets/Scripts/Scripting/SayCBinding.cs
Normal file
|
@ -0,0 +1,47 @@
|
|||
using System;
|
||||
using System.Text;
|
||||
using KitsuneCafe.System;
|
||||
using UnityEngine;
|
||||
using Wacs.Core.Runtime;
|
||||
|
||||
namespace KitsuneCafe.Scripting
|
||||
{
|
||||
public interface IFunctionBinding : IHostBinding
|
||||
{
|
||||
IOption<IFunctionState> Bind(WasmRuntime runtime);
|
||||
}
|
||||
|
||||
public interface IFunctionState { }
|
||||
|
||||
public abstract class FunctionBinding : ScriptableObject, IFunctionBinding
|
||||
{
|
||||
public abstract BindingPath BindingPath { get; }
|
||||
|
||||
public abstract IOption<IFunctionState> Bind(WasmRuntime runtime);
|
||||
}
|
||||
|
||||
[CreateAssetMenu(menuName = KitsuneCafeMenu.ModuleFunctionBinding + "SayC")]
|
||||
public class SayCBinding : FunctionBinding
|
||||
{
|
||||
public class State : IFunctionState
|
||||
{
|
||||
public StringBuilder Output = new();
|
||||
}
|
||||
|
||||
public static readonly BindingPath SayCBindingPath = new("env", "sayc");
|
||||
|
||||
public override BindingPath BindingPath => SayCBindingPath;
|
||||
|
||||
public override IOption<IFunctionState> Bind(WasmRuntime runtime)
|
||||
{
|
||||
var state = new State();
|
||||
|
||||
runtime.BindHostFunction<Action<char>>(BindingPath, c =>
|
||||
{
|
||||
state.Output.Append(c);
|
||||
});
|
||||
|
||||
return Option.Some(state as IFunctionState);
|
||||
}
|
||||
}
|
||||
}
|
2
Assets/Scripts/Scripting/SayCBinding.cs.meta
Normal file
2
Assets/Scripts/Scripting/SayCBinding.cs.meta
Normal file
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a1d86ab1e1c07c78fbb94a44dbb50503
|
37
Assets/Scripts/Scripting/ScriptRunner.cs
Normal file
37
Assets/Scripts/Scripting/ScriptRunner.cs
Normal file
|
@ -0,0 +1,37 @@
|
|||
using UnityEngine;
|
||||
using Wacs.Core.Runtime;
|
||||
|
||||
namespace KitsuneCafe.Scripting
|
||||
{
|
||||
public class ScriptRunner : MonoBehaviour
|
||||
{
|
||||
[SerializeField]
|
||||
private Runtime runtime;
|
||||
|
||||
private RuntimeInstance instance;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
instance = runtime.Instantiate();
|
||||
|
||||
var options = new InvokerOptions
|
||||
{
|
||||
LogGas = false,
|
||||
LogProgressEvery = 0,
|
||||
LogInstructionExecution = InstructionLogging.None,
|
||||
CalculateLineNumbers = false,
|
||||
CollectStats = StatsDetail.None,
|
||||
};
|
||||
|
||||
var result = instance.Invoke<Value>(("hello", "main"), options);
|
||||
|
||||
Debug.Log(result);
|
||||
|
||||
if (instance.State.TryGetValue(SayCBinding.SayCBindingPath, out var state))
|
||||
{
|
||||
var fs = (SayCBinding.State)state;
|
||||
Debug.Log(fs.Output.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
2
Assets/Scripts/Scripting/ScriptRunner.cs.meta
Normal file
2
Assets/Scripts/Scripting/ScriptRunner.cs.meta
Normal file
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5e6501e4bc0241358b4d83a9582abc18
|
18
Assets/Scripts/Scripting/WasmAsset.cs
Normal file
18
Assets/Scripts/Scripting/WasmAsset.cs
Normal file
|
@ -0,0 +1,18 @@
|
|||
using System.IO;
|
||||
using UnityEngine;
|
||||
using Wacs.Core;
|
||||
|
||||
namespace KitsuneCafe.Scripting
|
||||
{
|
||||
public class WasmAsset : ScriptableObject
|
||||
{
|
||||
[HideInInspector]
|
||||
public byte[] data;
|
||||
|
||||
public Wacs.Core.Module CreateModule()
|
||||
{
|
||||
var stream = new MemoryStream(data);
|
||||
return BinaryModuleParser.ParseWasm(stream);
|
||||
}
|
||||
}
|
||||
}
|
2
Assets/Scripts/Scripting/WasmAsset.cs.meta
Normal file
2
Assets/Scripts/Scripting/WasmAsset.cs.meta
Normal file
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: f53e932dba967987a966cd31ac42e9d6
|
|
@ -2,13 +2,20 @@ namespace KitsuneCafe.System
|
|||
{
|
||||
public static class KitsuneCafeMenu
|
||||
{
|
||||
public const string BaseMenu = "KitsuneCafe/";
|
||||
public const string ItemMenu = BaseMenu + "Item/";
|
||||
public const string SoapMenu = BaseMenu + "SOAP/";
|
||||
public const string Base = "KitsuneCafe/";
|
||||
public const string Item = Base + "Item/";
|
||||
|
||||
public const string SoapConstantMenu = SoapMenu + "Constant/";
|
||||
public const string SoapValueMenu = SoapMenu + "Value/";
|
||||
public const string SoapEventMenu = SoapMenu + "Event/";
|
||||
public const string SoapInputMenu = SoapMenu + "Input/";
|
||||
public const string Module = Base + "Module/";
|
||||
public const string ModuleBinding = Module + "Binding/";
|
||||
public const string ModuleFunctionBinding = ModuleBinding + "Function/";
|
||||
|
||||
public const string Soap = Base + "SOAP/";
|
||||
public const string SoapConstant = Soap + "Constant/";
|
||||
public const string SoapValue = Soap + "Value/";
|
||||
public const string SoapEvent = Soap + "Event/";
|
||||
public const string SoapInput = Soap + "Input/";
|
||||
|
||||
public const string Ui = Base + "UI/";
|
||||
public const string UiElement = Ui + "Element/";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,12 @@ using System;
|
|||
|
||||
namespace KitsuneCafe.System
|
||||
{
|
||||
public class Option
|
||||
{
|
||||
public static IOption<T> Some<T>(T value) => IOption<T>.Some(value);
|
||||
public static IOption<T> None<T>() => IOption<T>.None();
|
||||
}
|
||||
|
||||
public interface IOption<T>
|
||||
{
|
||||
private static IOption<T> none = new None<T>();
|
||||
|
|
15
Assets/Scripts/System/PooledObject.cs
Normal file
15
Assets/Scripts/System/PooledObject.cs
Normal file
|
@ -0,0 +1,15 @@
|
|||
using UnityEngine;
|
||||
using UnityEngine.Pool;
|
||||
|
||||
namespace KitsuneCafe.System
|
||||
{
|
||||
public class PooledObject : MonoBehaviour
|
||||
{
|
||||
public IObjectPool<GameObject> objectPool;
|
||||
|
||||
public void Release()
|
||||
{
|
||||
objectPool.Release(gameObject);
|
||||
}
|
||||
}
|
||||
}
|
2
Assets/Scripts/System/PooledObject.cs.meta
Normal file
2
Assets/Scripts/System/PooledObject.cs.meta
Normal file
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e7e9e49bc72f0c26598faa7e0d34036e
|
|
@ -1,37 +0,0 @@
|
|||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
using UnityEngine.AddressableAssets;
|
||||
using UnityEngine.ResourceManagement.AsyncOperations;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEditor;
|
||||
using Unity.Rendering;
|
||||
using System;
|
||||
using Unity.Multiplayer.Center.Common;
|
||||
using System.Collections;
|
||||
|
||||
// https://docs.unity3d.com/6000.1/Documentation/ScriptReference/UIElements.ListView.html
|
||||
|
||||
namespace UnityEngine.UIElements
|
||||
{
|
||||
[UxmlElement]
|
||||
public partial class RecycleView : ListView
|
||||
{
|
||||
[UxmlAttribute]
|
||||
private int bufferedItems = 2;
|
||||
|
||||
public RecycleView() : base()
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
|
||||
public RecycleView(IList itemsSource, int itemHeight, Func<VisualElement> makeItem, Action<VisualElement, int> bindItem) : base(itemsSource, itemHeight, makeItem, bindItem)
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
|
||||
public void Initialize()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,2 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 9ed9e942d99434ac0b1088708aceada8
|
8
Assets/Scripts/UI/Elements.meta
Normal file
8
Assets/Scripts/UI/Elements.meta
Normal file
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 21b3efee087132d1ebb8899ce5899ba2
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue