├── Demo Assets.meta ├── Demo Assets ├── Doggo.meta ├── Doggo │ ├── Animator.meta │ ├── Animator │ │ ├── Wolf.controller │ │ ├── Wolf.controller.meta │ │ ├── WolfGuard.anim │ │ ├── WolfGuard.anim.meta │ │ ├── WolfIdle.anim │ │ ├── WolfIdle.anim.meta │ │ ├── WolfJump.anim │ │ ├── WolfJump.anim.meta │ │ ├── WolfSit.anim │ │ ├── WolfSit.anim.meta │ │ ├── WolfWalk.anim │ │ └── WolfWalk.anim.meta │ ├── source.meta │ ├── source │ │ ├── RiggedWolf.fbx │ │ ├── RiggedWolf.fbx.meta │ │ ├── wolf.fbx │ │ └── wolf.fbx.meta │ ├── textures.meta │ └── textures │ │ ├── 02 - Default.mat │ │ ├── 02 - Default.mat.meta │ │ ├── wolf.png │ │ └── wolf.png.meta ├── FunnyCapsuleMan.meta ├── FunnyCapsuleMan │ ├── EyeAnimation.anim │ ├── EyeAnimation.anim.meta │ ├── Eyes.controller │ ├── Eyes.controller.meta │ ├── Funny Capsule Man.prefab │ ├── Funny Capsule Man.prefab.meta │ ├── Material.001.mat │ ├── Material.001.mat.meta │ ├── Material.002.mat │ ├── Material.002.mat.meta │ ├── Sus.prefab │ ├── Sus.prefab.meta │ ├── Tophat.fbx │ ├── Tophat.fbx.meta │ ├── cane.fbx │ ├── cane.fbx.meta │ ├── cane.png │ ├── cane.png.meta │ ├── hat_map.png │ └── hat_map.png.meta ├── Materials.meta └── Materials │ ├── Brown.mat │ ├── Brown.mat.meta │ ├── Flor.mat │ ├── Flor.mat.meta │ ├── Green LIT.mat │ ├── Green LIT.mat.meta │ ├── Green.mat │ ├── Green.mat.meta │ ├── Red LIT.mat │ ├── Red LIT.mat.meta │ ├── Red.mat │ └── Red.mat.meta ├── Demo Scene.meta ├── Demo Scene ├── TLX AI Demo Scene.meta ├── TLX AI Demo Scene.unity ├── TLX AI Demo Scene.unity.meta ├── TLX AI Demo Scene │ ├── LightingData.asset │ ├── LightingData.asset.meta │ ├── Lightmap-0_comp_dir.png │ ├── Lightmap-0_comp_dir.png.meta │ ├── Lightmap-0_comp_light.exr │ ├── Lightmap-0_comp_light.exr.meta │ ├── NavMesh.asset │ ├── NavMesh.asset.meta │ ├── ReflectionProbe-0.exr │ ├── ReflectionProbe-0.exr.meta │ ├── ReflectionProbe-1.exr │ └── ReflectionProbe-1.exr.meta ├── TLX AI Demo Scene_UdonProgramSources.meta └── TLX AI Demo Scene_UdonProgramSources │ ├── Basic Player Chasing AI Udon C# Program Asset.asset │ ├── Basic Player Chasing AI Udon C# Program Asset.asset.meta │ ├── Basic Synced AI Udon C# Program Asset.asset │ ├── Basic Synced AI Udon C# Program Asset.asset.meta │ ├── Basic Toggleable AI Udon C# Program Asset.asset │ ├── Basic Toggleable AI Udon C# Program Asset.asset.meta │ ├── Basic Wandering AI Udon C# Program Asset.asset │ ├── Basic Wandering AI Udon C# Program Asset.asset.meta │ ├── DoggoFollowToggle Udon C# Program Asset.asset │ ├── DoggoFollowToggle Udon C# Program Asset.asset.meta │ ├── DoggoFollowToggleFetchAI Udon C# Program Asset.asset │ ├── DoggoFollowToggleFetchAI Udon C# Program Asset.asset.meta │ ├── DoggoFollowToggleMultiState Udon C# Program Asset.asset │ ├── DoggoFollowToggleMultiState Udon C# Program Asset.asset.meta │ ├── Fetch AI Udon C# Program Asset.asset │ ├── Fetch AI Udon C# Program Asset.asset.meta │ ├── Fetcher Pickup Udon C# Program Asset.asset │ ├── Fetcher Pickup Udon C# Program Asset.asset.meta │ ├── GuardDetectionSphere Udon C# Program Asset.asset │ ├── GuardDetectionSphere Udon C# Program Asset.asset.meta │ ├── GuardDetectionSphereFetch Udon C# Program Asset.asset │ ├── GuardDetectionSphereFetch Udon C# Program Asset.asset.meta │ ├── MultiState AI Udon C# Program Asset.asset │ ├── MultiState AI Udon C# Program Asset.asset.meta │ ├── NavMesh Area Cost Creator Udon C# Program Asset.asset │ ├── NavMesh Area Cost Creator Udon C# Program Asset.asset.meta │ ├── Player Udon C# Program Asset.asset │ ├── Player Udon C# Program Asset.asset.meta │ ├── SimpleAI Object Pool.asset │ ├── SimpleAI Object Pool.asset.meta │ ├── Synced Fetcher Pickup Udon C# Program Asset.asset │ ├── Synced Fetcher Pickup Udon C# Program Asset.asset.meta │ ├── SyncedDetectionSphere Udon C# Program Asset.asset │ ├── SyncedDetectionSphere Udon C# Program Asset.asset.meta │ ├── SyncedToggle Udon C# Program Asset.asset │ └── SyncedToggle Udon C# Program Asset.asset.meta ├── Generic Prefabs.meta ├── Generic Prefabs ├── Generic Scripts.meta ├── Generic Scripts │ ├── NavMeshAreaCostCreator.cs │ ├── NavMeshAreaCostCreator.cs.meta │ ├── Player.cs │ ├── Player.cs.meta │ ├── SimpleAIObjectPool.cs │ └── SimpleAIObjectPool.cs.meta ├── NavMesh Area Cost Creator.prefab ├── NavMesh Area Cost Creator.prefab.meta ├── OffMeshLink.prefab ├── OffMeshLink.prefab.meta ├── SimpleAI Object Pool.prefab └── SimpleAI Object Pool.prefab.meta ├── README.md ├── README.md.meta ├── TLX AI.meta ├── TLX AI ├── Local AI.meta ├── Local AI │ ├── Prefabs.meta │ ├── Prefabs │ │ ├── Basic Player Chasing AI.prefab │ │ ├── Basic Player Chasing AI.prefab.meta │ │ ├── Basic Toggleable AI.prefab │ │ ├── Basic Toggleable AI.prefab.meta │ │ ├── Basic Wandering AI.prefab │ │ ├── Basic Wandering AI.prefab.meta │ │ ├── Fetch AI.prefab │ │ ├── Fetch AI.prefab.meta │ │ ├── MultiState AI.prefab │ │ └── MultiState AI.prefab.meta │ ├── Scripts.meta │ └── Scripts │ │ ├── BasicPlayerChasingAI.cs │ │ ├── BasicPlayerChasingAI.cs.meta │ │ ├── BasicToggleableAI.cs │ │ ├── BasicToggleableAI.cs.meta │ │ ├── BasicWanderingAI.cs │ │ ├── BasicWanderingAI.cs.meta │ │ ├── DoggoFollowToggle.cs │ │ ├── DoggoFollowToggle.cs.meta │ │ ├── DoggoFollowToggleFetchAI.cs │ │ ├── DoggoFollowToggleFetchAI.cs.meta │ │ ├── DoggoFollowToggleMultiState.cs │ │ ├── DoggoFollowToggleMultiState.cs.meta │ │ ├── FetchAI.cs │ │ ├── FetchAI.cs.meta │ │ ├── FetcherPickup.cs │ │ ├── FetcherPickup.cs.meta │ │ ├── GuardDetectionSphere.cs │ │ ├── GuardDetectionSphere.cs.meta │ │ ├── GuardDetectionSphereFetch.cs │ │ ├── GuardDetectionSphereFetch.cs.meta │ │ ├── MultiStateAI.cs │ │ └── MultiStateAI.cs.meta ├── Synced AI.meta └── Synced AI │ ├── Prefabs.meta │ ├── Prefabs │ ├── Synced AI.prefab │ └── Synced AI.prefab.meta │ ├── Scripts.meta │ └── Scripts │ ├── BasicSyncedAI.cs │ ├── BasicSyncedAI.cs.meta │ ├── SyncedDetectionSphere.cs │ ├── SyncedDetectionSphere.cs.meta │ ├── SyncedFetcherPickup.cs │ ├── SyncedFetcherPickup.cs.meta │ ├── SyncedToggle.cs │ └── SyncedToggle.cs.meta ├── changelog.txt ├── changelog.txt.meta ├── version.txt └── version.txt.meta /Demo Assets.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 001d898a62f802a459cda0a77ac69b79 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Assets/Doggo.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 674351eeb0236fa44831f400571b1291 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Assets/Doggo/Animator.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8d46058ac6cf64d4185dd315d8acd62b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Assets/Doggo/Animator/Wolf.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 501c2374f910e3d4ba692dbdd1e2f90b 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 9100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Assets/Doggo/Animator/WolfGuard.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fa215b57fe7d9294992cb2bd62b3b4e6 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Assets/Doggo/Animator/WolfIdle.anim: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!74 &7400000 4 | AnimationClip: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: WolfIdle 10 | serializedVersion: 6 11 | m_Legacy: 0 12 | m_Compressed: 0 13 | m_UseHighQualityCurve: 1 14 | m_RotationCurves: [] 15 | m_CompressedRotationCurves: [] 16 | m_EulerCurves: 17 | - curve: 18 | serializedVersion: 2 19 | m_Curve: 20 | - serializedVersion: 3 21 | time: 0 22 | value: {x: -25.000002, y: 0, z: -194.99998} 23 | inSlope: {x: 0, y: 0, z: 0} 24 | outSlope: {x: 0, y: 0, z: 0} 25 | tangentMode: 0 26 | weightedMode: 0 27 | inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} 28 | outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} 29 | - serializedVersion: 3 30 | time: 0.25 31 | value: {x: -25.000002, y: 0, z: -165.00002} 32 | inSlope: {x: 0, y: 0, z: 0} 33 | outSlope: {x: 0, y: 0, z: 0} 34 | tangentMode: 0 35 | weightedMode: 0 36 | inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} 37 | outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} 38 | - serializedVersion: 3 39 | time: 0.5 40 | value: {x: -25.000002, y: 0, z: -194.99998} 41 | inSlope: {x: 0, y: 0, z: 0} 42 | outSlope: {x: 0, y: 0, z: 0} 43 | tangentMode: 0 44 | weightedMode: 0 45 | inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} 46 | outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} 47 | m_PreInfinity: 2 48 | m_PostInfinity: 2 49 | m_RotationOrder: 4 50 | path: Armature/Base1/Tail 51 | m_PositionCurves: [] 52 | m_ScaleCurves: [] 53 | m_FloatCurves: [] 54 | m_PPtrCurves: [] 55 | m_SampleRate: 60 56 | m_WrapMode: 0 57 | m_Bounds: 58 | m_Center: {x: 0, y: 0, z: 0} 59 | m_Extent: {x: 0, y: 0, z: 0} 60 | m_ClipBindingConstant: 61 | genericBindings: 62 | - serializedVersion: 2 63 | path: 3154994710 64 | attribute: 4 65 | script: {fileID: 0} 66 | typeID: 4 67 | customType: 4 68 | isPPtrCurve: 0 69 | pptrCurveMapping: [] 70 | m_AnimationClipSettings: 71 | serializedVersion: 2 72 | m_AdditiveReferencePoseClip: {fileID: 0} 73 | m_AdditiveReferencePoseTime: 0 74 | m_StartTime: 0 75 | m_StopTime: 0.5 76 | m_OrientationOffsetY: 0 77 | m_Level: 0 78 | m_CycleOffset: 0 79 | m_HasAdditiveReferencePose: 0 80 | m_LoopTime: 1 81 | m_LoopBlend: 0 82 | m_LoopBlendOrientation: 0 83 | m_LoopBlendPositionY: 0 84 | m_LoopBlendPositionXZ: 0 85 | m_KeepOriginalOrientation: 0 86 | m_KeepOriginalPositionY: 1 87 | m_KeepOriginalPositionXZ: 0 88 | m_HeightFromFeet: 0 89 | m_Mirror: 0 90 | m_EditorCurves: 91 | - curve: 92 | serializedVersion: 2 93 | m_Curve: 94 | - serializedVersion: 3 95 | time: 0 96 | value: -25.000002 97 | inSlope: 0 98 | outSlope: 0 99 | tangentMode: 136 100 | weightedMode: 0 101 | inWeight: 0.33333334 102 | outWeight: 0.33333334 103 | - serializedVersion: 3 104 | time: 0.25 105 | value: -25.000002 106 | inSlope: 0 107 | outSlope: 0 108 | tangentMode: 136 109 | weightedMode: 0 110 | inWeight: 0.33333334 111 | outWeight: 0.33333334 112 | - serializedVersion: 3 113 | time: 0.5 114 | value: -25.000002 115 | inSlope: 0 116 | outSlope: 0 117 | tangentMode: 136 118 | weightedMode: 0 119 | inWeight: 0.33333334 120 | outWeight: 0.33333334 121 | m_PreInfinity: 2 122 | m_PostInfinity: 2 123 | m_RotationOrder: 4 124 | attribute: localEulerAnglesRaw.x 125 | path: Armature/Base1/Tail 126 | classID: 4 127 | script: {fileID: 0} 128 | - curve: 129 | serializedVersion: 2 130 | m_Curve: 131 | - serializedVersion: 3 132 | time: 0 133 | value: 0 134 | inSlope: 0 135 | outSlope: 0 136 | tangentMode: 136 137 | weightedMode: 0 138 | inWeight: 0.33333334 139 | outWeight: 0.33333334 140 | - serializedVersion: 3 141 | time: 0.25 142 | value: 0 143 | inSlope: 0 144 | outSlope: 0 145 | tangentMode: 136 146 | weightedMode: 0 147 | inWeight: 0.33333334 148 | outWeight: 0.33333334 149 | - serializedVersion: 3 150 | time: 0.5 151 | value: 0 152 | inSlope: 0 153 | outSlope: 0 154 | tangentMode: 136 155 | weightedMode: 0 156 | inWeight: 0.33333334 157 | outWeight: 0.33333334 158 | m_PreInfinity: 2 159 | m_PostInfinity: 2 160 | m_RotationOrder: 4 161 | attribute: localEulerAnglesRaw.y 162 | path: Armature/Base1/Tail 163 | classID: 4 164 | script: {fileID: 0} 165 | - curve: 166 | serializedVersion: 2 167 | m_Curve: 168 | - serializedVersion: 3 169 | time: 0 170 | value: -194.99998 171 | inSlope: 0 172 | outSlope: 0 173 | tangentMode: 136 174 | weightedMode: 0 175 | inWeight: 0.33333334 176 | outWeight: 0.33333334 177 | - serializedVersion: 3 178 | time: 0.25 179 | value: -165.00002 180 | inSlope: 0 181 | outSlope: 0 182 | tangentMode: 136 183 | weightedMode: 0 184 | inWeight: 0.33333334 185 | outWeight: 0.33333334 186 | - serializedVersion: 3 187 | time: 0.5 188 | value: -194.99998 189 | inSlope: 0 190 | outSlope: 0 191 | tangentMode: 136 192 | weightedMode: 0 193 | inWeight: 0.33333334 194 | outWeight: 0.33333334 195 | m_PreInfinity: 2 196 | m_PostInfinity: 2 197 | m_RotationOrder: 4 198 | attribute: localEulerAnglesRaw.z 199 | path: Armature/Base1/Tail 200 | classID: 4 201 | script: {fileID: 0} 202 | m_EulerEditorCurves: 203 | - curve: 204 | serializedVersion: 2 205 | m_Curve: [] 206 | m_PreInfinity: 2 207 | m_PostInfinity: 2 208 | m_RotationOrder: 4 209 | attribute: m_LocalEulerAngles.x 210 | path: Armature/Base1/Tail 211 | classID: 4 212 | script: {fileID: 0} 213 | - curve: 214 | serializedVersion: 2 215 | m_Curve: [] 216 | m_PreInfinity: 2 217 | m_PostInfinity: 2 218 | m_RotationOrder: 4 219 | attribute: m_LocalEulerAngles.y 220 | path: Armature/Base1/Tail 221 | classID: 4 222 | script: {fileID: 0} 223 | - curve: 224 | serializedVersion: 2 225 | m_Curve: [] 226 | m_PreInfinity: 2 227 | m_PostInfinity: 2 228 | m_RotationOrder: 4 229 | attribute: m_LocalEulerAngles.z 230 | path: Armature/Base1/Tail 231 | classID: 4 232 | script: {fileID: 0} 233 | m_HasGenericRootTransform: 0 234 | m_HasMotionFloatCurves: 0 235 | m_Events: [] 236 | -------------------------------------------------------------------------------- /Demo Assets/Doggo/Animator/WolfIdle.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 612fe7fd9e7a69d49842522ab866fe82 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Assets/Doggo/Animator/WolfJump.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 95ac8359821a8bd4c8eb87954ddf691b 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Assets/Doggo/Animator/WolfSit.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ddc5e77b5b432db4c90204e8c283a8df 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Assets/Doggo/Animator/WolfWalk.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e66ab19d7dfb3be4cb84aea06f0d6283 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Assets/Doggo/source.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0b3c97d831a6158468da27ebfaa266e2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Assets/Doggo/source/RiggedWolf.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Centauri2442/SimpleAI/1dbb5d928779c8f2eecc536bec79a8346c970d91/Demo Assets/Doggo/source/RiggedWolf.fbx -------------------------------------------------------------------------------- /Demo Assets/Doggo/source/RiggedWolf.fbx.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 89df730a4b57e844c920645bab4d8d54 3 | ModelImporter: 4 | serializedVersion: 23 5 | fileIDToRecycleName: 6 | 100000: Armature 7 | 100002: Back Leg L 8 | 100004: Back Leg L_end 9 | 100006: Back Leg R 10 | 100008: Back Leg R_end 11 | 100010: Base1 12 | 100012: Base2 13 | 100014: Body 14 | 100016: Front Leg L 15 | 100018: Front Leg L_end 16 | 100020: Front Leg R 17 | 100022: Front Leg R_end 18 | 100024: Head 19 | 100026: Head_end 20 | 100028: //RootNode 21 | 100030: Tail 22 | 100032: Tail_end 23 | 400000: Armature 24 | 400002: Back Leg L 25 | 400004: Back Leg L_end 26 | 400006: Back Leg R 27 | 400008: Back Leg R_end 28 | 400010: Base1 29 | 400012: Base2 30 | 400014: Body 31 | 400016: Front Leg L 32 | 400018: Front Leg L_end 33 | 400020: Front Leg R 34 | 400022: Front Leg R_end 35 | 400024: Head 36 | 400026: Head_end 37 | 400028: //RootNode 38 | 400030: Tail 39 | 400032: Tail_end 40 | 2100000: 02 - Default 41 | 4300000: Body 42 | 9500000: //RootNode 43 | 13700000: Body 44 | externalObjects: 45 | - first: 46 | type: UnityEngine:Material 47 | assembly: UnityEngine.CoreModule 48 | name: 02 - Default 49 | second: {fileID: 2100000, guid: 71ec53892fad5aa479141085abdce0eb, type: 2} 50 | materials: 51 | importMaterials: 1 52 | materialName: 0 53 | materialSearch: 1 54 | materialLocation: 1 55 | animations: 56 | legacyGenerateAnimations: 4 57 | bakeSimulation: 0 58 | resampleCurves: 1 59 | optimizeGameObjects: 0 60 | motionNodeName: 61 | rigImportErrors: 62 | rigImportWarnings: 63 | animationImportErrors: 64 | animationImportWarnings: 65 | animationRetargetingWarnings: 66 | animationDoRetargetingWarnings: 0 67 | importAnimatedCustomProperties: 0 68 | importConstraints: 0 69 | animationCompression: 1 70 | animationRotationError: 0.5 71 | animationPositionError: 0.5 72 | animationScaleError: 0.5 73 | animationWrapMode: 0 74 | extraExposedTransformPaths: [] 75 | extraUserProperties: [] 76 | clipAnimations: [] 77 | isReadable: 1 78 | meshes: 79 | lODScreenPercentages: [] 80 | globalScale: 1 81 | meshCompression: 0 82 | addColliders: 0 83 | useSRGBMaterialColor: 1 84 | importVisibility: 1 85 | importBlendShapes: 1 86 | importCameras: 1 87 | importLights: 1 88 | swapUVChannels: 0 89 | generateSecondaryUV: 0 90 | useFileUnits: 1 91 | optimizeMeshForGPU: 1 92 | keepQuads: 0 93 | weldVertices: 1 94 | preserveHierarchy: 0 95 | indexFormat: 0 96 | secondaryUVAngleDistortion: 8 97 | secondaryUVAreaDistortion: 15.000001 98 | secondaryUVHardAngle: 88 99 | secondaryUVPackMargin: 4 100 | useFileScale: 1 101 | previousCalculatedGlobalScale: 0.01 102 | hasPreviousCalculatedGlobalScale: 1 103 | tangentSpace: 104 | normalSmoothAngle: 60 105 | normalImportMode: 0 106 | tangentImportMode: 3 107 | normalCalculationMode: 4 108 | legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1 109 | blendShapeNormalImportMode: 1 110 | normalSmoothingSource: 0 111 | importAnimation: 1 112 | copyAvatar: 0 113 | humanDescription: 114 | serializedVersion: 2 115 | human: [] 116 | skeleton: [] 117 | armTwist: 0.5 118 | foreArmTwist: 0.5 119 | upperLegTwist: 0.5 120 | legTwist: 0.5 121 | armStretch: 0.05 122 | legStretch: 0.05 123 | feetSpacing: 0 124 | rootMotionBoneName: 125 | hasTranslationDoF: 0 126 | hasExtraRoot: 0 127 | skeletonHasParents: 1 128 | lastHumanDescriptionAvatarSource: {instanceID: 0} 129 | animationType: 2 130 | humanoidOversampling: 1 131 | additionalBone: 0 132 | userData: 133 | assetBundleName: 134 | assetBundleVariant: 135 | -------------------------------------------------------------------------------- /Demo Assets/Doggo/source/wolf.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Centauri2442/SimpleAI/1dbb5d928779c8f2eecc536bec79a8346c970d91/Demo Assets/Doggo/source/wolf.fbx -------------------------------------------------------------------------------- /Demo Assets/Doggo/source/wolf.fbx.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2c350dc8f17351f42b7321154bbaa122 3 | ModelImporter: 4 | serializedVersion: 23 5 | fileIDToRecycleName: 6 | 100000: //RootNode 7 | 400000: //RootNode 8 | 2100000: 02 - Default 9 | 2300000: //RootNode 10 | 3300000: //RootNode 11 | 4300000: Box006 12 | externalObjects: 13 | - first: 14 | type: UnityEngine:Material 15 | assembly: UnityEngine.CoreModule 16 | name: 02 - Default 17 | second: {fileID: 2100000, guid: 71ec53892fad5aa479141085abdce0eb, type: 2} 18 | materials: 19 | importMaterials: 1 20 | materialName: 0 21 | materialSearch: 1 22 | materialLocation: 1 23 | animations: 24 | legacyGenerateAnimations: 4 25 | bakeSimulation: 0 26 | resampleCurves: 1 27 | optimizeGameObjects: 0 28 | motionNodeName: 29 | rigImportErrors: 30 | rigImportWarnings: 31 | animationImportErrors: 32 | animationImportWarnings: 33 | animationRetargetingWarnings: 34 | animationDoRetargetingWarnings: 0 35 | importAnimatedCustomProperties: 0 36 | importConstraints: 0 37 | animationCompression: 1 38 | animationRotationError: 0.5 39 | animationPositionError: 0.5 40 | animationScaleError: 0.5 41 | animationWrapMode: 0 42 | extraExposedTransformPaths: [] 43 | extraUserProperties: [] 44 | clipAnimations: [] 45 | isReadable: 1 46 | meshes: 47 | lODScreenPercentages: [] 48 | globalScale: 1 49 | meshCompression: 0 50 | addColliders: 0 51 | useSRGBMaterialColor: 1 52 | importVisibility: 1 53 | importBlendShapes: 1 54 | importCameras: 1 55 | importLights: 1 56 | swapUVChannels: 0 57 | generateSecondaryUV: 0 58 | useFileUnits: 1 59 | optimizeMeshForGPU: 1 60 | keepQuads: 0 61 | weldVertices: 1 62 | preserveHierarchy: 0 63 | indexFormat: 0 64 | secondaryUVAngleDistortion: 8 65 | secondaryUVAreaDistortion: 15.000001 66 | secondaryUVHardAngle: 88 67 | secondaryUVPackMargin: 4 68 | useFileScale: 1 69 | previousCalculatedGlobalScale: 1 70 | hasPreviousCalculatedGlobalScale: 0 71 | tangentSpace: 72 | normalSmoothAngle: 60 73 | normalImportMode: 0 74 | tangentImportMode: 3 75 | normalCalculationMode: 4 76 | legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 77 | blendShapeNormalImportMode: 1 78 | normalSmoothingSource: 0 79 | importAnimation: 1 80 | copyAvatar: 0 81 | humanDescription: 82 | serializedVersion: 2 83 | human: [] 84 | skeleton: [] 85 | armTwist: 0.5 86 | foreArmTwist: 0.5 87 | upperLegTwist: 0.5 88 | legTwist: 0.5 89 | armStretch: 0.05 90 | legStretch: 0.05 91 | feetSpacing: 0 92 | rootMotionBoneName: 93 | hasTranslationDoF: 0 94 | hasExtraRoot: 0 95 | skeletonHasParents: 1 96 | lastHumanDescriptionAvatarSource: {instanceID: 0} 97 | animationType: 0 98 | humanoidOversampling: 1 99 | additionalBone: 0 100 | userData: 101 | assetBundleName: 102 | assetBundleVariant: 103 | -------------------------------------------------------------------------------- /Demo Assets/Doggo/textures.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 84c9a583b07715e4b942e79548c7fc64 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Assets/Doggo/textures/02 - Default.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: 02 - Default 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 2800000, guid: b1acb7a109df12b4fb54c4b6d7a90cf2, type: 3} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 1, g: 1, b: 1, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 0} 78 | -------------------------------------------------------------------------------- /Demo Assets/Doggo/textures/02 - Default.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 71ec53892fad5aa479141085abdce0eb 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Assets/Doggo/textures/wolf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Centauri2442/SimpleAI/1dbb5d928779c8f2eecc536bec79a8346c970d91/Demo Assets/Doggo/textures/wolf.png -------------------------------------------------------------------------------- /Demo Assets/Doggo/textures/wolf.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b1acb7a109df12b4fb54c4b6d7a90cf2 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 9 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 0 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | - serializedVersion: 2 73 | buildTarget: Standalone 74 | maxTextureSize: 2048 75 | resizeAlgorithm: 0 76 | textureFormat: -1 77 | textureCompression: 1 78 | compressionQuality: 50 79 | crunchedCompression: 0 80 | allowsAlphaSplitting: 0 81 | overridden: 0 82 | androidETC2FallbackOverride: 0 83 | - serializedVersion: 2 84 | buildTarget: Android 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | androidETC2FallbackOverride: 0 94 | spriteSheet: 95 | serializedVersion: 2 96 | sprites: [] 97 | outline: [] 98 | physicsShape: [] 99 | bones: [] 100 | spriteID: 101 | vertices: [] 102 | indices: 103 | edges: [] 104 | weights: [] 105 | spritePackingTag: 106 | pSDRemoveMatte: 0 107 | pSDShowRemoveMatteOption: 0 108 | userData: 109 | assetBundleName: 110 | assetBundleVariant: 111 | -------------------------------------------------------------------------------- /Demo Assets/FunnyCapsuleMan.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 718e665cc23153643b1ad426337f2591 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Assets/FunnyCapsuleMan/EyeAnimation.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6c6cd6466b9180b4fbb4ba489e356480 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Assets/FunnyCapsuleMan/Eyes.controller: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!91 &9100000 4 | AnimatorController: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: Eyes 10 | serializedVersion: 5 11 | m_AnimatorParameters: [] 12 | m_AnimatorLayers: 13 | - serializedVersion: 5 14 | m_Name: Base Layer 15 | m_StateMachine: {fileID: 1107038962062192220} 16 | m_Mask: {fileID: 0} 17 | m_Motions: [] 18 | m_Behaviours: [] 19 | m_BlendingMode: 0 20 | m_SyncedLayerIndex: -1 21 | m_DefaultWeight: 0 22 | m_IKPass: 0 23 | m_SyncedLayerAffectsTiming: 0 24 | m_Controller: {fileID: 9100000} 25 | --- !u!1102 &1102914734369486598 26 | AnimatorState: 27 | serializedVersion: 5 28 | m_ObjectHideFlags: 1 29 | m_CorrespondingSourceObject: {fileID: 0} 30 | m_PrefabInstance: {fileID: 0} 31 | m_PrefabAsset: {fileID: 0} 32 | m_Name: EyeAnimation 33 | m_Speed: 1 34 | m_CycleOffset: 0 35 | m_Transitions: [] 36 | m_StateMachineBehaviours: [] 37 | m_Position: {x: 50, y: 50, z: 0} 38 | m_IKOnFeet: 0 39 | m_WriteDefaultValues: 1 40 | m_Mirror: 0 41 | m_SpeedParameterActive: 0 42 | m_MirrorParameterActive: 0 43 | m_CycleOffsetParameterActive: 0 44 | m_TimeParameterActive: 0 45 | m_Motion: {fileID: 7400000, guid: 6c6cd6466b9180b4fbb4ba489e356480, type: 2} 46 | m_Tag: 47 | m_SpeedParameter: 48 | m_MirrorParameter: 49 | m_CycleOffsetParameter: 50 | m_TimeParameter: 51 | --- !u!1107 &1107038962062192220 52 | AnimatorStateMachine: 53 | serializedVersion: 5 54 | m_ObjectHideFlags: 1 55 | m_CorrespondingSourceObject: {fileID: 0} 56 | m_PrefabInstance: {fileID: 0} 57 | m_PrefabAsset: {fileID: 0} 58 | m_Name: Base Layer 59 | m_ChildStates: 60 | - serializedVersion: 1 61 | m_State: {fileID: 1102914734369486598} 62 | m_Position: {x: 200, y: 0, z: 0} 63 | m_ChildStateMachines: [] 64 | m_AnyStateTransitions: [] 65 | m_EntryTransitions: [] 66 | m_StateMachineTransitions: {} 67 | m_StateMachineBehaviours: [] 68 | m_AnyStatePosition: {x: 50, y: 20, z: 0} 69 | m_EntryPosition: {x: 50, y: 120, z: 0} 70 | m_ExitPosition: {x: 800, y: 120, z: 0} 71 | m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} 72 | m_DefaultState: {fileID: 1102914734369486598} 73 | -------------------------------------------------------------------------------- /Demo Assets/FunnyCapsuleMan/Eyes.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 95d3abe624419cd498e06894248d3c78 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 9100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Assets/FunnyCapsuleMan/Funny Capsule Man.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 94a1c001e15fc2842876f13322b9e9e3 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Demo Assets/FunnyCapsuleMan/Material.001.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Material.001 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 2800000, guid: 13d96dc68bdaba44cad3c0c3a767f850, type: 3} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 1, g: 1, b: 1, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 0} 78 | -------------------------------------------------------------------------------- /Demo Assets/FunnyCapsuleMan/Material.001.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ed92721b2585ed42b35ea8ae1e91914 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Assets/FunnyCapsuleMan/Material.002.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Material.002 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 2800000, guid: 56ff9596233f09845bc188c4f1bb3177, type: 3} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 1, g: 1, b: 1, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 0} 78 | -------------------------------------------------------------------------------- /Demo Assets/FunnyCapsuleMan/Material.002.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b44eb322dab752345b544ee0bacae48d 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Assets/FunnyCapsuleMan/Sus.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &1145710407662513288 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 1145710407662874792} 12 | m_Layer: 0 13 | m_Name: Tophat 14 | m_TagString: Untagged 15 | m_Icon: {fileID: 0} 16 | m_NavMeshLayer: 0 17 | m_StaticEditorFlags: 0 18 | m_IsActive: 1 19 | --- !u!4 &1145710407662874792 20 | Transform: 21 | m_ObjectHideFlags: 0 22 | m_CorrespondingSourceObject: {fileID: 0} 23 | m_PrefabInstance: {fileID: 0} 24 | m_PrefabAsset: {fileID: 0} 25 | m_GameObject: {fileID: 1145710407662513288} 26 | m_LocalRotation: {x: -0.10819393, y: 0.20506203, z: 0.12786368, w: 0.9643104} 27 | m_LocalPosition: {x: -0.191, y: 2.017, z: -0.079} 28 | m_LocalScale: {x: 0.1781525, y: 0.1781525, z: 0.1781525} 29 | m_Children: 30 | - {fileID: 1145710407662874796} 31 | m_Father: {fileID: 179991794714417519} 32 | m_RootOrder: 1 33 | m_LocalEulerAnglesHint: {x: -15.136001, y: 22.398, z: 12.093} 34 | --- !u!1 &1145710407662513292 35 | GameObject: 36 | m_ObjectHideFlags: 0 37 | m_CorrespondingSourceObject: {fileID: 0} 38 | m_PrefabInstance: {fileID: 0} 39 | m_PrefabAsset: {fileID: 0} 40 | serializedVersion: 6 41 | m_Component: 42 | - component: {fileID: 1145710407662874796} 43 | - component: {fileID: 1145710407659483278} 44 | - component: {fileID: 1145710407660581454} 45 | m_Layer: 0 46 | m_Name: Cylinder 47 | m_TagString: Untagged 48 | m_Icon: {fileID: 0} 49 | m_NavMeshLayer: 0 50 | m_StaticEditorFlags: 0 51 | m_IsActive: 1 52 | --- !u!4 &1145710407662874796 53 | Transform: 54 | m_ObjectHideFlags: 0 55 | m_CorrespondingSourceObject: {fileID: 0} 56 | m_PrefabInstance: {fileID: 0} 57 | m_PrefabAsset: {fileID: 0} 58 | m_GameObject: {fileID: 1145710407662513292} 59 | m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071067} 60 | m_LocalPosition: {x: -0, y: 0, z: 0} 61 | m_LocalScale: {x: 108.278366, y: 121.98422, z: 100} 62 | m_Children: [] 63 | m_Father: {fileID: 1145710407662874792} 64 | m_RootOrder: 0 65 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 66 | --- !u!33 &1145710407659483278 67 | MeshFilter: 68 | m_ObjectHideFlags: 0 69 | m_CorrespondingSourceObject: {fileID: 0} 70 | m_PrefabInstance: {fileID: 0} 71 | m_PrefabAsset: {fileID: 0} 72 | m_GameObject: {fileID: 1145710407662513292} 73 | m_Mesh: {fileID: 4300000, guid: 107aa2057cc9d764e8d225c7f5dac171, type: 3} 74 | --- !u!23 &1145710407660581454 75 | MeshRenderer: 76 | m_ObjectHideFlags: 0 77 | m_CorrespondingSourceObject: {fileID: 0} 78 | m_PrefabInstance: {fileID: 0} 79 | m_PrefabAsset: {fileID: 0} 80 | m_GameObject: {fileID: 1145710407662513292} 81 | m_Enabled: 1 82 | m_CastShadows: 1 83 | m_ReceiveShadows: 1 84 | m_DynamicOccludee: 1 85 | m_MotionVectors: 1 86 | m_LightProbeUsage: 1 87 | m_ReflectionProbeUsage: 1 88 | m_RenderingLayerMask: 1 89 | m_RendererPriority: 0 90 | m_Materials: 91 | - {fileID: 2100000, guid: 3ed92721b2585ed42b35ea8ae1e91914, type: 2} 92 | m_StaticBatchInfo: 93 | firstSubMesh: 0 94 | subMeshCount: 0 95 | m_StaticBatchRoot: {fileID: 0} 96 | m_ProbeAnchor: {fileID: 0} 97 | m_LightProbeVolumeOverride: {fileID: 0} 98 | m_ScaleInLightmap: 1 99 | m_PreserveUVs: 0 100 | m_IgnoreNormalsForChartDetection: 0 101 | m_ImportantGI: 0 102 | m_StitchLightmapSeams: 0 103 | m_SelectedEditorRenderState: 3 104 | m_MinimumChartSize: 4 105 | m_AutoUVMaxDistance: 0.5 106 | m_AutoUVMaxAngle: 89 107 | m_LightmapParameters: {fileID: 0} 108 | m_SortingLayerID: 0 109 | m_SortingLayer: 0 110 | m_SortingOrder: 0 111 | --- !u!1 &2076186175004764029 112 | GameObject: 113 | m_ObjectHideFlags: 0 114 | m_CorrespondingSourceObject: {fileID: 0} 115 | m_PrefabInstance: {fileID: 0} 116 | m_PrefabAsset: {fileID: 0} 117 | serializedVersion: 6 118 | m_Component: 119 | - component: {fileID: 2076186175004764030} 120 | - component: {fileID: 2076186175004764024} 121 | - component: {fileID: 2076186175004764031} 122 | m_Layer: 0 123 | m_Name: Capsule 124 | m_TagString: Untagged 125 | m_Icon: {fileID: 0} 126 | m_NavMeshLayer: 0 127 | m_StaticEditorFlags: 0 128 | m_IsActive: 1 129 | --- !u!4 &2076186175004764030 130 | Transform: 131 | m_ObjectHideFlags: 0 132 | m_CorrespondingSourceObject: {fileID: 0} 133 | m_PrefabInstance: {fileID: 0} 134 | m_PrefabAsset: {fileID: 0} 135 | m_GameObject: {fileID: 2076186175004764029} 136 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 137 | m_LocalPosition: {x: 0, y: 0.947, z: 0} 138 | m_LocalScale: {x: 1, y: 1, z: 1} 139 | m_Children: [] 140 | m_Father: {fileID: 179991794714417519} 141 | m_RootOrder: 0 142 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 143 | --- !u!33 &2076186175004764024 144 | MeshFilter: 145 | m_ObjectHideFlags: 0 146 | m_CorrespondingSourceObject: {fileID: 0} 147 | m_PrefabInstance: {fileID: 0} 148 | m_PrefabAsset: {fileID: 0} 149 | m_GameObject: {fileID: 2076186175004764029} 150 | m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} 151 | --- !u!23 &2076186175004764031 152 | MeshRenderer: 153 | m_ObjectHideFlags: 0 154 | m_CorrespondingSourceObject: {fileID: 0} 155 | m_PrefabInstance: {fileID: 0} 156 | m_PrefabAsset: {fileID: 0} 157 | m_GameObject: {fileID: 2076186175004764029} 158 | m_Enabled: 1 159 | m_CastShadows: 1 160 | m_ReceiveShadows: 1 161 | m_DynamicOccludee: 1 162 | m_MotionVectors: 1 163 | m_LightProbeUsage: 1 164 | m_ReflectionProbeUsage: 1 165 | m_RenderingLayerMask: 1 166 | m_RendererPriority: 0 167 | m_Materials: 168 | - {fileID: 2100000, guid: cd07d084aa018ed4b908b34318e38512, type: 2} 169 | m_StaticBatchInfo: 170 | firstSubMesh: 0 171 | subMeshCount: 0 172 | m_StaticBatchRoot: {fileID: 0} 173 | m_ProbeAnchor: {fileID: 0} 174 | m_LightProbeVolumeOverride: {fileID: 0} 175 | m_ScaleInLightmap: 1 176 | m_PreserveUVs: 0 177 | m_IgnoreNormalsForChartDetection: 0 178 | m_ImportantGI: 0 179 | m_StitchLightmapSeams: 0 180 | m_SelectedEditorRenderState: 3 181 | m_MinimumChartSize: 4 182 | m_AutoUVMaxDistance: 0.5 183 | m_AutoUVMaxAngle: 89 184 | m_LightmapParameters: {fileID: 0} 185 | m_SortingLayerID: 0 186 | m_SortingLayer: 0 187 | m_SortingOrder: 0 188 | --- !u!1 &5941912245416232237 189 | GameObject: 190 | m_ObjectHideFlags: 0 191 | m_CorrespondingSourceObject: {fileID: 0} 192 | m_PrefabInstance: {fileID: 0} 193 | m_PrefabAsset: {fileID: 0} 194 | serializedVersion: 6 195 | m_Component: 196 | - component: {fileID: 179991794714417519} 197 | m_Layer: 0 198 | m_Name: Sus 199 | m_TagString: Untagged 200 | m_Icon: {fileID: 0} 201 | m_NavMeshLayer: 0 202 | m_StaticEditorFlags: 0 203 | m_IsActive: 1 204 | --- !u!4 &179991794714417519 205 | Transform: 206 | m_ObjectHideFlags: 0 207 | m_CorrespondingSourceObject: {fileID: 0} 208 | m_PrefabInstance: {fileID: 0} 209 | m_PrefabAsset: {fileID: 0} 210 | m_GameObject: {fileID: 5941912245416232237} 211 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 212 | m_LocalPosition: {x: 0, y: 0, z: 0} 213 | m_LocalScale: {x: 1, y: 1, z: 1} 214 | m_Children: 215 | - {fileID: 2076186175004764030} 216 | - {fileID: 1145710407662874792} 217 | - {fileID: 7699705180325472610} 218 | m_Father: {fileID: 0} 219 | m_RootOrder: 0 220 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 221 | --- !u!1 &6836637553793972234 222 | GameObject: 223 | m_ObjectHideFlags: 0 224 | m_CorrespondingSourceObject: {fileID: 0} 225 | m_PrefabInstance: {fileID: 0} 226 | m_PrefabAsset: {fileID: 0} 227 | serializedVersion: 6 228 | m_Component: 229 | - component: {fileID: 7699705180325472610} 230 | - component: {fileID: 5683379850557077093} 231 | - component: {fileID: 53870191346407467} 232 | m_Layer: 0 233 | m_Name: Capsule (1) 234 | m_TagString: Untagged 235 | m_Icon: {fileID: 0} 236 | m_NavMeshLayer: 0 237 | m_StaticEditorFlags: 0 238 | m_IsActive: 1 239 | --- !u!4 &7699705180325472610 240 | Transform: 241 | m_ObjectHideFlags: 0 242 | m_CorrespondingSourceObject: {fileID: 0} 243 | m_PrefabInstance: {fileID: 0} 244 | m_PrefabAsset: {fileID: 0} 245 | m_GameObject: {fileID: 6836637553793972234} 246 | m_LocalRotation: {x: 0.7071057, y: 0.000000029802319, z: -0.000000029802319, w: 0.70710796} 247 | m_LocalPosition: {x: 0, y: 1.419, z: 0.285} 248 | m_LocalScale: {x: 0.56009, y: 0.2976778, z: 0.45427} 249 | m_Children: [] 250 | m_Father: {fileID: 179991794714417519} 251 | m_RootOrder: 2 252 | m_LocalEulerAnglesHint: {x: 90.00001, y: 0, z: 0} 253 | --- !u!33 &5683379850557077093 254 | MeshFilter: 255 | m_ObjectHideFlags: 0 256 | m_CorrespondingSourceObject: {fileID: 0} 257 | m_PrefabInstance: {fileID: 0} 258 | m_PrefabAsset: {fileID: 0} 259 | m_GameObject: {fileID: 6836637553793972234} 260 | m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} 261 | --- !u!23 &53870191346407467 262 | MeshRenderer: 263 | m_ObjectHideFlags: 0 264 | m_CorrespondingSourceObject: {fileID: 0} 265 | m_PrefabInstance: {fileID: 0} 266 | m_PrefabAsset: {fileID: 0} 267 | m_GameObject: {fileID: 6836637553793972234} 268 | m_Enabled: 1 269 | m_CastShadows: 1 270 | m_ReceiveShadows: 1 271 | m_DynamicOccludee: 1 272 | m_MotionVectors: 1 273 | m_LightProbeUsage: 1 274 | m_ReflectionProbeUsage: 1 275 | m_RenderingLayerMask: 1 276 | m_RendererPriority: 0 277 | m_Materials: 278 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} 279 | m_StaticBatchInfo: 280 | firstSubMesh: 0 281 | subMeshCount: 0 282 | m_StaticBatchRoot: {fileID: 0} 283 | m_ProbeAnchor: {fileID: 0} 284 | m_LightProbeVolumeOverride: {fileID: 0} 285 | m_ScaleInLightmap: 1 286 | m_PreserveUVs: 0 287 | m_IgnoreNormalsForChartDetection: 0 288 | m_ImportantGI: 0 289 | m_StitchLightmapSeams: 0 290 | m_SelectedEditorRenderState: 3 291 | m_MinimumChartSize: 4 292 | m_AutoUVMaxDistance: 0.5 293 | m_AutoUVMaxAngle: 89 294 | m_LightmapParameters: {fileID: 0} 295 | m_SortingLayerID: 0 296 | m_SortingLayer: 0 297 | m_SortingOrder: 0 298 | -------------------------------------------------------------------------------- /Demo Assets/FunnyCapsuleMan/Sus.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9dbef603cab2f6241a7f6b572a0fa8a1 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Demo Assets/FunnyCapsuleMan/Tophat.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Centauri2442/SimpleAI/1dbb5d928779c8f2eecc536bec79a8346c970d91/Demo Assets/FunnyCapsuleMan/Tophat.fbx -------------------------------------------------------------------------------- /Demo Assets/FunnyCapsuleMan/Tophat.fbx.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 107aa2057cc9d764e8d225c7f5dac171 3 | ModelImporter: 4 | serializedVersion: 23 5 | fileIDToRecycleName: 6 | 100000: Camera 7 | 100002: Cylinder 8 | 100004: Lamp 9 | 100006: //RootNode 10 | 400000: Camera 11 | 400002: Cylinder 12 | 400004: Lamp 13 | 400006: //RootNode 14 | 2000000: Camera 15 | 2100000: Material.001 16 | 2300000: Cylinder 17 | 3300000: Cylinder 18 | 4300000: Cylinder 19 | 10800000: Lamp 20 | externalObjects: 21 | - first: 22 | type: UnityEngine:Material 23 | assembly: UnityEngine.CoreModule 24 | name: Material.001 25 | second: {fileID: 2100000, guid: 3ed92721b2585ed42b35ea8ae1e91914, type: 2} 26 | materials: 27 | importMaterials: 1 28 | materialName: 0 29 | materialSearch: 1 30 | materialLocation: 1 31 | animations: 32 | legacyGenerateAnimations: 4 33 | bakeSimulation: 0 34 | resampleCurves: 1 35 | optimizeGameObjects: 0 36 | motionNodeName: 37 | rigImportErrors: 38 | rigImportWarnings: 39 | animationImportErrors: 40 | animationImportWarnings: 41 | animationRetargetingWarnings: 42 | animationDoRetargetingWarnings: 0 43 | importAnimatedCustomProperties: 0 44 | importConstraints: 0 45 | animationCompression: 1 46 | animationRotationError: 0.5 47 | animationPositionError: 0.5 48 | animationScaleError: 0.5 49 | animationWrapMode: 0 50 | extraExposedTransformPaths: [] 51 | extraUserProperties: [] 52 | clipAnimations: [] 53 | isReadable: 1 54 | meshes: 55 | lODScreenPercentages: [] 56 | globalScale: 1 57 | meshCompression: 0 58 | addColliders: 0 59 | useSRGBMaterialColor: 1 60 | importVisibility: 1 61 | importBlendShapes: 1 62 | importCameras: 1 63 | importLights: 1 64 | swapUVChannels: 0 65 | generateSecondaryUV: 0 66 | useFileUnits: 1 67 | optimizeMeshForGPU: 1 68 | keepQuads: 0 69 | weldVertices: 1 70 | preserveHierarchy: 0 71 | indexFormat: 0 72 | secondaryUVAngleDistortion: 8 73 | secondaryUVAreaDistortion: 15.000001 74 | secondaryUVHardAngle: 88 75 | secondaryUVPackMargin: 4 76 | useFileScale: 1 77 | previousCalculatedGlobalScale: 1 78 | hasPreviousCalculatedGlobalScale: 0 79 | tangentSpace: 80 | normalSmoothAngle: 60 81 | normalImportMode: 0 82 | tangentImportMode: 3 83 | normalCalculationMode: 4 84 | legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 85 | blendShapeNormalImportMode: 1 86 | normalSmoothingSource: 0 87 | importAnimation: 1 88 | copyAvatar: 0 89 | humanDescription: 90 | serializedVersion: 2 91 | human: [] 92 | skeleton: [] 93 | armTwist: 0.5 94 | foreArmTwist: 0.5 95 | upperLegTwist: 0.5 96 | legTwist: 0.5 97 | armStretch: 0.05 98 | legStretch: 0.05 99 | feetSpacing: 0 100 | rootMotionBoneName: 101 | hasTranslationDoF: 0 102 | hasExtraRoot: 0 103 | skeletonHasParents: 1 104 | lastHumanDescriptionAvatarSource: {instanceID: 0} 105 | animationType: 0 106 | humanoidOversampling: 1 107 | additionalBone: 0 108 | userData: 109 | assetBundleName: 110 | assetBundleVariant: 111 | -------------------------------------------------------------------------------- /Demo Assets/FunnyCapsuleMan/cane.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Centauri2442/SimpleAI/1dbb5d928779c8f2eecc536bec79a8346c970d91/Demo Assets/FunnyCapsuleMan/cane.fbx -------------------------------------------------------------------------------- /Demo Assets/FunnyCapsuleMan/cane.fbx.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 46aec9ee49c04b840b010226e99e6c38 3 | ModelImporter: 4 | serializedVersion: 23 5 | fileIDToRecycleName: 6 | 100000: //RootNode 7 | 400000: //RootNode 8 | 2100000: Material.001 9 | 2300000: //RootNode 10 | 3300000: //RootNode 11 | 4300000: Cylinder 12 | externalObjects: 13 | - first: 14 | type: UnityEngine:Material 15 | assembly: UnityEngine.CoreModule 16 | name: Material.001 17 | second: {fileID: 2100000, guid: b44eb322dab752345b544ee0bacae48d, type: 2} 18 | materials: 19 | importMaterials: 1 20 | materialName: 0 21 | materialSearch: 1 22 | materialLocation: 1 23 | animations: 24 | legacyGenerateAnimations: 4 25 | bakeSimulation: 0 26 | resampleCurves: 1 27 | optimizeGameObjects: 0 28 | motionNodeName: 29 | rigImportErrors: 30 | rigImportWarnings: 31 | animationImportErrors: 32 | animationImportWarnings: 33 | animationRetargetingWarnings: 34 | animationDoRetargetingWarnings: 0 35 | importAnimatedCustomProperties: 0 36 | importConstraints: 0 37 | animationCompression: 1 38 | animationRotationError: 0.5 39 | animationPositionError: 0.5 40 | animationScaleError: 0.5 41 | animationWrapMode: 0 42 | extraExposedTransformPaths: [] 43 | extraUserProperties: [] 44 | clipAnimations: [] 45 | isReadable: 1 46 | meshes: 47 | lODScreenPercentages: [] 48 | globalScale: 1 49 | meshCompression: 0 50 | addColliders: 0 51 | useSRGBMaterialColor: 1 52 | importVisibility: 1 53 | importBlendShapes: 1 54 | importCameras: 1 55 | importLights: 1 56 | swapUVChannels: 0 57 | generateSecondaryUV: 0 58 | useFileUnits: 1 59 | optimizeMeshForGPU: 1 60 | keepQuads: 0 61 | weldVertices: 1 62 | preserveHierarchy: 0 63 | indexFormat: 0 64 | secondaryUVAngleDistortion: 8 65 | secondaryUVAreaDistortion: 15.000001 66 | secondaryUVHardAngle: 88 67 | secondaryUVPackMargin: 4 68 | useFileScale: 1 69 | previousCalculatedGlobalScale: 1 70 | hasPreviousCalculatedGlobalScale: 0 71 | tangentSpace: 72 | normalSmoothAngle: 60 73 | normalImportMode: 0 74 | tangentImportMode: 3 75 | normalCalculationMode: 4 76 | legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 77 | blendShapeNormalImportMode: 1 78 | normalSmoothingSource: 0 79 | importAnimation: 1 80 | copyAvatar: 0 81 | humanDescription: 82 | serializedVersion: 2 83 | human: [] 84 | skeleton: [] 85 | armTwist: 0.5 86 | foreArmTwist: 0.5 87 | upperLegTwist: 0.5 88 | legTwist: 0.5 89 | armStretch: 0.05 90 | legStretch: 0.05 91 | feetSpacing: 0 92 | rootMotionBoneName: 93 | hasTranslationDoF: 0 94 | hasExtraRoot: 0 95 | skeletonHasParents: 1 96 | lastHumanDescriptionAvatarSource: {instanceID: 0} 97 | animationType: 0 98 | humanoidOversampling: 1 99 | additionalBone: 0 100 | userData: 101 | assetBundleName: 102 | assetBundleVariant: 103 | -------------------------------------------------------------------------------- /Demo Assets/FunnyCapsuleMan/cane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Centauri2442/SimpleAI/1dbb5d928779c8f2eecc536bec79a8346c970d91/Demo Assets/FunnyCapsuleMan/cane.png -------------------------------------------------------------------------------- /Demo Assets/FunnyCapsuleMan/cane.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 56ff9596233f09845bc188c4f1bb3177 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 9 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Demo Assets/FunnyCapsuleMan/hat_map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Centauri2442/SimpleAI/1dbb5d928779c8f2eecc536bec79a8346c970d91/Demo Assets/FunnyCapsuleMan/hat_map.png -------------------------------------------------------------------------------- /Demo Assets/FunnyCapsuleMan/hat_map.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 13d96dc68bdaba44cad3c0c3a767f850 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 9 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Demo Assets/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8ebcd944da0a0f44d82ebfa0dafc6783 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Assets/Materials/Brown.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Brown 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | - _SpecGlossMap: 59 | m_Texture: {fileID: 0} 60 | m_Scale: {x: 1, y: 1} 61 | m_Offset: {x: 0, y: 0} 62 | m_Floats: 63 | - _BumpScale: 1 64 | - _Cutoff: 0.5 65 | - _DetailNormalMapScale: 1 66 | - _DstBlend: 0 67 | - _GlossMapScale: 1 68 | - _Glossiness: 0 69 | - _GlossyReflections: 1 70 | - _Metallic: 0 71 | - _Mode: 0 72 | - _OcclusionStrength: 1 73 | - _Parallax: 0.02 74 | - _SmoothnessTextureChannel: 0 75 | - _SpecularHighlights: 1 76 | - _SrcBlend: 1 77 | - _UVSec: 0 78 | - _ZWrite: 1 79 | m_Colors: 80 | - _Color: {r: 0.4433962, g: 0.24681269, b: 0, a: 1} 81 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 82 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 83 | -------------------------------------------------------------------------------- /Demo Assets/Materials/Brown.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: df17aae8c7a289d46bbfcf7c08dad5d6 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Assets/Materials/Flor.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Flor 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | - _SpecGlossMap: 59 | m_Texture: {fileID: 0} 60 | m_Scale: {x: 1, y: 1} 61 | m_Offset: {x: 0, y: 0} 62 | m_Floats: 63 | - _BumpScale: 1 64 | - _Cutoff: 0.5 65 | - _DetailNormalMapScale: 1 66 | - _DstBlend: 0 67 | - _GlossMapScale: 1 68 | - _Glossiness: 0 69 | - _GlossyReflections: 1 70 | - _Metallic: 0 71 | - _Mode: 0 72 | - _OcclusionStrength: 1 73 | - _Parallax: 0.02 74 | - _SmoothnessTextureChannel: 0 75 | - _SpecularHighlights: 1 76 | - _SrcBlend: 1 77 | - _UVSec: 0 78 | - _ZWrite: 1 79 | m_Colors: 80 | - _Color: {r: 0, g: 0, b: 0, a: 1} 81 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 82 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 83 | -------------------------------------------------------------------------------- /Demo Assets/Materials/Flor.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1bd46d30cd4c9f546bcea9186e14ecbb 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Assets/Materials/Green LIT.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Green LIT 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: _EMISSION 13 | m_LightmapFlags: 1 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0, g: 1, b: 0.062781096, a: 1} 77 | - _EmissionColor: {r: 0.3529412, g: 2, b: 0, a: 1} 78 | -------------------------------------------------------------------------------- /Demo Assets/Materials/Green LIT.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4f21495d1e1409847bb0aaf10632334b 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Assets/Materials/Green.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Green 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0, g: 1, b: 0.062781096, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | -------------------------------------------------------------------------------- /Demo Assets/Materials/Green.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6d0fc88eabd3c00449a0970ab083060e 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Assets/Materials/Red LIT.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Red LIT 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: _EMISSION 13 | m_LightmapFlags: 1 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 1, g: 0, b: 0, a: 1} 77 | - _EmissionColor: {r: 2, g: 0, b: 0, a: 1} 78 | -------------------------------------------------------------------------------- /Demo Assets/Materials/Red LIT.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 822640ae65bed9a42b10dcd4bc1ab3eb 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Assets/Materials/Red.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Red 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 1, g: 0, b: 0, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | -------------------------------------------------------------------------------- /Demo Assets/Materials/Red.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cd07d084aa018ed4b908b34318e38512 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Scene.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 41a9a86613425cc4da415a90dd5c584a 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f2c5d79187eff6d4daa3fd7f55ba017c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3b4500339b34b5f4595d7d202e495a38 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene/LightingData.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Centauri2442/SimpleAI/1dbb5d928779c8f2eecc536bec79a8346c970d91/Demo Scene/TLX AI Demo Scene/LightingData.asset -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene/LightingData.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0063e000e5ff2664ab496e4351e79300 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 112000000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene/Lightmap-0_comp_dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Centauri2442/SimpleAI/1dbb5d928779c8f2eecc536bec79a8346c970d91/Demo Scene/TLX AI Demo Scene/Lightmap-0_comp_dir.png -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene/Lightmap-0_comp_dir.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 699de667ae801ea4e9839add167dba6f 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 9 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 0 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 1 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 1 35 | aniso: 3 36 | mipBias: 0 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 2 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene/Lightmap-0_comp_light.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Centauri2442/SimpleAI/1dbb5d928779c8f2eecc536bec79a8346c970d91/Demo Scene/TLX AI Demo Scene/Lightmap-0_comp_light.exr -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene/Lightmap-0_comp_light.exr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 61aef04d13e691840af49dc75d4f9cc3 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 9 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | streamingMipmaps: 1 25 | streamingMipmapsPriority: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 1 35 | aniso: 3 36 | mipBias: 0 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 0 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 6 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 2 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 2 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | spriteSheet: 73 | serializedVersion: 2 74 | sprites: [] 75 | outline: [] 76 | physicsShape: [] 77 | bones: [] 78 | spriteID: 79 | vertices: [] 80 | indices: 81 | edges: [] 82 | weights: [] 83 | spritePackingTag: 84 | pSDRemoveMatte: 0 85 | pSDShowRemoveMatteOption: 0 86 | userData: 87 | assetBundleName: 88 | assetBundleVariant: 89 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene/NavMesh.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Centauri2442/SimpleAI/1dbb5d928779c8f2eecc536bec79a8346c970d91/Demo Scene/TLX AI Demo Scene/NavMesh.asset -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene/NavMesh.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b52c99c222b34744ea164bfb40124141 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 23800000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene/ReflectionProbe-0.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Centauri2442/SimpleAI/1dbb5d928779c8f2eecc536bec79a8346c970d91/Demo Scene/TLX AI Demo Scene/ReflectionProbe-0.exr -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene/ReflectionProbe-0.exr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5af88632632bcea48acb95821a3689c5 3 | TextureImporter: 4 | fileIDToRecycleName: 5 | 8900000: generatedCubemap 6 | externalObjects: {} 7 | serializedVersion: 9 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapsPreserveCoverage: 0 16 | alphaTestReferenceValue: 0.5 17 | mipMapFadeDistanceStart: 1 18 | mipMapFadeDistanceEnd: 3 19 | bumpmap: 20 | convertToNormalMap: 0 21 | externalNormalMap: 0 22 | heightScale: 0.25 23 | normalMapFilter: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 1 30 | seamlessCubemap: 1 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: 2 36 | aniso: 0 37 | mipBias: 0 38 | wrapU: 1 39 | wrapV: 1 40 | wrapW: 1 41 | nPOTScale: 1 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 0 54 | spriteTessellationDetail: -1 55 | textureType: 0 56 | textureShape: 2 57 | singleChannelComponent: 0 58 | maxTextureSizeSet: 0 59 | compressionQualitySet: 0 60 | textureFormatSet: 0 61 | platformSettings: 62 | - serializedVersion: 2 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 2048 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 100 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | spriteSheet: 74 | serializedVersion: 2 75 | sprites: [] 76 | outline: [] 77 | physicsShape: [] 78 | bones: [] 79 | spriteID: 80 | vertices: [] 81 | indices: 82 | edges: [] 83 | weights: [] 84 | spritePackingTag: 85 | pSDRemoveMatte: 0 86 | pSDShowRemoveMatteOption: 0 87 | userData: 88 | assetBundleName: 89 | assetBundleVariant: 90 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene/ReflectionProbe-1.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Centauri2442/SimpleAI/1dbb5d928779c8f2eecc536bec79a8346c970d91/Demo Scene/TLX AI Demo Scene/ReflectionProbe-1.exr -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene/ReflectionProbe-1.exr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0a5a63a1ed264614ba931fea271586d6 3 | TextureImporter: 4 | fileIDToRecycleName: 5 | 8900000: generatedCubemap 6 | externalObjects: {} 7 | serializedVersion: 9 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapsPreserveCoverage: 0 16 | alphaTestReferenceValue: 0.5 17 | mipMapFadeDistanceStart: 1 18 | mipMapFadeDistanceEnd: 3 19 | bumpmap: 20 | convertToNormalMap: 0 21 | externalNormalMap: 0 22 | heightScale: 0.25 23 | normalMapFilter: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | grayScaleToAlpha: 0 28 | generateCubemap: 6 29 | cubemapConvolution: 1 30 | seamlessCubemap: 1 31 | textureFormat: 1 32 | maxTextureSize: 2048 33 | textureSettings: 34 | serializedVersion: 2 35 | filterMode: 2 36 | aniso: 0 37 | mipBias: 0 38 | wrapU: 1 39 | wrapV: 1 40 | wrapW: 1 41 | nPOTScale: 1 42 | lightmap: 0 43 | compressionQuality: 50 44 | spriteMode: 0 45 | spriteExtrude: 1 46 | spriteMeshType: 1 47 | alignment: 0 48 | spritePivot: {x: 0.5, y: 0.5} 49 | spritePixelsToUnits: 100 50 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 51 | spriteGenerateFallbackPhysicsShape: 1 52 | alphaUsage: 1 53 | alphaIsTransparency: 0 54 | spriteTessellationDetail: -1 55 | textureType: 0 56 | textureShape: 2 57 | singleChannelComponent: 0 58 | maxTextureSizeSet: 0 59 | compressionQualitySet: 0 60 | textureFormatSet: 0 61 | platformSettings: 62 | - serializedVersion: 2 63 | buildTarget: DefaultTexturePlatform 64 | maxTextureSize: 2048 65 | resizeAlgorithm: 0 66 | textureFormat: -1 67 | textureCompression: 1 68 | compressionQuality: 100 69 | crunchedCompression: 0 70 | allowsAlphaSplitting: 0 71 | overridden: 0 72 | androidETC2FallbackOverride: 0 73 | spriteSheet: 74 | serializedVersion: 2 75 | sprites: [] 76 | outline: [] 77 | physicsShape: [] 78 | bones: [] 79 | spriteID: 80 | vertices: [] 81 | indices: 82 | edges: [] 83 | weights: [] 84 | spritePackingTag: 85 | pSDRemoveMatte: 0 86 | pSDShowRemoveMatteOption: 0 87 | userData: 88 | assetBundleName: 89 | assetBundleVariant: 90 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5e7954d190d45a046963c8e95922dac4 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/Basic Player Chasing AI Udon C# Program Asset.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} 13 | m_Name: Basic Player Chasing AI Udon C# Program Asset 14 | m_EditorClassIdentifier: 15 | serializedUdonProgramAsset: {fileID: 11400000, guid: b502295093344a64a8a4e43995171c78, 16 | type: 2} 17 | udonAssembly: 18 | assemblyError: 19 | sourceCsScript: {fileID: 11500000, guid: d2c2313bc7432d84c8e0980f78044133, type: 3} 20 | behaviourSyncMode: 0 21 | behaviourIDHeapVarName: __refl_const_intnl_udonTypeID 22 | compileErrors: [] 23 | hasInteractEvent: 0 24 | serializationData: 25 | SerializedFormat: 2 26 | SerializedBytes: 27 | ReferencedUnityObjects: [] 28 | SerializedBytesString: 29 | Prefab: {fileID: 0} 30 | PrefabModificationsReferencedUnityObjects: [] 31 | PrefabModifications: [] 32 | SerializationNodes: 33 | - Name: fieldDefinitions 34 | Entry: 7 35 | Data: 0|System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[UdonSharp.Compiler.FieldDefinition, 36 | UdonSharp.Editor]], mscorlib 37 | - Name: comparer 38 | Entry: 7 39 | Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.String, 40 | mscorlib]], mscorlib 41 | - Name: 42 | Entry: 8 43 | Data: 44 | - Name: 45 | Entry: 12 46 | Data: 2 47 | - Name: 48 | Entry: 7 49 | Data: 50 | - Name: $k 51 | Entry: 1 52 | Data: Agent 53 | - Name: $v 54 | Entry: 7 55 | Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor 56 | - Name: fieldSymbol 57 | Entry: 7 58 | Data: 3|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor 59 | - Name: internalType 60 | Entry: 7 61 | Data: 4|System.RuntimeType, mscorlib 62 | - Name: 63 | Entry: 1 64 | Data: UnityEngine.AI.NavMeshAgent, UnityEngine.AIModule 65 | - Name: 66 | Entry: 8 67 | Data: 68 | - Name: declarationType 69 | Entry: 3 70 | Data: 2 71 | - Name: syncMode 72 | Entry: 3 73 | Data: 0 74 | - Name: symbolResolvedTypeName 75 | Entry: 1 76 | Data: UnityEngineAINavMeshAgent 77 | - Name: symbolOriginalName 78 | Entry: 1 79 | Data: Agent 80 | - Name: symbolUniqueName 81 | Entry: 1 82 | Data: Agent 83 | - Name: symbolDefaultValue 84 | Entry: 6 85 | Data: 86 | - Name: 87 | Entry: 8 88 | Data: 89 | - Name: fieldAttributes 90 | Entry: 7 91 | Data: 5|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib 92 | - Name: 93 | Entry: 12 94 | Data: 2 95 | - Name: 96 | Entry: 7 97 | Data: 6|UnityEngine.HeaderAttribute, UnityEngine.CoreModule 98 | - Name: header 99 | Entry: 1 100 | Data: Player-chasing AI! 101 | - Name: 102 | Entry: 8 103 | Data: 104 | - Name: 105 | Entry: 7 106 | Data: 7|UnityEngine.SpaceAttribute, UnityEngine.CoreModule 107 | - Name: height 108 | Entry: 4 109 | Data: 8 110 | - Name: 111 | Entry: 8 112 | Data: 113 | - Name: 114 | Entry: 13 115 | Data: 116 | - Name: 117 | Entry: 8 118 | Data: 119 | - Name: userBehaviourSource 120 | Entry: 6 121 | Data: 122 | - Name: 123 | Entry: 8 124 | Data: 125 | - Name: 126 | Entry: 8 127 | Data: 128 | - Name: 129 | Entry: 7 130 | Data: 131 | - Name: $k 132 | Entry: 1 133 | Data: TargetPlayer 134 | - Name: $v 135 | Entry: 7 136 | Data: 8|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor 137 | - Name: fieldSymbol 138 | Entry: 7 139 | Data: 9|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor 140 | - Name: internalType 141 | Entry: 7 142 | Data: 10|System.RuntimeType, mscorlib 143 | - Name: 144 | Entry: 1 145 | Data: VRC.SDKBase.VRCPlayerApi, VRCSDKBase 146 | - Name: 147 | Entry: 8 148 | Data: 149 | - Name: declarationType 150 | Entry: 3 151 | Data: 2 152 | - Name: syncMode 153 | Entry: 3 154 | Data: 0 155 | - Name: symbolResolvedTypeName 156 | Entry: 1 157 | Data: VRCSDKBaseVRCPlayerApi 158 | - Name: symbolOriginalName 159 | Entry: 1 160 | Data: TargetPlayer 161 | - Name: symbolUniqueName 162 | Entry: 1 163 | Data: TargetPlayer 164 | - Name: symbolDefaultValue 165 | Entry: 6 166 | Data: 167 | - Name: 168 | Entry: 8 169 | Data: 170 | - Name: fieldAttributes 171 | Entry: 7 172 | Data: 11|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib 173 | - Name: 174 | Entry: 12 175 | Data: 0 176 | - Name: 177 | Entry: 13 178 | Data: 179 | - Name: 180 | Entry: 8 181 | Data: 182 | - Name: userBehaviourSource 183 | Entry: 6 184 | Data: 185 | - Name: 186 | Entry: 8 187 | Data: 188 | - Name: 189 | Entry: 8 190 | Data: 191 | - Name: 192 | Entry: 13 193 | Data: 194 | - Name: 195 | Entry: 8 196 | Data: 197 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/Basic Player Chasing AI Udon C# Program Asset.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2611fcf76174f6749bc01299f833b0ea 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/Basic Synced AI Udon C# Program Asset.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a46c1f144dc02d640ba73dee4d07ac20 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/Basic Toggleable AI Udon C# Program Asset.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 51c06ab859e15404f92a901577f3cd93 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/Basic Wandering AI Udon C# Program Asset.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6409a90cb96f41842a6c3cb30d7cdcae 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/DoggoFollowToggle Udon C# Program Asset.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} 13 | m_Name: DoggoFollowToggle Udon C# Program Asset 14 | m_EditorClassIdentifier: 15 | serializedUdonProgramAsset: {fileID: 11400000, guid: 2da733b8f1509b2498590ce251e73477, 16 | type: 2} 17 | udonAssembly: 18 | assemblyError: 19 | sourceCsScript: {fileID: 11500000, guid: 5ec4aff81eb339a448a1212110dea5ed, type: 3} 20 | behaviourSyncMode: 0 21 | behaviourIDHeapVarName: __refl_const_intnl_udonTypeID 22 | compileErrors: [] 23 | hasInteractEvent: 1 24 | serializationData: 25 | SerializedFormat: 2 26 | SerializedBytes: 27 | ReferencedUnityObjects: 28 | - {fileID: 11500000, guid: aa9dc486339e0694091fb9d7693c0dec, type: 3} 29 | SerializedBytesString: 30 | Prefab: {fileID: 0} 31 | PrefabModificationsReferencedUnityObjects: [] 32 | PrefabModifications: [] 33 | SerializationNodes: 34 | - Name: fieldDefinitions 35 | Entry: 7 36 | Data: 0|System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[UdonSharp.Compiler.FieldDefinition, 37 | UdonSharp.Editor]], mscorlib 38 | - Name: comparer 39 | Entry: 7 40 | Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.String, 41 | mscorlib]], mscorlib 42 | - Name: 43 | Entry: 8 44 | Data: 45 | - Name: 46 | Entry: 12 47 | Data: 1 48 | - Name: 49 | Entry: 7 50 | Data: 51 | - Name: $k 52 | Entry: 1 53 | Data: AIController 54 | - Name: $v 55 | Entry: 7 56 | Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor 57 | - Name: fieldSymbol 58 | Entry: 7 59 | Data: 3|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor 60 | - Name: internalType 61 | Entry: 7 62 | Data: 4|System.RuntimeType, mscorlib 63 | - Name: 64 | Entry: 1 65 | Data: SimpleAI.BasicToggleableAI, Assembly-CSharp 66 | - Name: 67 | Entry: 8 68 | Data: 69 | - Name: declarationType 70 | Entry: 3 71 | Data: 1 72 | - Name: syncMode 73 | Entry: 3 74 | Data: 0 75 | - Name: symbolResolvedTypeName 76 | Entry: 1 77 | Data: VRCUdonUdonBehaviour 78 | - Name: symbolOriginalName 79 | Entry: 1 80 | Data: AIController 81 | - Name: symbolUniqueName 82 | Entry: 1 83 | Data: AIController 84 | - Name: symbolDefaultValue 85 | Entry: 6 86 | Data: 87 | - Name: 88 | Entry: 8 89 | Data: 90 | - Name: fieldAttributes 91 | Entry: 7 92 | Data: 5|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib 93 | - Name: 94 | Entry: 12 95 | Data: 2 96 | - Name: 97 | Entry: 7 98 | Data: 6|UnityEngine.HeaderAttribute, UnityEngine.CoreModule 99 | - Name: header 100 | Entry: 1 101 | Data: Follow Toggle 102 | - Name: 103 | Entry: 8 104 | Data: 105 | - Name: 106 | Entry: 7 107 | Data: 7|UnityEngine.TooltipAttribute, UnityEngine.CoreModule 108 | - Name: tooltip 109 | Entry: 1 110 | Data: The main controller for the target AI! 111 | - Name: 112 | Entry: 8 113 | Data: 114 | - Name: 115 | Entry: 13 116 | Data: 117 | - Name: 118 | Entry: 8 119 | Data: 120 | - Name: userBehaviourSource 121 | Entry: 10 122 | Data: 0 123 | - Name: 124 | Entry: 8 125 | Data: 126 | - Name: 127 | Entry: 8 128 | Data: 129 | - Name: 130 | Entry: 13 131 | Data: 132 | - Name: 133 | Entry: 8 134 | Data: 135 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/DoggoFollowToggle Udon C# Program Asset.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6a0d41c2dcfb1834aa5a1565d34eb64b 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/DoggoFollowToggleFetchAI Udon C# Program Asset.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} 13 | m_Name: DoggoFollowToggleFetchAI Udon C# Program Asset 14 | m_EditorClassIdentifier: 15 | serializedUdonProgramAsset: {fileID: 11400000, guid: 4df397c2d854256489f1fbb4c7975aca, 16 | type: 2} 17 | udonAssembly: 18 | assemblyError: 19 | sourceCsScript: {fileID: 11500000, guid: 8bf28a7303a9e7740bb2000a8ebc1d40, type: 3} 20 | behaviourSyncMode: 0 21 | behaviourIDHeapVarName: __refl_const_intnl_udonTypeID 22 | compileErrors: [] 23 | hasInteractEvent: 1 24 | serializationData: 25 | SerializedFormat: 2 26 | SerializedBytes: 27 | ReferencedUnityObjects: 28 | - {fileID: 11500000, guid: 3ba611656fef92c46a6c30fca6a9bb6c, type: 3} 29 | SerializedBytesString: 30 | Prefab: {fileID: 0} 31 | PrefabModificationsReferencedUnityObjects: [] 32 | PrefabModifications: [] 33 | SerializationNodes: 34 | - Name: fieldDefinitions 35 | Entry: 7 36 | Data: 0|System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[UdonSharp.Compiler.FieldDefinition, 37 | UdonSharp.Editor]], mscorlib 38 | - Name: comparer 39 | Entry: 7 40 | Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.String, 41 | mscorlib]], mscorlib 42 | - Name: 43 | Entry: 8 44 | Data: 45 | - Name: 46 | Entry: 12 47 | Data: 2 48 | - Name: 49 | Entry: 7 50 | Data: 51 | - Name: $k 52 | Entry: 1 53 | Data: NumOfStates 54 | - Name: $v 55 | Entry: 7 56 | Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor 57 | - Name: fieldSymbol 58 | Entry: 7 59 | Data: 3|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor 60 | - Name: internalType 61 | Entry: 7 62 | Data: 4|System.RuntimeType, mscorlib 63 | - Name: 64 | Entry: 1 65 | Data: System.Int32, mscorlib 66 | - Name: 67 | Entry: 8 68 | Data: 69 | - Name: declarationType 70 | Entry: 3 71 | Data: 1 72 | - Name: syncMode 73 | Entry: 3 74 | Data: 0 75 | - Name: symbolResolvedTypeName 76 | Entry: 1 77 | Data: SystemInt32 78 | - Name: symbolOriginalName 79 | Entry: 1 80 | Data: NumOfStates 81 | - Name: symbolUniqueName 82 | Entry: 1 83 | Data: NumOfStates 84 | - Name: symbolDefaultValue 85 | Entry: 6 86 | Data: 87 | - Name: 88 | Entry: 8 89 | Data: 90 | - Name: fieldAttributes 91 | Entry: 7 92 | Data: 5|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib 93 | - Name: 94 | Entry: 12 95 | Data: 2 96 | - Name: 97 | Entry: 7 98 | Data: 6|UnityEngine.HeaderAttribute, UnityEngine.CoreModule 99 | - Name: header 100 | Entry: 1 101 | Data: Follow Toggle! 102 | - Name: 103 | Entry: 8 104 | Data: 105 | - Name: 106 | Entry: 7 107 | Data: 7|UnityEngine.TooltipAttribute, UnityEngine.CoreModule 108 | - Name: tooltip 109 | Entry: 1 110 | Data: Number of states that can be toggled between! Don't include special states 111 | such as fetch states in this counter! 112 | - Name: 113 | Entry: 8 114 | Data: 115 | - Name: 116 | Entry: 13 117 | Data: 118 | - Name: 119 | Entry: 8 120 | Data: 121 | - Name: userBehaviourSource 122 | Entry: 6 123 | Data: 124 | - Name: 125 | Entry: 8 126 | Data: 127 | - Name: 128 | Entry: 8 129 | Data: 130 | - Name: 131 | Entry: 7 132 | Data: 133 | - Name: $k 134 | Entry: 1 135 | Data: AIController 136 | - Name: $v 137 | Entry: 7 138 | Data: 8|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor 139 | - Name: fieldSymbol 140 | Entry: 7 141 | Data: 9|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor 142 | - Name: internalType 143 | Entry: 7 144 | Data: 10|System.RuntimeType, mscorlib 145 | - Name: 146 | Entry: 1 147 | Data: SimpleAI.FetchAI, Assembly-CSharp 148 | - Name: 149 | Entry: 8 150 | Data: 151 | - Name: declarationType 152 | Entry: 3 153 | Data: 1 154 | - Name: syncMode 155 | Entry: 3 156 | Data: 0 157 | - Name: symbolResolvedTypeName 158 | Entry: 1 159 | Data: VRCUdonUdonBehaviour 160 | - Name: symbolOriginalName 161 | Entry: 1 162 | Data: AIController 163 | - Name: symbolUniqueName 164 | Entry: 1 165 | Data: AIController 166 | - Name: symbolDefaultValue 167 | Entry: 6 168 | Data: 169 | - Name: 170 | Entry: 8 171 | Data: 172 | - Name: fieldAttributes 173 | Entry: 7 174 | Data: 11|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib 175 | - Name: 176 | Entry: 12 177 | Data: 1 178 | - Name: 179 | Entry: 7 180 | Data: 12|UnityEngine.TooltipAttribute, UnityEngine.CoreModule 181 | - Name: tooltip 182 | Entry: 1 183 | Data: The main controller for the target AI! 184 | - Name: 185 | Entry: 8 186 | Data: 187 | - Name: 188 | Entry: 13 189 | Data: 190 | - Name: 191 | Entry: 8 192 | Data: 193 | - Name: userBehaviourSource 194 | Entry: 10 195 | Data: 0 196 | - Name: 197 | Entry: 8 198 | Data: 199 | - Name: 200 | Entry: 8 201 | Data: 202 | - Name: 203 | Entry: 13 204 | Data: 205 | - Name: 206 | Entry: 8 207 | Data: 208 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/DoggoFollowToggleFetchAI Udon C# Program Asset.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5d34bbcddf12f3a469a12d484adb4829 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/DoggoFollowToggleMultiState Udon C# Program Asset.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} 13 | m_Name: DoggoFollowToggleMultiState Udon C# Program Asset 14 | m_EditorClassIdentifier: 15 | serializedUdonProgramAsset: {fileID: 11400000, guid: dae2751cf809cdf4e954a1eb879edf53, 16 | type: 2} 17 | udonAssembly: 18 | assemblyError: 19 | sourceCsScript: {fileID: 11500000, guid: 2ddfd4e1a9325b44e9d1e29b9bb9d71d, type: 3} 20 | behaviourSyncMode: 0 21 | behaviourIDHeapVarName: __refl_const_intnl_udonTypeID 22 | compileErrors: [] 23 | hasInteractEvent: 1 24 | serializationData: 25 | SerializedFormat: 2 26 | SerializedBytes: 27 | ReferencedUnityObjects: 28 | - {fileID: 11500000, guid: 2b75020e3ff40ae48a32cd926848ad67, type: 3} 29 | SerializedBytesString: 30 | Prefab: {fileID: 0} 31 | PrefabModificationsReferencedUnityObjects: [] 32 | PrefabModifications: [] 33 | SerializationNodes: 34 | - Name: fieldDefinitions 35 | Entry: 7 36 | Data: 0|System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[UdonSharp.Compiler.FieldDefinition, 37 | UdonSharp.Editor]], mscorlib 38 | - Name: comparer 39 | Entry: 7 40 | Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.String, 41 | mscorlib]], mscorlib 42 | - Name: 43 | Entry: 8 44 | Data: 45 | - Name: 46 | Entry: 12 47 | Data: 2 48 | - Name: 49 | Entry: 7 50 | Data: 51 | - Name: $k 52 | Entry: 1 53 | Data: NumOfStates 54 | - Name: $v 55 | Entry: 7 56 | Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor 57 | - Name: fieldSymbol 58 | Entry: 7 59 | Data: 3|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor 60 | - Name: internalType 61 | Entry: 7 62 | Data: 4|System.RuntimeType, mscorlib 63 | - Name: 64 | Entry: 1 65 | Data: System.Int32, mscorlib 66 | - Name: 67 | Entry: 8 68 | Data: 69 | - Name: declarationType 70 | Entry: 3 71 | Data: 1 72 | - Name: syncMode 73 | Entry: 3 74 | Data: 0 75 | - Name: symbolResolvedTypeName 76 | Entry: 1 77 | Data: SystemInt32 78 | - Name: symbolOriginalName 79 | Entry: 1 80 | Data: NumOfStates 81 | - Name: symbolUniqueName 82 | Entry: 1 83 | Data: NumOfStates 84 | - Name: symbolDefaultValue 85 | Entry: 6 86 | Data: 87 | - Name: 88 | Entry: 8 89 | Data: 90 | - Name: fieldAttributes 91 | Entry: 7 92 | Data: 5|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib 93 | - Name: 94 | Entry: 12 95 | Data: 2 96 | - Name: 97 | Entry: 7 98 | Data: 6|UnityEngine.HeaderAttribute, UnityEngine.CoreModule 99 | - Name: header 100 | Entry: 1 101 | Data: Follow Toggle! 102 | - Name: 103 | Entry: 8 104 | Data: 105 | - Name: 106 | Entry: 7 107 | Data: 7|UnityEngine.TooltipAttribute, UnityEngine.CoreModule 108 | - Name: tooltip 109 | Entry: 1 110 | Data: Number of states that can be toggled between! Don't include special states 111 | such as fetch states in this counter! 112 | - Name: 113 | Entry: 8 114 | Data: 115 | - Name: 116 | Entry: 13 117 | Data: 118 | - Name: 119 | Entry: 8 120 | Data: 121 | - Name: userBehaviourSource 122 | Entry: 6 123 | Data: 124 | - Name: 125 | Entry: 8 126 | Data: 127 | - Name: 128 | Entry: 8 129 | Data: 130 | - Name: 131 | Entry: 7 132 | Data: 133 | - Name: $k 134 | Entry: 1 135 | Data: AIController 136 | - Name: $v 137 | Entry: 7 138 | Data: 8|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor 139 | - Name: fieldSymbol 140 | Entry: 7 141 | Data: 9|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor 142 | - Name: internalType 143 | Entry: 7 144 | Data: 10|System.RuntimeType, mscorlib 145 | - Name: 146 | Entry: 1 147 | Data: SimpleAI.MultiStateAI, Assembly-CSharp 148 | - Name: 149 | Entry: 8 150 | Data: 151 | - Name: declarationType 152 | Entry: 3 153 | Data: 1 154 | - Name: syncMode 155 | Entry: 3 156 | Data: 0 157 | - Name: symbolResolvedTypeName 158 | Entry: 1 159 | Data: VRCUdonUdonBehaviour 160 | - Name: symbolOriginalName 161 | Entry: 1 162 | Data: AIController 163 | - Name: symbolUniqueName 164 | Entry: 1 165 | Data: AIController 166 | - Name: symbolDefaultValue 167 | Entry: 6 168 | Data: 169 | - Name: 170 | Entry: 8 171 | Data: 172 | - Name: fieldAttributes 173 | Entry: 7 174 | Data: 11|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib 175 | - Name: 176 | Entry: 12 177 | Data: 1 178 | - Name: 179 | Entry: 7 180 | Data: 12|UnityEngine.TooltipAttribute, UnityEngine.CoreModule 181 | - Name: tooltip 182 | Entry: 1 183 | Data: The main controller for the target AI! 184 | - Name: 185 | Entry: 8 186 | Data: 187 | - Name: 188 | Entry: 13 189 | Data: 190 | - Name: 191 | Entry: 8 192 | Data: 193 | - Name: userBehaviourSource 194 | Entry: 10 195 | Data: 0 196 | - Name: 197 | Entry: 8 198 | Data: 199 | - Name: 200 | Entry: 8 201 | Data: 202 | - Name: 203 | Entry: 13 204 | Data: 205 | - Name: 206 | Entry: 8 207 | Data: 208 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/DoggoFollowToggleMultiState Udon C# Program Asset.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 18a5ff0677a813d48a247e401c0388c0 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/Fetch AI Udon C# Program Asset.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e54c55bdd40cef943a21b7441ff1f734 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/Fetcher Pickup Udon C# Program Asset.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c02d78d8e0b21c645903bedaf934cdcd 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/GuardDetectionSphere Udon C# Program Asset.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} 13 | m_Name: GuardDetectionSphere Udon C# Program Asset 14 | m_EditorClassIdentifier: 15 | serializedUdonProgramAsset: {fileID: 11400000, guid: 068d6b182ae59b348a4bdf1b19791d14, 16 | type: 2} 17 | udonAssembly: 18 | assemblyError: 19 | sourceCsScript: {fileID: 11500000, guid: ea3582a02777e024e8da9a9fa9421ade, type: 3} 20 | behaviourSyncMode: 0 21 | behaviourIDHeapVarName: __refl_const_intnl_udonTypeID 22 | compileErrors: [] 23 | hasInteractEvent: 0 24 | serializationData: 25 | SerializedFormat: 2 26 | SerializedBytes: 27 | ReferencedUnityObjects: 28 | - {fileID: 11500000, guid: 2b75020e3ff40ae48a32cd926848ad67, type: 3} 29 | SerializedBytesString: 30 | Prefab: {fileID: 0} 31 | PrefabModificationsReferencedUnityObjects: [] 32 | PrefabModifications: [] 33 | SerializationNodes: 34 | - Name: fieldDefinitions 35 | Entry: 7 36 | Data: 0|System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[UdonSharp.Compiler.FieldDefinition, 37 | UdonSharp.Editor]], mscorlib 38 | - Name: comparer 39 | Entry: 7 40 | Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.String, 41 | mscorlib]], mscorlib 42 | - Name: 43 | Entry: 8 44 | Data: 45 | - Name: 46 | Entry: 12 47 | Data: 1 48 | - Name: 49 | Entry: 7 50 | Data: 51 | - Name: $k 52 | Entry: 1 53 | Data: AIController 54 | - Name: $v 55 | Entry: 7 56 | Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor 57 | - Name: fieldSymbol 58 | Entry: 7 59 | Data: 3|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor 60 | - Name: internalType 61 | Entry: 7 62 | Data: 4|System.RuntimeType, mscorlib 63 | - Name: 64 | Entry: 1 65 | Data: SimpleAI.MultiStateAI, Assembly-CSharp 66 | - Name: 67 | Entry: 8 68 | Data: 69 | - Name: declarationType 70 | Entry: 3 71 | Data: 1 72 | - Name: syncMode 73 | Entry: 3 74 | Data: 0 75 | - Name: symbolResolvedTypeName 76 | Entry: 1 77 | Data: VRCUdonUdonBehaviour 78 | - Name: symbolOriginalName 79 | Entry: 1 80 | Data: AIController 81 | - Name: symbolUniqueName 82 | Entry: 1 83 | Data: AIController 84 | - Name: symbolDefaultValue 85 | Entry: 6 86 | Data: 87 | - Name: 88 | Entry: 8 89 | Data: 90 | - Name: fieldAttributes 91 | Entry: 7 92 | Data: 5|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib 93 | - Name: 94 | Entry: 12 95 | Data: 2 96 | - Name: 97 | Entry: 7 98 | Data: 6|UnityEngine.HeaderAttribute, UnityEngine.CoreModule 99 | - Name: header 100 | Entry: 1 101 | Data: 'Guard Detection Volume! ' 102 | - Name: 103 | Entry: 8 104 | Data: 105 | - Name: 106 | Entry: 7 107 | Data: 7|UnityEngine.TooltipAttribute, UnityEngine.CoreModule 108 | - Name: tooltip 109 | Entry: 1 110 | Data: AI Controller reference! 111 | - Name: 112 | Entry: 8 113 | Data: 114 | - Name: 115 | Entry: 13 116 | Data: 117 | - Name: 118 | Entry: 8 119 | Data: 120 | - Name: userBehaviourSource 121 | Entry: 10 122 | Data: 0 123 | - Name: 124 | Entry: 8 125 | Data: 126 | - Name: 127 | Entry: 8 128 | Data: 129 | - Name: 130 | Entry: 13 131 | Data: 132 | - Name: 133 | Entry: 8 134 | Data: 135 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/GuardDetectionSphere Udon C# Program Asset.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d1a587e21c12b1d438d1b6193c5593c9 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/GuardDetectionSphereFetch Udon C# Program Asset.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} 13 | m_Name: GuardDetectionSphereFetch Udon C# Program Asset 14 | m_EditorClassIdentifier: 15 | serializedUdonProgramAsset: {fileID: 11400000, guid: ac8e2f2f403d4dd4f90db2651e66830b, 16 | type: 2} 17 | udonAssembly: 18 | assemblyError: 19 | sourceCsScript: {fileID: 11500000, guid: 3d5fc395bc099a448b76d690e35f4273, type: 3} 20 | behaviourSyncMode: 0 21 | behaviourIDHeapVarName: __refl_const_intnl_udonTypeID 22 | compileErrors: [] 23 | hasInteractEvent: 0 24 | serializationData: 25 | SerializedFormat: 2 26 | SerializedBytes: 27 | ReferencedUnityObjects: 28 | - {fileID: 11500000, guid: 3ba611656fef92c46a6c30fca6a9bb6c, type: 3} 29 | SerializedBytesString: 30 | Prefab: {fileID: 0} 31 | PrefabModificationsReferencedUnityObjects: [] 32 | PrefabModifications: [] 33 | SerializationNodes: 34 | - Name: fieldDefinitions 35 | Entry: 7 36 | Data: 0|System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[UdonSharp.Compiler.FieldDefinition, 37 | UdonSharp.Editor]], mscorlib 38 | - Name: comparer 39 | Entry: 7 40 | Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.String, 41 | mscorlib]], mscorlib 42 | - Name: 43 | Entry: 8 44 | Data: 45 | - Name: 46 | Entry: 12 47 | Data: 1 48 | - Name: 49 | Entry: 7 50 | Data: 51 | - Name: $k 52 | Entry: 1 53 | Data: AIController 54 | - Name: $v 55 | Entry: 7 56 | Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor 57 | - Name: fieldSymbol 58 | Entry: 7 59 | Data: 3|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor 60 | - Name: internalType 61 | Entry: 7 62 | Data: 4|System.RuntimeType, mscorlib 63 | - Name: 64 | Entry: 1 65 | Data: SimpleAI.FetchAI, Assembly-CSharp 66 | - Name: 67 | Entry: 8 68 | Data: 69 | - Name: declarationType 70 | Entry: 3 71 | Data: 1 72 | - Name: syncMode 73 | Entry: 3 74 | Data: 0 75 | - Name: symbolResolvedTypeName 76 | Entry: 1 77 | Data: VRCUdonUdonBehaviour 78 | - Name: symbolOriginalName 79 | Entry: 1 80 | Data: AIController 81 | - Name: symbolUniqueName 82 | Entry: 1 83 | Data: AIController 84 | - Name: symbolDefaultValue 85 | Entry: 6 86 | Data: 87 | - Name: 88 | Entry: 8 89 | Data: 90 | - Name: fieldAttributes 91 | Entry: 7 92 | Data: 5|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib 93 | - Name: 94 | Entry: 12 95 | Data: 2 96 | - Name: 97 | Entry: 7 98 | Data: 6|UnityEngine.HeaderAttribute, UnityEngine.CoreModule 99 | - Name: header 100 | Entry: 1 101 | Data: 'Guard Detection Volume! ' 102 | - Name: 103 | Entry: 8 104 | Data: 105 | - Name: 106 | Entry: 7 107 | Data: 7|UnityEngine.TooltipAttribute, UnityEngine.CoreModule 108 | - Name: tooltip 109 | Entry: 1 110 | Data: AI Controller reference! 111 | - Name: 112 | Entry: 8 113 | Data: 114 | - Name: 115 | Entry: 13 116 | Data: 117 | - Name: 118 | Entry: 8 119 | Data: 120 | - Name: userBehaviourSource 121 | Entry: 10 122 | Data: 0 123 | - Name: 124 | Entry: 8 125 | Data: 126 | - Name: 127 | Entry: 8 128 | Data: 129 | - Name: 130 | Entry: 13 131 | Data: 132 | - Name: 133 | Entry: 8 134 | Data: 135 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/GuardDetectionSphereFetch Udon C# Program Asset.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5d0e2099708175b42a3789c0152b5c5f 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/MultiState AI Udon C# Program Asset.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9463fdec3c5476f42b01eba5959e274e 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/NavMesh Area Cost Creator Udon C# Program Asset.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} 13 | m_Name: NavMesh Area Cost Creator Udon C# Program Asset 14 | m_EditorClassIdentifier: 15 | serializedUdonProgramAsset: {fileID: 11400000, guid: 7f5fdaf7ac511c1499ce324d1cb05573, 16 | type: 2} 17 | udonAssembly: 18 | assemblyError: 19 | sourceCsScript: {fileID: 11500000, guid: f5833d91259b52c4fac987362be04fc6, type: 3} 20 | behaviourSyncMode: 0 21 | behaviourIDHeapVarName: __refl_const_intnl_udonTypeID 22 | compileErrors: [] 23 | hasInteractEvent: 0 24 | serializationData: 25 | SerializedFormat: 2 26 | SerializedBytes: 27 | ReferencedUnityObjects: [] 28 | SerializedBytesString: 29 | Prefab: {fileID: 0} 30 | PrefabModificationsReferencedUnityObjects: [] 31 | PrefabModifications: [] 32 | SerializationNodes: 33 | - Name: fieldDefinitions 34 | Entry: 7 35 | Data: 0|System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[UdonSharp.Compiler.FieldDefinition, 36 | UdonSharp.Editor]], mscorlib 37 | - Name: comparer 38 | Entry: 7 39 | Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.String, 40 | mscorlib]], mscorlib 41 | - Name: 42 | Entry: 8 43 | Data: 44 | - Name: 45 | Entry: 12 46 | Data: 2 47 | - Name: 48 | Entry: 7 49 | Data: 50 | - Name: $k 51 | Entry: 1 52 | Data: AllAreaCosts 53 | - Name: $v 54 | Entry: 7 55 | Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor 56 | - Name: fieldSymbol 57 | Entry: 7 58 | Data: 3|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor 59 | - Name: internalType 60 | Entry: 7 61 | Data: 4|System.RuntimeType, mscorlib 62 | - Name: 63 | Entry: 1 64 | Data: System.Int32[], mscorlib 65 | - Name: 66 | Entry: 8 67 | Data: 68 | - Name: declarationType 69 | Entry: 3 70 | Data: 1 71 | - Name: syncMode 72 | Entry: 3 73 | Data: 0 74 | - Name: symbolResolvedTypeName 75 | Entry: 1 76 | Data: SystemInt32Array 77 | - Name: symbolOriginalName 78 | Entry: 1 79 | Data: AllAreaCosts 80 | - Name: symbolUniqueName 81 | Entry: 1 82 | Data: AllAreaCosts 83 | - Name: symbolDefaultValue 84 | Entry: 6 85 | Data: 86 | - Name: 87 | Entry: 8 88 | Data: 89 | - Name: fieldAttributes 90 | Entry: 7 91 | Data: 5|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib 92 | - Name: 93 | Entry: 12 94 | Data: 2 95 | - Name: 96 | Entry: 7 97 | Data: 6|UnityEngine.HeaderAttribute, UnityEngine.CoreModule 98 | - Name: header 99 | Entry: 1 100 | Data: NavMesh Area Modifier Script 101 | - Name: 102 | Entry: 8 103 | Data: 104 | - Name: 105 | Entry: 7 106 | Data: 7|UnityEngine.TooltipAttribute, UnityEngine.CoreModule 107 | - Name: tooltip 108 | Entry: 1 109 | Data: All 32 areas have a set cost. You can modify them here! 110 | - Name: 111 | Entry: 8 112 | Data: 113 | - Name: 114 | Entry: 13 115 | Data: 116 | - Name: 117 | Entry: 8 118 | Data: 119 | - Name: userBehaviourSource 120 | Entry: 6 121 | Data: 122 | - Name: 123 | Entry: 8 124 | Data: 125 | - Name: 126 | Entry: 8 127 | Data: 128 | - Name: 129 | Entry: 7 130 | Data: 131 | - Name: $k 132 | Entry: 1 133 | Data: DebugLog 134 | - Name: $v 135 | Entry: 7 136 | Data: 8|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor 137 | - Name: fieldSymbol 138 | Entry: 7 139 | Data: 9|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor 140 | - Name: internalType 141 | Entry: 7 142 | Data: 10|System.RuntimeType, mscorlib 143 | - Name: 144 | Entry: 1 145 | Data: UnityEngine.UI.Text, UnityEngine.UI 146 | - Name: 147 | Entry: 8 148 | Data: 149 | - Name: declarationType 150 | Entry: 3 151 | Data: 1 152 | - Name: syncMode 153 | Entry: 3 154 | Data: 0 155 | - Name: symbolResolvedTypeName 156 | Entry: 1 157 | Data: UnityEngineUIText 158 | - Name: symbolOriginalName 159 | Entry: 1 160 | Data: DebugLog 161 | - Name: symbolUniqueName 162 | Entry: 1 163 | Data: DebugLog 164 | - Name: symbolDefaultValue 165 | Entry: 6 166 | Data: 167 | - Name: 168 | Entry: 8 169 | Data: 170 | - Name: fieldAttributes 171 | Entry: 7 172 | Data: 11|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib 173 | - Name: 174 | Entry: 12 175 | Data: 1 176 | - Name: 177 | Entry: 7 178 | Data: 12|UnityEngine.TooltipAttribute, UnityEngine.CoreModule 179 | - Name: tooltip 180 | Entry: 1 181 | Data: If you want to have a debug log of all the layers on a UI, set it here! 182 | - Name: 183 | Entry: 8 184 | Data: 185 | - Name: 186 | Entry: 13 187 | Data: 188 | - Name: 189 | Entry: 8 190 | Data: 191 | - Name: userBehaviourSource 192 | Entry: 6 193 | Data: 194 | - Name: 195 | Entry: 8 196 | Data: 197 | - Name: 198 | Entry: 8 199 | Data: 200 | - Name: 201 | Entry: 13 202 | Data: 203 | - Name: 204 | Entry: 8 205 | Data: 206 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/NavMesh Area Cost Creator Udon C# Program Asset.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3eae91bbcb939d545a105bdb3fe7c5e5 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/Player Udon C# Program Asset.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} 13 | m_Name: Player Udon C# Program Asset 14 | m_EditorClassIdentifier: 15 | serializedUdonProgramAsset: {fileID: 11400000, guid: 45ba0cc81e0936d46bf887b8bf19a604, 16 | type: 2} 17 | udonAssembly: 18 | assemblyError: 19 | sourceCsScript: {fileID: 11500000, guid: 91acc43b4369c15469cacf824036cf73, type: 3} 20 | behaviourSyncMode: 0 21 | behaviourIDHeapVarName: __refl_const_intnl_udonTypeID 22 | compileErrors: [] 23 | hasInteractEvent: 0 24 | serializationData: 25 | SerializedFormat: 2 26 | SerializedBytes: 27 | ReferencedUnityObjects: 28 | - {fileID: 11500000, guid: f08bb445f22b9c34f8ea1f5341e7914a, type: 3} 29 | SerializedBytesString: 30 | Prefab: {fileID: 0} 31 | PrefabModificationsReferencedUnityObjects: [] 32 | PrefabModifications: [] 33 | SerializationNodes: 34 | - Name: fieldDefinitions 35 | Entry: 7 36 | Data: 0|System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[UdonSharp.Compiler.FieldDefinition, 37 | UdonSharp.Editor]], mscorlib 38 | - Name: comparer 39 | Entry: 7 40 | Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.String, 41 | mscorlib]], mscorlib 42 | - Name: 43 | Entry: 8 44 | Data: 45 | - Name: 46 | Entry: 12 47 | Data: 2 48 | - Name: 49 | Entry: 7 50 | Data: 51 | - Name: $k 52 | Entry: 1 53 | Data: Pool 54 | - Name: $v 55 | Entry: 7 56 | Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor 57 | - Name: fieldSymbol 58 | Entry: 7 59 | Data: 3|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor 60 | - Name: internalType 61 | Entry: 7 62 | Data: 4|System.RuntimeType, mscorlib 63 | - Name: 64 | Entry: 1 65 | Data: SimpleAI.SimpleAIObjectPool, Assembly-CSharp 66 | - Name: 67 | Entry: 8 68 | Data: 69 | - Name: declarationType 70 | Entry: 3 71 | Data: 2 72 | - Name: syncMode 73 | Entry: 3 74 | Data: 0 75 | - Name: symbolResolvedTypeName 76 | Entry: 1 77 | Data: VRCUdonUdonBehaviour 78 | - Name: symbolOriginalName 79 | Entry: 1 80 | Data: Pool 81 | - Name: symbolUniqueName 82 | Entry: 1 83 | Data: Pool 84 | - Name: symbolDefaultValue 85 | Entry: 6 86 | Data: 87 | - Name: 88 | Entry: 8 89 | Data: 90 | - Name: fieldAttributes 91 | Entry: 7 92 | Data: 5|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib 93 | - Name: 94 | Entry: 12 95 | Data: 0 96 | - Name: 97 | Entry: 13 98 | Data: 99 | - Name: 100 | Entry: 8 101 | Data: 102 | - Name: userBehaviourSource 103 | Entry: 10 104 | Data: 0 105 | - Name: 106 | Entry: 8 107 | Data: 108 | - Name: 109 | Entry: 8 110 | Data: 111 | - Name: 112 | Entry: 7 113 | Data: 114 | - Name: $k 115 | Entry: 1 116 | Data: Owner 117 | - Name: $v 118 | Entry: 7 119 | Data: 6|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor 120 | - Name: fieldSymbol 121 | Entry: 7 122 | Data: 7|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor 123 | - Name: internalType 124 | Entry: 7 125 | Data: 8|System.RuntimeType, mscorlib 126 | - Name: 127 | Entry: 1 128 | Data: VRC.SDKBase.VRCPlayerApi, VRCSDKBase 129 | - Name: 130 | Entry: 8 131 | Data: 132 | - Name: declarationType 133 | Entry: 3 134 | Data: 2 135 | - Name: syncMode 136 | Entry: 3 137 | Data: 0 138 | - Name: symbolResolvedTypeName 139 | Entry: 1 140 | Data: VRCSDKBaseVRCPlayerApi 141 | - Name: symbolOriginalName 142 | Entry: 1 143 | Data: Owner 144 | - Name: symbolUniqueName 145 | Entry: 1 146 | Data: Owner 147 | - Name: symbolDefaultValue 148 | Entry: 6 149 | Data: 150 | - Name: 151 | Entry: 8 152 | Data: 153 | - Name: fieldAttributes 154 | Entry: 7 155 | Data: 9|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib 156 | - Name: 157 | Entry: 12 158 | Data: 0 159 | - Name: 160 | Entry: 13 161 | Data: 162 | - Name: 163 | Entry: 8 164 | Data: 165 | - Name: userBehaviourSource 166 | Entry: 6 167 | Data: 168 | - Name: 169 | Entry: 8 170 | Data: 171 | - Name: 172 | Entry: 8 173 | Data: 174 | - Name: 175 | Entry: 13 176 | Data: 177 | - Name: 178 | Entry: 8 179 | Data: 180 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/Player Udon C# Program Asset.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 95429543437619d429ac893a033482ed 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/SimpleAI Object Pool.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d00c33d2d17160b4f80465750ddd7ad7 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/Synced Fetcher Pickup Udon C# Program Asset.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 725b9e8b91c162e4ea464980128306c6 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/SyncedDetectionSphere Udon C# Program Asset.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} 13 | m_Name: SyncedDetectionSphere Udon C# Program Asset 14 | m_EditorClassIdentifier: 15 | serializedUdonProgramAsset: {fileID: 11400000, guid: e2f760385ad9b9840887dc6b2df2e55a, 16 | type: 2} 17 | udonAssembly: 18 | assemblyError: 19 | sourceCsScript: {fileID: 11500000, guid: 44515383888c99548aa86441e5de4298, type: 3} 20 | behaviourSyncMode: 0 21 | behaviourIDHeapVarName: __refl_const_intnl_udonTypeID 22 | compileErrors: [] 23 | hasInteractEvent: 0 24 | serializationData: 25 | SerializedFormat: 2 26 | SerializedBytes: 27 | ReferencedUnityObjects: 28 | - {fileID: 11500000, guid: dafc56435bf09594fa808394814c4948, type: 3} 29 | - {fileID: 11500000, guid: f08bb445f22b9c34f8ea1f5341e7914a, type: 3} 30 | SerializedBytesString: 31 | Prefab: {fileID: 0} 32 | PrefabModificationsReferencedUnityObjects: [] 33 | PrefabModifications: [] 34 | SerializationNodes: 35 | - Name: fieldDefinitions 36 | Entry: 7 37 | Data: 0|System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[UdonSharp.Compiler.FieldDefinition, 38 | UdonSharp.Editor]], mscorlib 39 | - Name: comparer 40 | Entry: 7 41 | Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.String, 42 | mscorlib]], mscorlib 43 | - Name: 44 | Entry: 8 45 | Data: 46 | - Name: 47 | Entry: 12 48 | Data: 2 49 | - Name: 50 | Entry: 7 51 | Data: 52 | - Name: $k 53 | Entry: 1 54 | Data: AIController 55 | - Name: $v 56 | Entry: 7 57 | Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor 58 | - Name: fieldSymbol 59 | Entry: 7 60 | Data: 3|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor 61 | - Name: internalType 62 | Entry: 7 63 | Data: 4|System.RuntimeType, mscorlib 64 | - Name: 65 | Entry: 1 66 | Data: SimpleAI.BasicSyncedAI, Assembly-CSharp 67 | - Name: 68 | Entry: 8 69 | Data: 70 | - Name: declarationType 71 | Entry: 3 72 | Data: 1 73 | - Name: syncMode 74 | Entry: 3 75 | Data: 0 76 | - Name: symbolResolvedTypeName 77 | Entry: 1 78 | Data: VRCUdonUdonBehaviour 79 | - Name: symbolOriginalName 80 | Entry: 1 81 | Data: AIController 82 | - Name: symbolUniqueName 83 | Entry: 1 84 | Data: AIController 85 | - Name: symbolDefaultValue 86 | Entry: 6 87 | Data: 88 | - Name: 89 | Entry: 8 90 | Data: 91 | - Name: fieldAttributes 92 | Entry: 7 93 | Data: 5|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib 94 | - Name: 95 | Entry: 12 96 | Data: 2 97 | - Name: 98 | Entry: 7 99 | Data: 6|UnityEngine.HeaderAttribute, UnityEngine.CoreModule 100 | - Name: header 101 | Entry: 1 102 | Data: Synced Guard Detection! 103 | - Name: 104 | Entry: 8 105 | Data: 106 | - Name: 107 | Entry: 7 108 | Data: 7|UnityEngine.TooltipAttribute, UnityEngine.CoreModule 109 | - Name: tooltip 110 | Entry: 1 111 | Data: AI Controller reference! 112 | - Name: 113 | Entry: 8 114 | Data: 115 | - Name: 116 | Entry: 13 117 | Data: 118 | - Name: 119 | Entry: 8 120 | Data: 121 | - Name: userBehaviourSource 122 | Entry: 10 123 | Data: 0 124 | - Name: 125 | Entry: 8 126 | Data: 127 | - Name: 128 | Entry: 8 129 | Data: 130 | - Name: 131 | Entry: 7 132 | Data: 133 | - Name: $k 134 | Entry: 1 135 | Data: Pool 136 | - Name: $v 137 | Entry: 7 138 | Data: 8|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor 139 | - Name: fieldSymbol 140 | Entry: 7 141 | Data: 9|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor 142 | - Name: internalType 143 | Entry: 7 144 | Data: 10|System.RuntimeType, mscorlib 145 | - Name: 146 | Entry: 1 147 | Data: SimpleAI.SimpleAIObjectPool, Assembly-CSharp 148 | - Name: 149 | Entry: 8 150 | Data: 151 | - Name: declarationType 152 | Entry: 3 153 | Data: 1 154 | - Name: syncMode 155 | Entry: 3 156 | Data: 0 157 | - Name: symbolResolvedTypeName 158 | Entry: 1 159 | Data: VRCUdonUdonBehaviour 160 | - Name: symbolOriginalName 161 | Entry: 1 162 | Data: Pool 163 | - Name: symbolUniqueName 164 | Entry: 1 165 | Data: Pool 166 | - Name: symbolDefaultValue 167 | Entry: 6 168 | Data: 169 | - Name: 170 | Entry: 8 171 | Data: 172 | - Name: fieldAttributes 173 | Entry: 7 174 | Data: 11|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib 175 | - Name: 176 | Entry: 12 177 | Data: 1 178 | - Name: 179 | Entry: 7 180 | Data: 12|UnityEngine.TooltipAttribute, UnityEngine.CoreModule 181 | - Name: tooltip 182 | Entry: 1 183 | Data: The pool is used to get the list of all players! 184 | - Name: 185 | Entry: 8 186 | Data: 187 | - Name: 188 | Entry: 13 189 | Data: 190 | - Name: 191 | Entry: 8 192 | Data: 193 | - Name: userBehaviourSource 194 | Entry: 10 195 | Data: 1 196 | - Name: 197 | Entry: 8 198 | Data: 199 | - Name: 200 | Entry: 8 201 | Data: 202 | - Name: 203 | Entry: 13 204 | Data: 205 | - Name: 206 | Entry: 8 207 | Data: 208 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/SyncedDetectionSphere Udon C# Program Asset.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e792e24dd1ec7bf46ad31ea887b95d83 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/SyncedToggle Udon C# Program Asset.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: c333ccfdd0cbdbc4ca30cef2dd6e6b9b, type: 3} 13 | m_Name: SyncedToggle Udon C# Program Asset 14 | m_EditorClassIdentifier: 15 | serializedUdonProgramAsset: {fileID: 11400000, guid: 5bb99ab8ee27c0c459fd9d17833a3820, 16 | type: 2} 17 | udonAssembly: 18 | assemblyError: 19 | sourceCsScript: {fileID: 11500000, guid: e0e7ebde1865f29409b96c87ff11a4d6, type: 3} 20 | behaviourSyncMode: 0 21 | behaviourIDHeapVarName: __refl_const_intnl_udonTypeID 22 | compileErrors: [] 23 | hasInteractEvent: 1 24 | serializationData: 25 | SerializedFormat: 2 26 | SerializedBytes: 27 | ReferencedUnityObjects: 28 | - {fileID: 11500000, guid: dafc56435bf09594fa808394814c4948, type: 3} 29 | SerializedBytesString: 30 | Prefab: {fileID: 0} 31 | PrefabModificationsReferencedUnityObjects: [] 32 | PrefabModifications: [] 33 | SerializationNodes: 34 | - Name: fieldDefinitions 35 | Entry: 7 36 | Data: 0|System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[UdonSharp.Compiler.FieldDefinition, 37 | UdonSharp.Editor]], mscorlib 38 | - Name: comparer 39 | Entry: 7 40 | Data: 1|System.Collections.Generic.GenericEqualityComparer`1[[System.String, 41 | mscorlib]], mscorlib 42 | - Name: 43 | Entry: 8 44 | Data: 45 | - Name: 46 | Entry: 12 47 | Data: 3 48 | - Name: 49 | Entry: 7 50 | Data: 51 | - Name: $k 52 | Entry: 1 53 | Data: NumOfStates 54 | - Name: $v 55 | Entry: 7 56 | Data: 2|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor 57 | - Name: fieldSymbol 58 | Entry: 7 59 | Data: 3|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor 60 | - Name: internalType 61 | Entry: 7 62 | Data: 4|System.RuntimeType, mscorlib 63 | - Name: 64 | Entry: 1 65 | Data: System.Int32, mscorlib 66 | - Name: 67 | Entry: 8 68 | Data: 69 | - Name: declarationType 70 | Entry: 3 71 | Data: 1 72 | - Name: syncMode 73 | Entry: 3 74 | Data: 0 75 | - Name: symbolResolvedTypeName 76 | Entry: 1 77 | Data: SystemInt32 78 | - Name: symbolOriginalName 79 | Entry: 1 80 | Data: NumOfStates 81 | - Name: symbolUniqueName 82 | Entry: 1 83 | Data: NumOfStates 84 | - Name: symbolDefaultValue 85 | Entry: 6 86 | Data: 87 | - Name: 88 | Entry: 8 89 | Data: 90 | - Name: fieldAttributes 91 | Entry: 7 92 | Data: 5|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib 93 | - Name: 94 | Entry: 12 95 | Data: 2 96 | - Name: 97 | Entry: 7 98 | Data: 6|UnityEngine.HeaderAttribute, UnityEngine.CoreModule 99 | - Name: header 100 | Entry: 1 101 | Data: Follow Toggle! 102 | - Name: 103 | Entry: 8 104 | Data: 105 | - Name: 106 | Entry: 7 107 | Data: 7|UnityEngine.TooltipAttribute, UnityEngine.CoreModule 108 | - Name: tooltip 109 | Entry: 1 110 | Data: Number of states that can be toggled between! Don't include special states 111 | such as fetch states in this counter! 112 | - Name: 113 | Entry: 8 114 | Data: 115 | - Name: 116 | Entry: 13 117 | Data: 118 | - Name: 119 | Entry: 8 120 | Data: 121 | - Name: userBehaviourSource 122 | Entry: 6 123 | Data: 124 | - Name: 125 | Entry: 8 126 | Data: 127 | - Name: 128 | Entry: 8 129 | Data: 130 | - Name: 131 | Entry: 7 132 | Data: 133 | - Name: $k 134 | Entry: 1 135 | Data: AIController 136 | - Name: $v 137 | Entry: 7 138 | Data: 8|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor 139 | - Name: fieldSymbol 140 | Entry: 7 141 | Data: 9|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor 142 | - Name: internalType 143 | Entry: 7 144 | Data: 10|System.RuntimeType, mscorlib 145 | - Name: 146 | Entry: 1 147 | Data: SimpleAI.BasicSyncedAI, Assembly-CSharp 148 | - Name: 149 | Entry: 8 150 | Data: 151 | - Name: declarationType 152 | Entry: 3 153 | Data: 1 154 | - Name: syncMode 155 | Entry: 3 156 | Data: 0 157 | - Name: symbolResolvedTypeName 158 | Entry: 1 159 | Data: VRCUdonUdonBehaviour 160 | - Name: symbolOriginalName 161 | Entry: 1 162 | Data: AIController 163 | - Name: symbolUniqueName 164 | Entry: 1 165 | Data: AIController 166 | - Name: symbolDefaultValue 167 | Entry: 6 168 | Data: 169 | - Name: 170 | Entry: 8 171 | Data: 172 | - Name: fieldAttributes 173 | Entry: 7 174 | Data: 11|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib 175 | - Name: 176 | Entry: 12 177 | Data: 1 178 | - Name: 179 | Entry: 7 180 | Data: 12|UnityEngine.TooltipAttribute, UnityEngine.CoreModule 181 | - Name: tooltip 182 | Entry: 1 183 | Data: The main controller for the target AI! 184 | - Name: 185 | Entry: 8 186 | Data: 187 | - Name: 188 | Entry: 13 189 | Data: 190 | - Name: 191 | Entry: 8 192 | Data: 193 | - Name: userBehaviourSource 194 | Entry: 10 195 | Data: 0 196 | - Name: 197 | Entry: 8 198 | Data: 199 | - Name: 200 | Entry: 8 201 | Data: 202 | - Name: 203 | Entry: 7 204 | Data: 205 | - Name: $k 206 | Entry: 1 207 | Data: IsOwnershipInteract 208 | - Name: $v 209 | Entry: 7 210 | Data: 13|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor 211 | - Name: fieldSymbol 212 | Entry: 7 213 | Data: 14|UdonSharp.Compiler.SymbolDefinition, UdonSharp.Editor 214 | - Name: internalType 215 | Entry: 7 216 | Data: 15|System.RuntimeType, mscorlib 217 | - Name: 218 | Entry: 1 219 | Data: System.Boolean, mscorlib 220 | - Name: 221 | Entry: 8 222 | Data: 223 | - Name: declarationType 224 | Entry: 3 225 | Data: 2 226 | - Name: syncMode 227 | Entry: 3 228 | Data: 0 229 | - Name: symbolResolvedTypeName 230 | Entry: 1 231 | Data: SystemBoolean 232 | - Name: symbolOriginalName 233 | Entry: 1 234 | Data: IsOwnershipInteract 235 | - Name: symbolUniqueName 236 | Entry: 1 237 | Data: IsOwnershipInteract 238 | - Name: symbolDefaultValue 239 | Entry: 6 240 | Data: 241 | - Name: 242 | Entry: 8 243 | Data: 244 | - Name: fieldAttributes 245 | Entry: 7 246 | Data: 16|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib 247 | - Name: 248 | Entry: 12 249 | Data: 0 250 | - Name: 251 | Entry: 13 252 | Data: 253 | - Name: 254 | Entry: 8 255 | Data: 256 | - Name: userBehaviourSource 257 | Entry: 6 258 | Data: 259 | - Name: 260 | Entry: 8 261 | Data: 262 | - Name: 263 | Entry: 8 264 | Data: 265 | - Name: 266 | Entry: 13 267 | Data: 268 | - Name: 269 | Entry: 8 270 | Data: 271 | -------------------------------------------------------------------------------- /Demo Scene/TLX AI Demo Scene_UdonProgramSources/SyncedToggle Udon C# Program Asset.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 658604dab1755f1459dd081116ed441b 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Generic Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 54b1953ac29ef1d468938ecacc80c699 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Generic Prefabs/Generic Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ce35d5f70a11b2f4bbb024420e5c375f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Generic Prefabs/Generic Scripts/NavMeshAreaCostCreator.cs: -------------------------------------------------------------------------------- 1 | // Script created by Centauri, as part of the SimpleAI unitypackage! 2 | 3 | using System; 4 | using UdonSharp; 5 | using UnityEngine; 6 | using UnityEngine.AI; 7 | using UnityEngine.UI; 8 | using VRC.SDKBase; 9 | using VRC.Udon; 10 | 11 | namespace SimpleAI 12 | { 13 | public class NavMeshAreaCostCreator : UdonSharpBehaviour 14 | { 15 | [Header("NavMesh Area Modifier Script")] 16 | 17 | [Tooltip("All 32 areas have a set cost. You can modify them here!")] 18 | public int[] AllAreaCosts; 19 | 20 | [Tooltip("If you want to have a debug log of all the layers on a UI, set it here!")] 21 | public Text DebugLog; 22 | 23 | void Start() 24 | { 25 | // By default, all costs are 1 26 | 27 | for (int i = 0; i < AllAreaCosts.Length; i++) // Goes through each area, and if the cost is not default, changes it. 28 | { 29 | if (AllAreaCosts[i] != 1) 30 | { 31 | NavMesh.SetAreaCost(i, AllAreaCosts[i]); 32 | } 33 | 34 | 35 | if (DebugLog != null) // Displays debug info, with some formatting stuff 36 | { 37 | if (i < 1) 38 | { 39 | DebugLog.text = "Area 0" + i + " Layer Cost | " + AllAreaCosts[i]; 40 | } 41 | else if (i < 10 && i > 0) 42 | { 43 | DebugLog.text = DebugLog.text + "\n" + "Area 0" + i + " Layer Cost | " + AllAreaCosts[i]; 44 | } 45 | else 46 | { 47 | DebugLog.text = DebugLog.text + "\n" + "Area " + i + " Layer Cost | " + AllAreaCosts[i]; 48 | } 49 | } 50 | } 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /Generic Prefabs/Generic Scripts/NavMeshAreaCostCreator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f5833d91259b52c4fac987362be04fc6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Generic Prefabs/Generic Scripts/Player.cs: -------------------------------------------------------------------------------- 1 | // ALL OBJECT POOL CODE BASED OFF OF PHASEDRAGON's SIMPLEOBJECTPOOL PREFAB! 2 | // All credit to Phasedragon! 3 | 4 | using UdonSharp; 5 | using UnityEngine; 6 | using VRC.SDKBase; 7 | using VRC.Udon; 8 | 9 | namespace SimpleAI 10 | { 11 | public class Player : UdonSharpBehaviour 12 | { 13 | private SimpleAIObjectPool Pool; 14 | private VRCPlayerApi Owner; 15 | 16 | private void Start() 17 | { 18 | Pool = transform.parent.GetComponent(); 19 | } 20 | public void UpdateOwner() 21 | { 22 | Owner = Networking.GetOwner(gameObject); //Setting the owner is important in order to keep track of the correct player. This can be removed if you use DoNotTransferOwnership 23 | if (Owner == null) return; 24 | } 25 | public override void OnPlayerLeft(VRCPlayerApi player) //Setting owner to null is important in order to prevent script crashing from an invalid playerapi 26 | { 27 | if (Owner == player) 28 | { 29 | Owner = null; 30 | } 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Generic Prefabs/Generic Scripts/Player.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 91acc43b4369c15469cacf824036cf73 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Generic Prefabs/Generic Scripts/SimpleAIObjectPool.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f08bb445f22b9c34f8ea1f5341e7914a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Generic Prefabs/NavMesh Area Cost Creator.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9ff238a79ba1e11418e61d743fb92f3e 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Generic Prefabs/OffMeshLink.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &1754226507844790190 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 401638894478905406} 12 | m_Layer: 0 13 | m_Name: End 14 | m_TagString: Untagged 15 | m_Icon: {fileID: 0} 16 | m_NavMeshLayer: 0 17 | m_StaticEditorFlags: 0 18 | m_IsActive: 1 19 | --- !u!4 &401638894478905406 20 | Transform: 21 | m_ObjectHideFlags: 0 22 | m_CorrespondingSourceObject: {fileID: 0} 23 | m_PrefabInstance: {fileID: 0} 24 | m_PrefabAsset: {fileID: 0} 25 | m_GameObject: {fileID: 1754226507844790190} 26 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 27 | m_LocalPosition: {x: 0, y: 0, z: 0} 28 | m_LocalScale: {x: 1, y: 1, z: 1} 29 | m_Children: [] 30 | m_Father: {fileID: 2583639959125892494} 31 | m_RootOrder: 1 32 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 33 | --- !u!1 &1820808084572294138 34 | GameObject: 35 | m_ObjectHideFlags: 0 36 | m_CorrespondingSourceObject: {fileID: 0} 37 | m_PrefabInstance: {fileID: 0} 38 | m_PrefabAsset: {fileID: 0} 39 | serializedVersion: 6 40 | m_Component: 41 | - component: {fileID: 2583639959125892494} 42 | - component: {fileID: 1744450623258642686} 43 | m_Layer: 0 44 | m_Name: OffMeshLink 45 | m_TagString: Untagged 46 | m_Icon: {fileID: 0} 47 | m_NavMeshLayer: 0 48 | m_StaticEditorFlags: 0 49 | m_IsActive: 1 50 | --- !u!4 &2583639959125892494 51 | Transform: 52 | m_ObjectHideFlags: 0 53 | m_CorrespondingSourceObject: {fileID: 0} 54 | m_PrefabInstance: {fileID: 0} 55 | m_PrefabAsset: {fileID: 0} 56 | m_GameObject: {fileID: 1820808084572294138} 57 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 58 | m_LocalPosition: {x: 0, y: 0, z: 0} 59 | m_LocalScale: {x: 1, y: 1, z: 1} 60 | m_Children: 61 | - {fileID: 2938690197068981109} 62 | - {fileID: 401638894478905406} 63 | m_Father: {fileID: 0} 64 | m_RootOrder: 0 65 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 66 | --- !u!191 &1744450623258642686 67 | OffMeshLink: 68 | m_ObjectHideFlags: 0 69 | m_CorrespondingSourceObject: {fileID: 0} 70 | m_PrefabInstance: {fileID: 0} 71 | m_PrefabAsset: {fileID: 0} 72 | m_GameObject: {fileID: 1820808084572294138} 73 | m_Enabled: 1 74 | serializedVersion: 3 75 | m_AreaIndex: 0 76 | m_AgentTypeID: 0 77 | m_Start: {fileID: 2938690197068981109} 78 | m_End: {fileID: 401638894478905406} 79 | m_CostOverride: 2 80 | m_BiDirectional: 1 81 | m_Activated: 1 82 | m_AutoUpdatePositions: 0 83 | --- !u!1 &1968873391910642018 84 | GameObject: 85 | m_ObjectHideFlags: 0 86 | m_CorrespondingSourceObject: {fileID: 0} 87 | m_PrefabInstance: {fileID: 0} 88 | m_PrefabAsset: {fileID: 0} 89 | serializedVersion: 6 90 | m_Component: 91 | - component: {fileID: 2938690197068981109} 92 | m_Layer: 0 93 | m_Name: Start 94 | m_TagString: Untagged 95 | m_Icon: {fileID: 0} 96 | m_NavMeshLayer: 0 97 | m_StaticEditorFlags: 0 98 | m_IsActive: 1 99 | --- !u!4 &2938690197068981109 100 | Transform: 101 | m_ObjectHideFlags: 0 102 | m_CorrespondingSourceObject: {fileID: 0} 103 | m_PrefabInstance: {fileID: 0} 104 | m_PrefabAsset: {fileID: 0} 105 | m_GameObject: {fileID: 1968873391910642018} 106 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 107 | m_LocalPosition: {x: 0, y: 0, z: 0} 108 | m_LocalScale: {x: 1, y: 1, z: 1} 109 | m_Children: [] 110 | m_Father: {fileID: 2583639959125892494} 111 | m_RootOrder: 0 112 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 113 | -------------------------------------------------------------------------------- /Generic Prefabs/OffMeshLink.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dbbf2276d6386984b8e33159c85f75a1 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Generic Prefabs/SimpleAI Object Pool.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eff4b46e15719e54797182a2e88ac24c 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Note to Reviewers 2 | This project was developed under tight constraints (VRChat UdonSharp and networking limitations) and does not reflect my current code quality standards. For more representative examples of my work, please see my pinned repositories or visit my [portfolio](https://studioviolet.net/). 3 | 4 | # Simple AI | An UdonSharp based local and synced AI package, meant for use in VRChat! 5 | 6 | SimpleAI features multiple different forms of AI, and is meant to be used alongside the tutorial that I did as part of TLX! It is useful beyond that however, as there is multiple different AI's that you can base your own AI's off of! 7 | 8 | # TLX Talk 9 | 10 | https://www.youtube.com/watch?v=xVXXS7HX7Og&ab_channel=TLX 11 | 12 | # Notice 13 | 14 | This asset is not being actively developed, and only acts as a reference for possible AI implementations within VRChat. 15 | 16 | # Dependencies 17 | 18 | Unity 2019.4.31f1 \ 19 | [VRCSDK3](https://vrchat.com/home/download) \ 20 | [UdonSharp](https://github.com/MerlinVR/UdonSharp/releases) 21 | (2022 Only) AI Navigation package found in package manager 22 | 23 | 24 | # Credits 25 | 26 | **Phasedragon** | Made original [SimpleObjectPool](https://drive.google.com/file/d/16SYuHlhYTQV_hszwqy_OYgou1aFTFDC1/view) prefab, which the SimpleAI pool is a modified version of! 27 | 28 | **Skipper** | Made the hat and cane for the Funny Capsule Man! (They're the best <3) 29 | 30 | **Vincent Yanez** | Created original minecraft dog model that I took off Sketchfab and rigged, found [HERE](https://sketchfab.com/3d-models/minecraft-wolf-9aa99b5c203240f7ac357c4e8b84e1d6) 31 | -------------------------------------------------------------------------------- /README.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5391ffcd0b8fd9143a2c3b71a4533b6d 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /TLX AI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aa3d5c11c6b453f4cbb63fe5fd85f96a 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /TLX AI/Local AI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b698e038d61991f44bac6e74790c4141 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 11d2ff21c2098fb44925c98ea578435c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Prefabs/Basic Player Chasing AI.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &2644291093052677853 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 2644291093052677854} 12 | - component: {fileID: 2644291093052677848} 13 | - component: {fileID: 2644291093052677855} 14 | m_Layer: 0 15 | m_Name: Basic Player Chasing AI 16 | m_TagString: Untagged 17 | m_Icon: {fileID: 0} 18 | m_NavMeshLayer: 0 19 | m_StaticEditorFlags: 0 20 | m_IsActive: 1 21 | --- !u!4 &2644291093052677854 22 | Transform: 23 | m_ObjectHideFlags: 0 24 | m_CorrespondingSourceObject: {fileID: 0} 25 | m_PrefabInstance: {fileID: 0} 26 | m_PrefabAsset: {fileID: 0} 27 | m_GameObject: {fileID: 2644291093052677853} 28 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 29 | m_LocalPosition: {x: 0, y: 0, z: 0} 30 | m_LocalScale: {x: 1, y: 1, z: 1} 31 | m_Children: 32 | - {fileID: 4187509255013234559} 33 | m_Father: {fileID: 0} 34 | m_RootOrder: 0 35 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 36 | --- !u!195 &2644291093052677848 37 | NavMeshAgent: 38 | m_ObjectHideFlags: 0 39 | m_CorrespondingSourceObject: {fileID: 0} 40 | m_PrefabInstance: {fileID: 0} 41 | m_PrefabAsset: {fileID: 0} 42 | m_GameObject: {fileID: 2644291093052677853} 43 | m_Enabled: 1 44 | m_AgentTypeID: 0 45 | m_Radius: 0.5 46 | m_Speed: 1.5 47 | m_Acceleration: 8 48 | avoidancePriority: 50 49 | m_AngularSpeed: 120 50 | m_StoppingDistance: 2 51 | m_AutoTraverseOffMeshLink: 1 52 | m_AutoBraking: 1 53 | m_AutoRepath: 1 54 | m_Height: 2 55 | m_BaseOffset: 0 56 | m_WalkableMask: 4294967295 57 | m_ObstacleAvoidanceType: 4 58 | --- !u!114 &2644291093052677855 59 | MonoBehaviour: 60 | m_ObjectHideFlags: 0 61 | m_CorrespondingSourceObject: {fileID: 0} 62 | m_PrefabInstance: {fileID: 0} 63 | m_PrefabAsset: {fileID: 0} 64 | m_GameObject: {fileID: 2644291093052677853} 65 | m_Enabled: 1 66 | m_EditorHideFlags: 0 67 | m_Script: {fileID: 11500000, guid: 45115577ef41a5b4ca741ed302693907, type: 3} 68 | m_Name: 69 | m_EditorClassIdentifier: 70 | interactTextPlacement: {fileID: 0} 71 | interactText: Use 72 | interactTextGO: {fileID: 0} 73 | proximity: 2 74 | SynchronizePosition: 0 75 | AllowCollisionOwnershipTransfer: 0 76 | Reliable: 0 77 | serializedProgramAsset: {fileID: 11400000, guid: 08416c64dddab32498d5e651de627981, 78 | type: 2} 79 | programSource: {fileID: 11400000, guid: 2611fcf76174f6749bc01299f833b0ea, type: 2} 80 | serializedPublicVariablesBytesString: Ai8AAAAAATIAAABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlAFQAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AAAAAAAYBAAAAAAAAACcBBAAAAHQAeQBwAGUAAWgAAABTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEcAZQBuAGUAcgBpAGMALgBMAGkAcwB0AGAAMQBbAFsAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4ALgBJAG4AdABlAHIAZgBhAGMAZQBzAC4ASQBVAGQAbwBuAFYAYQByAGkAYQBiAGwAZQAsACAAVgBSAEMALgBVAGQAbwBuAC4AQwBvAG0AbQBvAG4AXQBdACwAIABtAHMAYwBvAHIAbABpAGIAAQEJAAAAVgBhAHIAaQBhAGIAbABlAHMALwEAAAABaAAAAFMAeQBzAHQAZQBtAC4AQwBvAGwAbABlAGMAdABpAG8AbgBzAC4ARwBlAG4AZQByAGkAYwAuAEwAaQBzAHQAYAAxAFsAWwBWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgAuAEkAbgB0AGUAcgBmAGEAYwBlAHMALgBJAFUAZABvAG4AVgBhAHIAaQBhAGIAbABlACwAIABWAFIAQwAuAFUAZABvAG4ALgBDAG8AbQBtAG8AbgBdAF0ALAAgAG0AcwBjAG8AcgBsAGkAYgABAAAABgAAAAAAAAAABwUHBQ== 81 | publicVariablesUnityEngineObjects: [] 82 | publicVariablesSerializationDataFormat: 0 83 | --- !u!1001 &8918163295959806445 84 | PrefabInstance: 85 | m_ObjectHideFlags: 0 86 | serializedVersion: 2 87 | m_Modification: 88 | m_TransformParent: {fileID: 2644291093052677854} 89 | m_Modifications: 90 | - target: {fileID: 1284712397956782800, guid: 94a1c001e15fc2842876f13322b9e9e3, 91 | type: 3} 92 | propertyPath: m_Name 93 | value: Funny Capsule Man 94 | objectReference: {fileID: 0} 95 | - target: {fileID: 4746419345677420178, guid: 94a1c001e15fc2842876f13322b9e9e3, 96 | type: 3} 97 | propertyPath: m_LocalPosition.x 98 | value: 0 99 | objectReference: {fileID: 0} 100 | - target: {fileID: 4746419345677420178, guid: 94a1c001e15fc2842876f13322b9e9e3, 101 | type: 3} 102 | propertyPath: m_LocalPosition.y 103 | value: 0 104 | objectReference: {fileID: 0} 105 | - target: {fileID: 4746419345677420178, guid: 94a1c001e15fc2842876f13322b9e9e3, 106 | type: 3} 107 | propertyPath: m_LocalPosition.z 108 | value: 0 109 | objectReference: {fileID: 0} 110 | - target: {fileID: 4746419345677420178, guid: 94a1c001e15fc2842876f13322b9e9e3, 111 | type: 3} 112 | propertyPath: m_LocalRotation.x 113 | value: -0 114 | objectReference: {fileID: 0} 115 | - target: {fileID: 4746419345677420178, guid: 94a1c001e15fc2842876f13322b9e9e3, 116 | type: 3} 117 | propertyPath: m_LocalRotation.y 118 | value: -0 119 | objectReference: {fileID: 0} 120 | - target: {fileID: 4746419345677420178, guid: 94a1c001e15fc2842876f13322b9e9e3, 121 | type: 3} 122 | propertyPath: m_LocalRotation.z 123 | value: -0 124 | objectReference: {fileID: 0} 125 | - target: {fileID: 4746419345677420178, guid: 94a1c001e15fc2842876f13322b9e9e3, 126 | type: 3} 127 | propertyPath: m_LocalRotation.w 128 | value: 1 129 | objectReference: {fileID: 0} 130 | - target: {fileID: 4746419345677420178, guid: 94a1c001e15fc2842876f13322b9e9e3, 131 | type: 3} 132 | propertyPath: m_RootOrder 133 | value: 0 134 | objectReference: {fileID: 0} 135 | - target: {fileID: 4746419345677420178, guid: 94a1c001e15fc2842876f13322b9e9e3, 136 | type: 3} 137 | propertyPath: m_LocalEulerAnglesHint.x 138 | value: 0 139 | objectReference: {fileID: 0} 140 | - target: {fileID: 4746419345677420178, guid: 94a1c001e15fc2842876f13322b9e9e3, 141 | type: 3} 142 | propertyPath: m_LocalEulerAnglesHint.y 143 | value: 0 144 | objectReference: {fileID: 0} 145 | - target: {fileID: 4746419345677420178, guid: 94a1c001e15fc2842876f13322b9e9e3, 146 | type: 3} 147 | propertyPath: m_LocalEulerAnglesHint.z 148 | value: 0 149 | objectReference: {fileID: 0} 150 | m_RemovedComponents: [] 151 | m_SourcePrefab: {fileID: 100100000, guid: 94a1c001e15fc2842876f13322b9e9e3, type: 3} 152 | --- !u!4 &4187509255013234559 stripped 153 | Transform: 154 | m_CorrespondingSourceObject: {fileID: 4746419345677420178, guid: 94a1c001e15fc2842876f13322b9e9e3, 155 | type: 3} 156 | m_PrefabInstance: {fileID: 8918163295959806445} 157 | m_PrefabAsset: {fileID: 0} 158 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Prefabs/Basic Player Chasing AI.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 59fdfacac1262bf45bdf2f57fdaa219f 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Prefabs/Basic Toggleable AI.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e9f895ee7e44bfa4ca9b1afe92b3aea7 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Prefabs/Basic Wandering AI.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6b3c6cb8a87c0564583241f82cfea8f1 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Prefabs/Fetch AI.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 88815aca5a709de40a5bbb9f60550167 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Prefabs/MultiState AI.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0c712f573ed6e5d4b8c4304f60829d30 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ede0a0c98c0a0b44a91f5a17b6c6ec39 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Scripts/BasicPlayerChasingAI.cs: -------------------------------------------------------------------------------- 1 | // Script created by Centauri, as part of the SimpleAI unitypackage! 2 | 3 | using UdonSharp; 4 | using UnityEngine; 5 | using VRC.SDKBase; 6 | using VRC.Udon; 7 | 8 | using UnityEngine.AI; 9 | 10 | namespace SimpleAI 11 | { 12 | public class BasicPlayerChasingAI : UdonSharpBehaviour 13 | { 14 | [Header("Player-chasing AI!")] [Space] private NavMeshAgent Agent; // AI's agent 15 | private VRCPlayerApi TargetPlayer; // The target player 16 | 17 | private void Start() 18 | { 19 | // Assign variables 20 | Agent = GetComponent(); 21 | TargetPlayer = Networking.LocalPlayer; 22 | } 23 | 24 | private void Update() 25 | { 26 | // Set's the AIs target position every update loop to the players current root position! 27 | Agent.SetDestination(TargetPlayer.GetPosition()); 28 | } 29 | 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Scripts/BasicPlayerChasingAI.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d2c2313bc7432d84c8e0980f78044133 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Scripts/BasicToggleableAI.cs: -------------------------------------------------------------------------------- 1 | // Script created by Centauri, as part of the SimpleAI unitypackage! 2 | 3 | using UdonSharp; 4 | using UnityEngine; 5 | using UnityEngine.AI; 6 | using VRC.SDKBase; 7 | using VRC.Udon; 8 | 9 | namespace SimpleAI 10 | { 11 | public class BasicToggleableAI : UdonSharpBehaviour 12 | { 13 | [Header("Basic Toggleable AI")] [Space] 14 | 15 | public int CurrentState; // The AI's current internal state! 16 | // 0 - Wandering 17 | // 1 - Follow Player 18 | 19 | [Tooltip("This is the max distance the AI will wander from it's current position at once!")] 20 | public float MaxWanderDistance = 5f; 21 | 22 | [Tooltip("This is how long the AI will wait once it reaches it's new position while wandering!")] 23 | public float WanderIdleTime = 5f; 24 | 25 | [Tooltip("This animator is where the variables inside the script will be sent to!")] 26 | public Animator AIAnimator; 27 | 28 | private bool IsMovingToNext; // Checking if the AI is in the process of moving to the next waypoint 29 | private bool HasSetNextPosition; // Used for checking if a new position has been generated 30 | private float InternalWaitTime; // Wandering idle wait time internal counter 31 | 32 | private NavMeshAgent Agent; // The AI's main agent 33 | private VRCPlayerApi TargetPlayer; // The PlayerApi of the target player. For local AIs, this will always be the local player! 34 | 35 | private void Start() 36 | { 37 | // Assign variables 38 | Agent = GetComponent(); 39 | TargetPlayer = Networking.LocalPlayer; 40 | InternalWaitTime = WanderIdleTime; 41 | 42 | IsMovingToNext = false; 43 | } 44 | 45 | private void Update() 46 | { 47 | // Feed AI info into the animator 48 | AIAnimator.SetInteger("State", CurrentState); 49 | AIAnimator.SetFloat("Velocity", Agent.velocity.magnitude); 50 | AIAnimator.SetBool("IsJumping", Agent.isOnOffMeshLink); 51 | 52 | // A switch statement is used to have specific sets of code run depending on the current state of the AI! 53 | switch (CurrentState) 54 | { 55 | case 0: 56 | if (!IsMovingToNext) // Runs while the AI is idle 57 | { 58 | HasSetNextPosition = false; 59 | 60 | InternalWaitTime -= Time.deltaTime; 61 | 62 | if (InternalWaitTime < 0f) 63 | { 64 | IsMovingToNext = true; 65 | 66 | InternalWaitTime = WanderIdleTime; 67 | 68 | StartWandering(); // Starts wandering once the idle timer has ended! 69 | 70 | //SendCustomEventDelayedSeconds(nameof(StartWandering), WanderIdleTime); Alternative to an internal timer 71 | } 72 | } 73 | 74 | if (Agent.remainingDistance < 1 // | Remaining distance must always be greater than the stopping distance! 75 | && HasSetNextPosition) //Makes sure a new position has been set! 76 | { 77 | IsMovingToNext = false; 78 | 79 | InternalWaitTime = WanderIdleTime; 80 | } 81 | 82 | break; 83 | case 1: 84 | // When targeting the player, the AI will just track the target players root position! 85 | SetAIDestination(TargetPlayer.GetPosition()); 86 | break; 87 | 88 | } 89 | } 90 | 91 | public void StartWandering() // Function used to force the AI to find a new random position! 92 | { 93 | SetAIDestination(CalculateRandomPosition(MaxWanderDistance)); 94 | } 95 | 96 | public void SetAIDestination(Vector3 Target) // Used for setting the AI's next destination! 97 | { 98 | HasSetNextPosition = true; 99 | Agent.SetDestination(Target); 100 | } 101 | 102 | private Vector3 CalculateRandomPosition(float dist) // Calculates a navmesh position within specific distance constraints! 103 | { 104 | var randDir = transform.position + Random.insideUnitSphere * dist; // Finds a point within a 3D space around the AI! 105 | 106 | NavMeshHit hit; 107 | 108 | NavMesh.SamplePosition(randDir, out hit, dist, NavMesh.AllAreas); // Uses the calculated point to find the nearest navmesh position! 109 | 110 | return hit.position; 111 | } 112 | 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Scripts/BasicToggleableAI.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aa9dc486339e0694091fb9d7693c0dec 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Scripts/BasicWanderingAI.cs: -------------------------------------------------------------------------------- 1 | // Script created by Centauri, as part of the SimpleAI unitypackage! 2 | 3 | using UdonSharp; 4 | using UnityEngine; 5 | using UnityEngine.AI; 6 | using VRC.SDKBase; 7 | using VRC.Udon; 8 | 9 | namespace SimpleAI 10 | { 11 | public class BasicWanderingAI : UdonSharpBehaviour 12 | { 13 | [Header("Basic Wandering AI")] [Space] [Tooltip("This is the max distance the AI will wander from it's current position at once!")] 14 | public float MaxWanderDistance = 5f; 15 | 16 | [Tooltip("This is how long the AI will wait once it reaches it's new position while wandering!")] 17 | public float WanderIdleTime = 5f; 18 | 19 | [Tooltip("This animator is where the variables inside the script will be sent to!")] 20 | public Animator AIAnimator; 21 | 22 | private bool IsMovingToNext; // Checking if the AI is in the process of moving to the next waypoint 23 | private bool HasSetNextPosition; // Used for checking if a new position has been generated 24 | private float InternalWaitTime; // Wandering idle wait time internal counter 25 | 26 | private NavMeshAgent Agent; // The AI's main agent 27 | private VRCPlayerApi TargetPlayer; // Unused in the wandering AI 28 | 29 | private void Start() 30 | { 31 | // Assign variables 32 | Agent = GetComponent(); 33 | TargetPlayer = Networking.LocalPlayer; 34 | InternalWaitTime = WanderIdleTime; 35 | 36 | IsMovingToNext = false; 37 | } 38 | 39 | private void Update() 40 | { 41 | // Feed AI info into the animator 42 | AIAnimator.SetFloat("Velocity", Agent.velocity.magnitude); 43 | AIAnimator.SetBool("IsJumping", Agent.isOnOffMeshLink); 44 | 45 | if (!IsMovingToNext) // Runs while the AI is idle 46 | { 47 | HasSetNextPosition = false; 48 | 49 | InternalWaitTime -= Time.deltaTime; 50 | 51 | if (InternalWaitTime < 0f) 52 | { 53 | IsMovingToNext = true; 54 | 55 | InternalWaitTime = WanderIdleTime; 56 | 57 | StartWandering(); // Starts wandering once the idle timer has ended! 58 | 59 | //SendCustomEventDelayedSeconds(nameof(StartWandering), WanderIdleTime); Alternative to an internal timer 60 | } 61 | } 62 | 63 | if (Agent.remainingDistance < 1 // | Remaining distance must always be greater than the stopping distance! 64 | && HasSetNextPosition) //Makes sure a new position has been set! 65 | { 66 | IsMovingToNext = false; 67 | 68 | InternalWaitTime = WanderIdleTime; 69 | } 70 | } 71 | 72 | public void StartWandering() // Function used to force the AI to find a new random position! 73 | { 74 | SetAIDestination(CalculateRandomPosition(MaxWanderDistance)); 75 | } 76 | 77 | public void SetAIDestination(Vector3 Target) // Used for setting the AI's next destination! 78 | { 79 | HasSetNextPosition = true; 80 | Agent.SetDestination(Target); 81 | } 82 | 83 | private Vector3 CalculateRandomPosition(float dist) // Calculates a navmesh position within specific distance constraints! 84 | { 85 | var randDir = transform.position + Random.insideUnitSphere * dist; // Finds a point within a 3D space around the AI! 86 | 87 | NavMeshHit hit; 88 | 89 | NavMesh.SamplePosition(randDir, out hit, dist, NavMesh.AllAreas); // Uses the calculated point to find the nearest navmesh position! 90 | 91 | return hit.position; 92 | } 93 | 94 | 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Scripts/BasicWanderingAI.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f047feb051414024295a7bcc8ba657c3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Scripts/DoggoFollowToggle.cs: -------------------------------------------------------------------------------- 1 | // Script created by Centauri, as part of the SimpleAI unitypackage! 2 | 3 | using UdonSharp; 4 | using UnityEngine; 5 | using VRC.SDKBase; 6 | using VRC.Udon; 7 | 8 | namespace SimpleAI 9 | { 10 | public class DoggoFollowToggle : UdonSharpBehaviour 11 | { 12 | [Header("Follow Toggle")] [Tooltip("The main controller for the target AI!")] 13 | public BasicToggleableAI AIController; 14 | 15 | public override void Interact() 16 | { 17 | // Assigns new state relative to last state! 18 | if (AIController.CurrentState == 0) 19 | { 20 | AIController.CurrentState = 1; 21 | } 22 | else if (AIController.CurrentState == 1) 23 | { 24 | AIController.CurrentState = 0; 25 | } 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Scripts/DoggoFollowToggle.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5ec4aff81eb339a448a1212110dea5ed 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Scripts/DoggoFollowToggleFetchAI.cs: -------------------------------------------------------------------------------- 1 | // Script created by Centauri, as part of the SimpleAI unitypackage! 2 | 3 | using UdonSharp; 4 | using UnityEngine; 5 | using VRC.SDKBase; 6 | using VRC.Udon; 7 | 8 | namespace SimpleAI 9 | { 10 | public class DoggoFollowToggleFetchAI : UdonSharpBehaviour 11 | { 12 | [Header("Follow Toggle!")] [Tooltip("Number of states that can be toggled between! Don't include special states such as fetch states in this counter!")] 13 | public int NumOfStates = 4; 14 | 15 | [Tooltip("The main controller for the target AI!")] 16 | public FetchAI AIController; 17 | 18 | public override void Interact() 19 | { 20 | // Assigns new state relative to last state! 21 | if (AIController.CurrentState < NumOfStates - 1) 22 | { 23 | AIController.CurrentState++; 24 | } 25 | else if (AIController.CurrentState >= NumOfStates - 1) 26 | { 27 | AIController.CurrentState = 0; 28 | } 29 | 30 | Debug.Log("New state is | " + AIController.CurrentState); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Scripts/DoggoFollowToggleFetchAI.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8bf28a7303a9e7740bb2000a8ebc1d40 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Scripts/DoggoFollowToggleMultiState.cs: -------------------------------------------------------------------------------- 1 | // Script created by Centauri, as part of the SimpleAI unitypackage! 2 | 3 | using UdonSharp; 4 | using UnityEngine; 5 | using VRC.SDKBase; 6 | using VRC.Udon; 7 | 8 | namespace SimpleAI 9 | { 10 | public class DoggoFollowToggleMultiState : UdonSharpBehaviour 11 | { 12 | [Header("Follow Toggle!")] 13 | [Tooltip("Number of states that can be toggled between! Don't include special states such as fetch states in this counter!")] 14 | public int NumOfStates = 4; 15 | [Tooltip("The main controller for the target AI!")] 16 | public MultiStateAI AIController; 17 | 18 | public override void Interact() 19 | { 20 | // Assigns new state relative to last state! 21 | if (AIController.CurrentState < NumOfStates-1) 22 | { 23 | AIController.CurrentState++; 24 | } 25 | else if (AIController.CurrentState >= NumOfStates-1) 26 | { 27 | AIController.CurrentState = 0; 28 | } 29 | 30 | Debug.Log("New state is | " + AIController.CurrentState); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Scripts/DoggoFollowToggleMultiState.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2ddfd4e1a9325b44e9d1e29b9bb9d71d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Scripts/FetchAI.cs: -------------------------------------------------------------------------------- 1 | // Script created by Centauri, as part of the SimpleAI unitypackage! 2 | 3 | using UdonSharp; 4 | using UnityEngine; 5 | using UnityEngine.AI; 6 | using VRC.SDKBase; 7 | using VRC.Udon; 8 | 9 | namespace SimpleAI 10 | { 11 | public class FetchAI : UdonSharpBehaviour 12 | { 13 | [Header("Fetch AI")] 14 | 15 | public int CurrentState; // The AIs internal state! 16 | // 0 - Wandering 17 | // 1 - Follow Player 18 | // 2 - Stand Still 19 | // 3 - Guard 20 | // 4 - GuardAgitated 21 | // 5 - Fetch Wait 22 | // 6 - Fetch Grab 23 | 24 | [Tooltip("This is the fetchable object! Each AI can only have 1!")] 25 | public FetcherPickup Fetchable; 26 | 27 | [Tooltip("This is the max distance the AI will wander from it's current position at once!")] 28 | public float MaxWanderDistance = 5f; 29 | [Tooltip("This is how long the AI will wait once it reaches it's new position while wandering!")] 30 | public float WanderIdleTime = 5f; 31 | 32 | [Tooltip("This animator is where the variables inside the script will be sent to!")] 33 | public Animator AIAnimator; 34 | 35 | [Space] 36 | [Header("Guard Variables")] 37 | [Tooltip("Collider used to detect players around the AI!")] 38 | public Collider GuardDetectionTrigger; 39 | [Tooltip("Time the AI will chase the player before reverting to its guard state!")] 40 | public float GuardChaseTime = 15f; 41 | 42 | private float GCTInternalTime; // Internal clock for the guard chase time 43 | private Vector3 GuardPos; // Internal guard position saved every time the AI first enters its guard state! 44 | 45 | private bool IsMovingToNext; // Checking if the AI is in the process of moving to the next waypoint 46 | private bool HasSetNextPosition; // Used for checking if a new position has been generated 47 | private float InternalWaitTime; // Wandering idle wait time internal counter 48 | 49 | private NavMeshAgent Agent; // The AI's main agent 50 | private VRCPlayerApi TargetPlayer; // The PlayerApi of the target player. For local AIs, this will always be the local player! 51 | 52 | private void Start() 53 | { 54 | // Set variables! 55 | Agent = GetComponent(); 56 | TargetPlayer = Networking.LocalPlayer; 57 | InternalWaitTime = WanderIdleTime; 58 | 59 | IsMovingToNext = false; 60 | GCTInternalTime = GuardChaseTime; 61 | } 62 | 63 | private void Update() 64 | { 65 | // Feed AI info into the animator 66 | AIAnimator.SetInteger("State", CurrentState); 67 | AIAnimator.SetFloat("Velocity", Agent.velocity.magnitude); 68 | AIAnimator.SetBool("IsJumping", Agent.isOnOffMeshLink); 69 | 70 | GuardDetectionTrigger.gameObject.SetActive(CurrentState == 3); // Sets detection state based on if the AI state is 3! 71 | 72 | switch (CurrentState) 73 | { 74 | case 0: // Wander 75 | if (!IsMovingToNext) // Runs while the AI is idle 76 | { 77 | HasSetNextPosition = false; 78 | 79 | InternalWaitTime -= Time.deltaTime; 80 | 81 | if (InternalWaitTime < 0f) 82 | { 83 | IsMovingToNext = true; 84 | 85 | InternalWaitTime = WanderIdleTime; 86 | 87 | StartWandering(); // Starts wandering once the idle timer has ended! 88 | 89 | //SendCustomEventDelayedSeconds(nameof(StartWandering), WanderIdleTime); Alternative to an internal timer 90 | } 91 | } 92 | 93 | if (Agent.remainingDistance < 1 // | Remaining distance must always be greater than the stopping distance! 94 | && HasSetNextPosition) //Makes sure a new position has been set! 95 | { 96 | IsMovingToNext = false; 97 | 98 | InternalWaitTime = WanderIdleTime; 99 | } 100 | 101 | break; 102 | case 1: // Target Player 103 | SetAIDestination(TargetPlayer.GetPosition()); // Sets AI target to the target players root position every update! 104 | break; 105 | case 2: // Stand Still 106 | break; 107 | case 3: // Guard 108 | GuardPos = transform.position; // While the guard is not in its agitated state, it will set it's guard position to its current position! 109 | GCTInternalTime = GuardChaseTime; // Resets internal timer! 110 | break; 111 | case 4: // Guard Agitated 112 | SetAIDestination(TargetPlayer.GetPosition()); // The AI now targets the player, chasing their root position! 113 | 114 | // Timer 115 | GCTInternalTime -= Time.deltaTime; 116 | if (GCTInternalTime < 0f) 117 | { 118 | // Resets back to its default guard state once it no longer is agitated! 119 | CurrentState = 3; 120 | GCTInternalTime = GuardChaseTime; 121 | SetAIDestination(GuardPos); 122 | } 123 | break; 124 | case 5: // Targets player as part of fetching! 125 | SetAIDestination(TargetPlayer.GetPosition()); 126 | break; 127 | case 6: // Targets fetchable as part of fetching! 128 | SetAIDestination(Fetchable.transform.position); 129 | break; 130 | } 131 | } 132 | 133 | public void StartWandering() // Function used to force the AI to find a new random position! 134 | { 135 | SetAIDestination(CalculateRandomPosition(MaxWanderDistance)); 136 | } 137 | 138 | public void SetAIDestination(Vector3 Target) // Used for setting the AI's next destination! 139 | { 140 | HasSetNextPosition = true; 141 | Agent.SetDestination(Target); 142 | } 143 | 144 | private Vector3 CalculateRandomPosition(float dist) // Calculates a navmesh position within specific distance constraints! 145 | { 146 | var randDir = transform.position + Random.insideUnitSphere * dist; // Finds a point within a 3D space around the AI! 147 | 148 | NavMeshHit hit; 149 | 150 | NavMesh.SamplePosition(randDir, out hit, dist, NavMesh.AllAreas); // Uses the calculated point to find the nearest navmesh position! 151 | 152 | return hit.position; 153 | } 154 | } 155 | } 156 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Scripts/FetchAI.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ba611656fef92c46a6c30fca6a9bb6c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Scripts/FetcherPickup.cs: -------------------------------------------------------------------------------- 1 | // Script created by Centauri, as part of the SimpleAI unitypackage! 2 | 3 | using UdonSharp; 4 | using UnityEngine; 5 | using UnityEngine.AI; 6 | using VRC.SDK3.Components; 7 | using VRC.SDKBase; 8 | using VRC.Udon; 9 | 10 | namespace SimpleAI 11 | { 12 | public class FetcherPickup : UdonSharpBehaviour 13 | { 14 | [Header("Fetchable Object")] [Tooltip("AI Controller reference")] 15 | public FetchAI AIController; 16 | 17 | [Tooltip("Transform position the fetchable attaches itself to when being carried by the AI")] 18 | public Transform AIGrabPoint; 19 | 20 | private bool IsBeingFetched; //Internal check for if the fetchable object is currently in the process of being fetched! 21 | 22 | [Tooltip("Minimum distance from the player the fetchable object needs to be in order for it to be a valid throw!")] 23 | public float MinDistance = 5f; 24 | 25 | private Rigidbody rb; // Internal rigidbody variable 26 | private VRCPickup Pickup; // Internal Pickup variable 27 | private bool IsBeingThrown; // Internal throw check 28 | private bool IsBeingCarriedBack; // Internal carry check 29 | 30 | private VRCPlayerApi LocalPlayer; // Local Player VRCPlayerApi 31 | private NavMeshAgent Agent; // AI Agent 32 | 33 | private void Start() 34 | { 35 | // Assign variables 36 | rb = GetComponent(); 37 | LocalPlayer = Networking.LocalPlayer; 38 | Agent = AIController.transform.GetComponent(); 39 | Pickup = ((VRCPickup) GetComponent(typeof(VRCPickup))); 40 | } 41 | 42 | public override void OnPickup() 43 | { 44 | // Forces AI to fetch state when picked up 45 | AIController.CurrentState = 5; 46 | IsBeingFetched = false; 47 | IsBeingThrown = false; 48 | } 49 | 50 | public override void OnDrop() 51 | { 52 | // Begins throw check on drop! 53 | IsBeingThrown = true; 54 | } 55 | 56 | private void Update() 57 | { 58 | if (IsBeingThrown && Vector3.Distance(LocalPlayer.GetPosition(), transform.position) > MinDistance) // Fires when the fetchable is beyond the minimum distance after thrown! 59 | { 60 | if (rb.IsSleeping()) // Waits until the fetchable has properly landed, based on if it is sleeping! (Not moving) 61 | { 62 | // Calculates navmesh path between the AI and the fetchable 63 | NavMeshPath PathTest = new NavMeshPath(); 64 | Agent.CalculatePath(transform.position, PathTest); 65 | 66 | // Checks if the path is valid! 67 | if (PathTest.status == NavMeshPathStatus.PathComplete) 68 | { 69 | // If valid, the AI will now attempt to grab the fetchable! 70 | IsBeingThrown = false; 71 | IsBeingFetched = true; 72 | AIController.CurrentState = 6; 73 | } 74 | else 75 | { 76 | // If not valid, the AI will keep its current state, and the fetchable will be reset! 77 | IsBeingThrown = false; 78 | AIController.CurrentState = 5; 79 | ResetPickup(); 80 | } 81 | } 82 | } 83 | 84 | if (IsBeingFetched && !IsBeingCarriedBack && 85 | (Agent.velocity.magnitude < 0.2f && Vector3.Distance(Agent.transform.position, transform.position) <= Agent.stoppingDistance + 1f)) 86 | { 87 | // Once the AI has reached the pickup, it will now take it and begin carrying it back to the player! 88 | AITakePickup(); 89 | } 90 | 91 | if (IsBeingCarriedBack) 92 | { 93 | transform.SetPositionAndRotation(AIGrabPoint.position, AIGrabPoint.rotation); // While being carried back, the fetchable's position will be set to the grab point! 94 | AIController.CurrentState = 5; // Will force the AI to stay in the fetching state until the AI has completed bringing it back! 95 | 96 | if ((Agent.velocity.magnitude < 0.2f && 97 | Vector3.Distance(Agent.transform.position, LocalPlayer.GetPosition()) <= Agent.stoppingDistance + 1f)) // Fires once the AI has reached the player! 98 | { 99 | // Drops the fetchable, and resets the AI to its default player follow state! 100 | IsBeingCarriedBack = false; 101 | IsBeingThrown = false; 102 | IsBeingFetched = false; 103 | 104 | AIController.CurrentState = 1; // NOTE | Will want to modify if existing states are modified, to ensure it resets to the default state! 105 | Pickup.pickupable = true; 106 | } 107 | } 108 | } 109 | 110 | private void AITakePickup() 111 | { 112 | // Grabs fetchable and ensures it can't be stolen by a player! 113 | IsBeingCarriedBack = true; 114 | Pickup.pickupable = false; 115 | } 116 | 117 | public void ResetPickup() 118 | { 119 | // Resets fetchable to the players right hand! 120 | transform.position = LocalPlayer.GetTrackingData(VRCPlayerApi.TrackingDataType.RightHand).position; 121 | } 122 | } 123 | } 124 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Scripts/FetcherPickup.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 15183827fb096374583d74bc5d564269 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Scripts/GuardDetectionSphere.cs: -------------------------------------------------------------------------------- 1 | // Script created by Centauri, as part of the SimpleAI unitypackage! 2 | 3 | using UdonSharp; 4 | using UnityEngine; 5 | using VRC.SDKBase; 6 | using VRC.Udon; 7 | 8 | namespace SimpleAI 9 | { 10 | public class GuardDetectionSphere : UdonSharpBehaviour 11 | { 12 | [Header("Guard Detection Volume! ")] [Tooltip("AI Controller reference!")] 13 | public MultiStateAI AIController; 14 | 15 | public override void OnPlayerTriggerEnter(VRCPlayerApi player) 16 | { 17 | // Sets the AI to follow the player if they enter the guard detection sphere! 18 | AIController.CurrentState = 4; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Scripts/GuardDetectionSphere.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ea3582a02777e024e8da9a9fa9421ade 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Scripts/GuardDetectionSphereFetch.cs: -------------------------------------------------------------------------------- 1 | // Script created by Centauri, as part of the SimpleAI unitypackage! 2 | 3 | using UdonSharp; 4 | using UnityEngine; 5 | using VRC.SDKBase; 6 | using VRC.Udon; 7 | 8 | namespace SimpleAI 9 | { 10 | public class GuardDetectionSphereFetch : UdonSharpBehaviour 11 | { 12 | [Header("Guard Detection Volume! ")] [Tooltip("AI Controller reference!")] 13 | public FetchAI AIController; 14 | 15 | public override void OnPlayerTriggerEnter(VRCPlayerApi player) 16 | { 17 | // Sets the AI to follow the player if they enter the guard detection sphere! 18 | AIController.CurrentState = 4; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Scripts/GuardDetectionSphereFetch.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3d5fc395bc099a448b76d690e35f4273 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Scripts/MultiStateAI.cs: -------------------------------------------------------------------------------- 1 | // Script created by Centauri, as part of the SimpleAI unitypackage! 2 | 3 | using UdonSharp; 4 | using UnityEngine; 5 | using UnityEngine.AI; 6 | using VRC.SDKBase; 7 | using VRC.Udon; 8 | 9 | namespace SimpleAI 10 | { 11 | public class MultiStateAI : UdonSharpBehaviour 12 | { 13 | [Header("MultiState AI")] [Space] public int CurrentState; // The AI's current internal state! 14 | // 0 - Wandering 15 | // 1 - Follow Player 16 | // 2 - Stand Still 17 | // 3 - Guard 18 | // 4 - GuardAgitated 19 | 20 | [Tooltip("This is the max distance the AI will wander from it's current position at once!")] 21 | public float MaxWanderDistance = 5f; 22 | 23 | [Tooltip("This is how long the AI will wait once it reaches it's new position while wandering!")] 24 | public float WanderIdleTime = 5f; 25 | 26 | [Tooltip("This animator is where the variables inside the script will be sent to!")] 27 | public Animator AIAnimator; 28 | 29 | [Space] [Header("Guard Variables")] [Tooltip("Collider used to detect players around the AI!")] 30 | public Collider GuardDetectionTrigger; 31 | 32 | [Tooltip("Time the AI will chase the player before reverting to its guard state!")] 33 | public float GuardChaseTime = 15f; 34 | 35 | private float GCTInternalTime; // Internal clock for the guard chase time 36 | private Vector3 GuardPos; // Internal guard position saved every time the AI first enters its guard state! 37 | 38 | private bool IsMovingToNext; // Checking if the AI is in the process of moving to the next waypoint 39 | private bool HasSetNextPosition; // Used for checking if a new position has been generated 40 | private float InternalWaitTime; // Wandering idle wait time internal counter 41 | 42 | private NavMeshAgent Agent; // The AI's main agent 43 | private VRCPlayerApi TargetPlayer; // The PlayerApi of the target player. For local AIs, this will always be the local player! 44 | 45 | private void Start() 46 | { 47 | // Assign variables! 48 | Agent = GetComponent(); 49 | TargetPlayer = Networking.LocalPlayer; 50 | InternalWaitTime = WanderIdleTime; 51 | 52 | IsMovingToNext = false; 53 | GCTInternalTime = GuardChaseTime; 54 | } 55 | 56 | private void Update() 57 | { 58 | // Feed AI info into the animator 59 | AIAnimator.SetInteger("State", CurrentState); 60 | AIAnimator.SetFloat("Velocity", Agent.velocity.magnitude); 61 | AIAnimator.SetBool("IsJumping", Agent.isOnOffMeshLink); 62 | 63 | GuardDetectionTrigger.gameObject.SetActive(CurrentState == 3); // Sets detection state based on if the AI state is 3! 64 | 65 | switch (CurrentState) 66 | { 67 | case 0: // Wander 68 | if (!IsMovingToNext) // Runs while the AI is idle 69 | { 70 | HasSetNextPosition = false; 71 | 72 | InternalWaitTime -= Time.deltaTime; 73 | 74 | if (InternalWaitTime < 0f) 75 | { 76 | IsMovingToNext = true; 77 | 78 | InternalWaitTime = WanderIdleTime; 79 | 80 | StartWandering(); // Starts wandering once the idle timer has ended! 81 | 82 | //SendCustomEventDelayedSeconds(nameof(StartWandering), WanderIdleTime); Alternative to an internal timer 83 | } 84 | } 85 | 86 | if (Agent.remainingDistance < 1 // | Remaining distance must always be greater than the stopping distance! 87 | && HasSetNextPosition) //Makes sure a new position has been set! 88 | { 89 | IsMovingToNext = false; 90 | 91 | InternalWaitTime = WanderIdleTime; 92 | } 93 | 94 | break; 95 | case 1: // Target Player 96 | SetAIDestination(TargetPlayer.GetPosition()); // Sets AI target to the target players root position every update! 97 | break; 98 | case 2: // Stand Still 99 | break; 100 | case 3: // Guard 101 | GuardPos = transform.position; // While the guard is not in its agitated state, it will set it's guard position to its current position! 102 | GCTInternalTime = GuardChaseTime; // Resets internal timer! 103 | break; 104 | case 4: // Guard Agitated 105 | SetAIDestination(TargetPlayer.GetPosition()); // The AI now targets the player, chasing their root position! 106 | 107 | // Timer 108 | GCTInternalTime -= Time.deltaTime; 109 | if (GCTInternalTime < 0f) 110 | { 111 | // Resets back to its default guard state once it no longer is agitated! 112 | CurrentState = 3; 113 | GCTInternalTime = GuardChaseTime; 114 | SetAIDestination(GuardPos); 115 | } 116 | 117 | break; 118 | } 119 | } 120 | 121 | public void StartWandering() // Function used to force the AI to find a new random position! 122 | { 123 | SetAIDestination(CalculateRandomPosition(MaxWanderDistance)); 124 | } 125 | 126 | public void SetAIDestination(Vector3 Target) // Used for setting the AI's next destination! 127 | { 128 | HasSetNextPosition = true; 129 | Agent.SetDestination(Target); 130 | } 131 | 132 | private Vector3 CalculateRandomPosition(float dist) // Calculates a navmesh position within specific distance constraints! 133 | { 134 | var randDir = transform.position + Random.insideUnitSphere * dist; // Finds a point within a 3D space around the AI! 135 | 136 | NavMeshHit hit; 137 | 138 | NavMesh.SamplePosition(randDir, out hit, dist, NavMesh.AllAreas); // Uses the calculated point to find the nearest navmesh position! 139 | 140 | return hit.position; 141 | } 142 | } 143 | } 144 | -------------------------------------------------------------------------------- /TLX AI/Local AI/Scripts/MultiStateAI.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2b75020e3ff40ae48a32cd926848ad67 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /TLX AI/Synced AI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: af924c8000211f649aa95837eb264338 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /TLX AI/Synced AI/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5bd0fda3b6f25964f8c52e37c8841964 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /TLX AI/Synced AI/Prefabs/Synced AI.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 37e6e49e6b9469e43835f3861706cf7e 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /TLX AI/Synced AI/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 76158e60d8f5cee498f069882cfce041 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /TLX AI/Synced AI/Scripts/BasicSyncedAI.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dafc56435bf09594fa808394814c4948 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /TLX AI/Synced AI/Scripts/SyncedDetectionSphere.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 44515383888c99548aa86441e5de4298 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /TLX AI/Synced AI/Scripts/SyncedFetcherPickup.cs: -------------------------------------------------------------------------------- 1 | // Script created by Centauri, as part of the SimpleAI unitypackage! 2 | 3 | using UdonSharp; 4 | using UnityEngine; 5 | using UnityEngine.AI; 6 | using VRC.SDK3.Components; 7 | using VRC.SDKBase; 8 | using VRC.Udon; 9 | using VRC.Udon.Common.Interfaces; 10 | 11 | namespace SimpleAI 12 | { 13 | public class SyncedFetcherPickup : UdonSharpBehaviour 14 | { 15 | [Header("Synced Fetchable Object")] [Tooltip("AI Controller reference")] 16 | public BasicSyncedAI AIController; 17 | 18 | [Tooltip("Transform position the fetchable attaches itself to when being carried by the AI")] 19 | public Transform AIGrabPoint; 20 | 21 | [Tooltip("Object sync reference! This is needed to for discontinuity checks!")] 22 | public VRCObjectSync OSync; 23 | 24 | private bool HasFlaggedDiscontinuity; // Internal discontinuity check 25 | 26 | [Tooltip("Internal check for if the fetchable object is currently in the process of being fetched!")] 27 | public bool IsBeingFetched; 28 | 29 | [Tooltip("Minimum distance from the player the fetchable object needs to be in order for it to be a valid throw!")] 30 | public float MinDistance = 5f; 31 | 32 | private Rigidbody rb; // Internal rigidbody variable 33 | private VRCPickup Pickup; // Internal Pickup variable 34 | private bool IsBeingThrown; // Internal throw check 35 | private bool IsBeingCarriedBack; // Internal carry check 36 | 37 | private VRCPlayerApi LocalPlayer; // Local Player VRCPlayerApi 38 | private NavMeshAgent Agent; // AI Agent 39 | 40 | public bool IsGrabbing; 41 | 42 | private void Start() 43 | { 44 | // Assign variables! 45 | rb = GetComponent(); 46 | LocalPlayer = Networking.LocalPlayer; 47 | Agent = AIController.transform.GetComponent(); 48 | Pickup = ((VRCPickup) GetComponent(typeof(VRCPickup))); 49 | } 50 | 51 | public override void OnPickup() 52 | { 53 | // Forces AI to fetch state when picked up 54 | IsBeingFetched = false; 55 | IsBeingThrown = false; 56 | 57 | IsGrabbing = true; 58 | 59 | if (Networking.IsOwner(Agent.gameObject)) // Ensures the relevant player is the owner of the object to allow them to play fetch! 60 | { 61 | AIController.CurrentState = 5; 62 | } 63 | else 64 | { 65 | Networking.SetOwner(Networking.LocalPlayer, Agent.gameObject); 66 | } 67 | } 68 | 69 | public override void OnOwnershipTransferred(VRCPlayerApi player) 70 | { 71 | // Sets relevant synced variables once ownership transfer is complete! 72 | if (IsGrabbing) 73 | { 74 | AIController.CurrentState = 5; 75 | } 76 | } 77 | 78 | public override void OnDrop() 79 | { 80 | // Begins throw check on drop! 81 | IsBeingThrown = true; 82 | IsGrabbing = false; 83 | } 84 | 85 | private void Update() 86 | { 87 | if (!Networking.IsOwner(Agent.gameObject)) return; // All update code only needs to run if the relevant player is the owner! If not, everything is handled for them! 88 | 89 | if (IsBeingThrown && Vector3.Distance(LocalPlayer.GetPosition(), transform.position) > MinDistance) // Fires when the fetchable is beyond the minimum distance after thrown! 90 | { 91 | if (rb.IsSleeping()) // Waits until the fetchable has properly landed, based on if it is sleeping! (Not moving) 92 | { 93 | // Calculates navmesh path between the AI and the fetchable 94 | NavMeshPath PathTest = new NavMeshPath(); 95 | Agent.CalculatePath(transform.position, PathTest); 96 | 97 | // Checks if the path is valid! 98 | if (PathTest.status == NavMeshPathStatus.PathComplete) 99 | { 100 | // If valid, the AI will now attempt to grab the fetchable! 101 | IsBeingThrown = false; 102 | IsBeingFetched = true; 103 | AIController.CurrentState = 6; 104 | } 105 | else 106 | { 107 | // If not valid, the AI will keep its current state, and the fetchable will be reset! 108 | IsBeingThrown = false; 109 | AIController.CurrentState = 5; 110 | ResetPickup(); 111 | } 112 | } 113 | } 114 | 115 | if (IsBeingFetched && !IsBeingCarriedBack && 116 | (Agent.velocity.magnitude < 0.2f && Vector3.Distance(Agent.transform.position, transform.position) <= Agent.stoppingDistance + 1f)) 117 | { 118 | // Once the AI has reached the pickup, it will now take it and begin carrying it back to the player! 119 | AITakePickup(); 120 | } 121 | 122 | if (IsBeingCarriedBack) 123 | { 124 | if (!HasFlaggedDiscontinuity) // Flags discontinuity! This makes the fetchable properly move to its new position without network based lerping! 125 | { 126 | OSync.FlagDiscontinuity(); 127 | HasFlaggedDiscontinuity = true; 128 | } 129 | 130 | transform.SetPositionAndRotation(AIGrabPoint.position, AIGrabPoint.rotation); // While being carried back, the fetchable's position will be set to the grab point! 131 | AIController.CurrentState = 5; // Will force the AI to stay in the fetching state until the AI has completed bringing it back! 132 | 133 | if ((Agent.velocity.magnitude < 0.2f && 134 | Vector3.Distance(Agent.transform.position, LocalPlayer.GetPosition()) <= Agent.stoppingDistance + 1f)) // Fires once the AI has reached the player! 135 | { 136 | IsBeingCarriedBack = false; 137 | IsBeingThrown = false; 138 | IsBeingFetched = false; 139 | 140 | HasFlaggedDiscontinuity = false; 141 | 142 | AIController.CurrentState = 1; 143 | SendCustomNetworkEvent(NetworkEventTarget.All, nameof(SetPickupable)); // Ensures all players can grab the pickup again! 144 | } 145 | } 146 | } 147 | 148 | public void SetPickupable() 149 | { 150 | Pickup.pickupable = true; 151 | } 152 | 153 | public void SetNotPickupable() 154 | { 155 | Pickup.pickupable = false; 156 | } 157 | 158 | private void AITakePickup() 159 | { 160 | // Grabs fetchable and ensures it can't be stolen by a player! 161 | IsBeingCarriedBack = true; 162 | Pickup.pickupable = false; 163 | } 164 | 165 | public void ResetPickup() 166 | { 167 | // Resets fetchable to the players right hand! 168 | transform.position = LocalPlayer.GetTrackingData(VRCPlayerApi.TrackingDataType.RightHand).position; 169 | } 170 | } 171 | } 172 | -------------------------------------------------------------------------------- /TLX AI/Synced AI/Scripts/SyncedFetcherPickup.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f3f0390cf65b36c40a96d5419800458f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /TLX AI/Synced AI/Scripts/SyncedToggle.cs: -------------------------------------------------------------------------------- 1 | // Script created by Centauri, as part of the SimpleAI unitypackage! 2 | 3 | using UdonSharp; 4 | using UnityEngine; 5 | using VRC.SDKBase; 6 | using VRC.Udon; 7 | using VRC.Udon.Common.Interfaces; 8 | 9 | namespace SimpleAI 10 | { 11 | public class SyncedToggle : UdonSharpBehaviour 12 | { 13 | [Header("Follow Toggle!")] [Tooltip("Number of states that can be toggled between! Don't include special states such as fetch states in this counter!")] 14 | public int NumOfStates = 4; 15 | 16 | [Tooltip("The main controller for the target AI!")] 17 | public BasicSyncedAI AIController; 18 | 19 | private bool IsOwnershipInteract; // Internal ownership check 20 | 21 | public override void Interact() 22 | { 23 | if (Networking.IsOwner(gameObject)) // Ensures the player is the owner of the target AI before changing the state, as the state is a synced variable! 24 | { 25 | ChangeState(); 26 | } 27 | else 28 | { 29 | Networking.SetOwner(Networking.LocalPlayer, AIController.gameObject); 30 | Networking.SetOwner(Networking.LocalPlayer, gameObject); 31 | IsOwnershipInteract = true; 32 | } 33 | } 34 | 35 | public void ChangeState() 36 | { 37 | // Changes the state relative to its existing state! 38 | if (AIController.CurrentState < NumOfStates - 1) 39 | { 40 | AIController.CurrentState++; 41 | } 42 | else if (AIController.CurrentState >= NumOfStates - 1) 43 | { 44 | AIController.CurrentState = 0; 45 | } 46 | } 47 | 48 | public override void OnOwnershipTransferred(VRCPlayerApi player) 49 | { 50 | // Forces the change state function to fire once the relevant player has taken ownership of the AI! 51 | if (IsOwnershipInteract) 52 | { 53 | ChangeState(); 54 | IsOwnershipInteract = false; 55 | } 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /TLX AI/Synced AI/Scripts/SyncedToggle.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e0e7ebde1865f29409b96c87ff11a4d6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /changelog.txt: -------------------------------------------------------------------------------- 1 | CHANGELOG [6/21/2022] v0.12 2 | 3 | - Fixed broken wandering on sync AI. 4 | - Modified sync AI animator to have different visuals for guarding. 5 | 6 | 7 | CHANGELOG [3/21/2022] v0.11 8 | 9 | - Fixed small issue that caused the sync AI to break for non-master clients. 10 | - Modified AI to be set to manual sync for non-synced behaviours. 11 | 12 | 13 | CHANGELOG [5/24/2021] v0.1 14 | 15 | - First release! -------------------------------------------------------------------------------- /changelog.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c2622866d543609489185326bddb66e8 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /version.txt: -------------------------------------------------------------------------------- 1 | v0.12 -------------------------------------------------------------------------------- /version.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8e681e28ac083bb40b597c9fd27388fb 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | --------------------------------------------------------------------------------