diff --git a/.github/workflows/VRC-Asset-Release-And-Upload.yml b/.github/workflows/VRC-Asset-Release-And-Upload.yml new file mode 100644 index 0000000..ac34bff --- /dev/null +++ b/.github/workflows/VRC-Asset-Release-And-Upload.yml @@ -0,0 +1,84 @@ +name: VRC Asset Release and Listing Upload +on: + push: + tags: + - "*.*.*" + +env: + ASSETS_PATH: . + RELEASE_PATH: Packages + ARTIFACT_DURATION: 30 # In days + UPLOAD_ENDPOINT: https://api.vrlabs.dev/packages/add + WORKFLOW_VERSION: 1.0.0 + +jobs: + build: + runs-on: "ubuntu-latest" + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Check if package.json exists + run: | + if [ ! -f package.json ]; then + echo "package.json not found" + exit 1 + fi + + - name: Get package.json + id: get_package_json + run: | + { + echo 'package_json<<"""' + echo $(cat package.json) + echo '"""' + } >> $GITHUB_OUTPUT + + - name: Get needed Data + id: job_data + run: | + version=$(echo "${{ github.ref_name }}") + version=$(echo $version | tr '[:upper:]' '[:lower:]') + echo "version=$version" >> $GITHUB_OUTPUT + major_version=$(echo $version | cut -d '.' -f 1) + minor_version=$(echo $version | cut -d '.' -f 2) + echo "major_version=$major_version" >> $GITHUB_OUTPUT + echo "minor_version=$minor_version" >> $GITHUB_OUTPUT + name="${{ fromJson(steps.get_package_json.outputs.package_json).name }}" + display_name="${{ fromJson(steps.get_package_json.outputs.package_json).displayName }}" + echo "package_name=$name" >> $GITHUB_OUTPUT + echo "package_display_name=$display_name" >> $GITHUB_OUTPUT + + - name: Create Packages + id: create_packages + uses: VRLabs/VRCTools-Packaging-Action@v1 + with: + path: '${{ env.ASSETS_PATH }}' + outputPath: '${{ env.RELEASE_PATH }}' + releaseUrl: 'https://github.com/${{ github.repository }}/releases/download/${{ steps.job_data.outputs.version }}/${{ steps.job_data.outputs.package_name }}-${{ steps.job_data.outputs.version }}.zip' + unityReleaseUrl: 'https://github.com/${{ github.repository }}/releases/download/${{ steps.job_data.outputs.version }}/${{ steps.job_data.outputs.package_name }}-${{ steps.job_data.outputs.version }}.unitypackage' + releaseVersion: '${{ steps.job_data.outputs.version }}' + + - name: Create Release + uses: softprops/action-gh-release@v1 + if: startsWith(github.ref, 'refs/tags/') + with: + name: "${{ steps.job_data.outputs.package_display_name }} ${{ steps.job_data.outputs.version }}" + files: | + ${{ steps.create_packages.outputs.unityPackagePath }} + ${{ steps.create_packages.outputs.vccPackagePath }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SOURCE_TAG: ${{ steps.job_data.outputs.version }} + + - name: Add server-json to Artifacts + uses: actions/upload-artifact@v3 + with: + name: server-json + path: ${{ steps.create_packages.outputs.serverPackageJsonPath }} + retention-days: ${{ env.ARTIFACT_DURATION }} + + - name: Send package info to a server + run: | + curl -X POST -H "Content-Type: application/json" -H "Vrl-Api-Key: ${{ secrets.LISTINGS_API_KEY }}" --data @${{ steps.create_packages.outputs.serverPackageJsonPath }} ${{ env.UPLOAD_ENDPOINT }} || exit 0 + shell: bash \ No newline at end of file diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml deleted file mode 100644 index c3a2ca6..0000000 --- a/.github/workflows/create-release.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: create-release -on: - push: - tags: - - "v*" -jobs: - build: - runs-on: "ubuntu-latest" - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Branch name - id: branch_name - run: | - echo ::set-output name=SOURCE_NAME::${GITHUB_REF#refs/*/} - echo ::set-output name=SOURCE_BRANCH::${GITHUB_REF#refs/heads/} - echo ::set-output name=SOURCE_TAG::${GITHUB_REF#refs/tags/} - - - name: Prepare Folder For Packaging - run: | - mkdir -p "Assets/VRLabs/Follower" - ls | grep -v "Assets" | xargs -i{} mv {} "Assets/VRLabs/Follower" - echo -e "fileFormatVersion: 2\nguid: 652a1ba5b00554143bc9a76307dbc4e8\nfolderAsset: yes\nDefaultImporter:\n externalObjects: {}\n userData: \n assetBundleName: \n assetBundleVariant: " > "Assets/VRLabs.meta" - echo -e "fileFormatVersion: 2\nguid: f71457bcffdb2c14cb8b10d7f5ad0a93\nfolderAsset: yes\nDefaultImporter:\n externalObjects: {}\n userData: \n assetBundleName: \n assetBundleVariant: " > "Assets/VRLabs/Follower.meta" - find "Assets/" -name \*.meta ! -name "Media.meta" -not -path "Assets/VRLabs/Follower/Media/*" > package - - - name: Create UnityPackage - env: - SOURCE_TAG: ${{ steps.branch_name.outputs.SOURCE_TAG }} - uses: pCYSl5EDgo/create-unitypackage@master - with: - package-path: 'Follower_${{ env.SOURCE_TAG }}.unitypackage' - include-files: package - - - name: Create Release - uses: softprops/action-gh-release@v1 - if: startsWith(github.ref, 'refs/tags/') - with: - name: "Follower ${{ env.SOURCE_TAG }}" - files: | - Follower_${{ env.SOURCE_TAG }}.unitypackage - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SOURCE_TAG: ${{ steps.branch_name.outputs.SOURCE_TAG }} diff --git a/FX.controller b/Follower FX.controller similarity index 93% rename from FX.controller rename to Follower FX.controller index d8fbda2..7d67c37 100644 --- a/FX.controller +++ b/Follower FX.controller @@ -9,7 +9,7 @@ AnimatorStateTransition: m_Name: m_Conditions: - m_ConditionMode: 1 - m_ConditionEvent: Follower.Stop + m_ConditionEvent: Follower/Stop m_EventTreshold: 0 m_DstStateMachine: {fileID: 0} m_DstState: {fileID: -2991692699483340776} @@ -36,21 +36,21 @@ AnimatorStateMachine: m_ChildStates: - serializedVersion: 1 m_State: {fileID: -2991692699483340776} - m_Position: {x: 10, y: 220, z: 0} + m_Position: {x: 30, y: 250, z: 0} - serializedVersion: 1 m_State: {fileID: 2507061558303221150} - m_Position: {x: 10, y: 150, z: 0} + m_Position: {x: 30, y: 180, z: 0} - serializedVersion: 1 m_State: {fileID: 1525845798234148065} - m_Position: {x: 10, y: 290, z: 0} + m_Position: {x: 30, y: 320, z: 0} m_ChildStateMachines: [] m_AnyStateTransitions: [] m_EntryTransitions: [] m_StateMachineTransitions: {} m_StateMachineBehaviours: [] - m_AnyStatePosition: {x: 30, y: 10, z: 0} - m_EntryPosition: {x: 30, y: 90, z: 0} - m_ExitPosition: {x: 30, y: 50, z: 0} + m_AnyStatePosition: {x: 50, y: 80, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 50, y: 40, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} m_DefaultState: {fileID: 2507061558303221150} --- !u!1102 &-2991692699483340776 @@ -86,10 +86,10 @@ AnimatorController: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: FX + m_Name: Follower FX serializedVersion: 5 m_AnimatorParameters: - - m_Name: Follower.Stop + - m_Name: Follower/Stop m_Type: 4 m_DefaultFloat: 0 m_DefaultInt: 0 @@ -117,7 +117,7 @@ AnimatorStateTransition: m_Name: m_Conditions: - m_ConditionMode: 2 - m_ConditionEvent: Follower.Stop + m_ConditionEvent: Follower/Stop m_EventTreshold: 0 m_DstStateMachine: {fileID: 0} m_DstState: {fileID: 1525845798234148065} @@ -140,7 +140,7 @@ AnimatorState: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Follow + m_Name: Active m_Speed: 1 m_CycleOffset: 0 m_Transitions: diff --git a/FX.controller.meta b/Follower FX.controller.meta old mode 100755 new mode 100644 similarity index 100% rename from FX.controller.meta rename to Follower FX.controller.meta diff --git a/Follower.prefab b/Follower.prefab index 8404fee..d516b33 100644 --- a/Follower.prefab +++ b/Follower.prefab @@ -26,12 +26,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1669249760399220748} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - - {fileID: 5349806979329730795} - {fileID: 5147591202370098870} + - {fileID: 5349806979329730795} - {fileID: 4330276376573234579} m_Father: {fileID: 0} m_RootOrder: 0 @@ -82,7 +82,7 @@ MonoBehaviour: position: {x: 0, y: 0, z: 0} rotation: {x: 0, y: 0, z: 0, w: 1} collisionTags: - - Follower + - Follower/Stop --- !u!114 &5719607805482665401 MonoBehaviour: m_ObjectHideFlags: 0 @@ -102,12 +102,12 @@ MonoBehaviour: position: {x: 0, y: 0, z: 0} rotation: {x: 0, y: 0, z: 0, w: 1} collisionTags: - - Follower + - Follower/Stop allowSelf: 1 allowOthers: 0 localOnly: 0 receiverType: 0 - parameter: Follower.Stop + parameter: Follower/Stop minVelocity: 0.05 --- !u!1 &3314792913649324533 GameObject: @@ -201,7 +201,7 @@ Transform: m_Children: - {fileID: 733502934842423558} m_Father: {fileID: 1675005943129074272} - m_RootOrder: 1 + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1818360609 &1569617139350710 RotationConstraint: @@ -354,7 +354,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 1675005943129074272} - m_RootOrder: 0 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1183024399 &3767271862023166392 LookAtConstraint: diff --git a/Instancer.meta b/Instancer.meta new file mode 100644 index 0000000..0557608 --- /dev/null +++ b/Instancer.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 111831d50daa80f408ab1202ec9173da +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Instancer/Follower Instancer.asmdef b/Instancer/Follower Instancer.asmdef new file mode 100644 index 0000000..7e4452a --- /dev/null +++ b/Instancer/Follower Instancer.asmdef @@ -0,0 +1,22 @@ +{ + "name": "VRLabs Follower Instancer", + "rootNamespace": "", + "references": [], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [ + { + "name": "dev.vrlabs.instancer", + "expression": "", + "define": "VRLABS_INSTANCER_FOUND" + } + ], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Instancer/Follower Instancer.asmdef.meta b/Instancer/Follower Instancer.asmdef.meta new file mode 100644 index 0000000..3083fe7 --- /dev/null +++ b/Instancer/Follower Instancer.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ec8624d9a6b42bd40b3e22aef0beaa82 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Instancer/Follower Instancer.cs b/Instancer/Follower Instancer.cs new file mode 100644 index 0000000..038f44b --- /dev/null +++ b/Instancer/Follower Instancer.cs @@ -0,0 +1,50 @@ +#if VRLABS_INSTANCER_FOUND +using System; +using System.Linq; +using System.Reflection; +using UnityEditor; +using UnityEngine; + +namespace VRLabs.Follower +{ + public class Follower : ScriptableObject + { + public const string packageName = "Follower"; + + public static string[] excludeRegexs = + { + ".*\\.cs", + ".*\\.asmdef", + "package.json" + }; + + [MenuItem("VRLabs/Create Instance/Follower")] + public static void FancyPackage() + { + Type instancerType = AppDomain.CurrentDomain.GetAssemblies() + .Where(x => x.GetType("VRLabs.Instancer.Instancer") != null) + .Select(x => x.GetType("VRLabs.Instancer.Instancer")).FirstOrDefault(); + + if (instancerType == null) + { + Debug.LogError("Instancer not found. To use this functionality, install the VRLabs Instancer from https://github.com/VRLabs/Instancer"); + return; + } + + MethodInfo instanceMethod = instancerType.GetMethod("Instance", BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic); + + if (instanceMethod == null) + { + Debug.LogError("Instance method not found"); + return; + } + + var editor = ScriptableObject.CreateInstance(); + var script = MonoScript.FromScriptableObject(editor); + var assetPath = AssetDatabase.GetAssetPath(script); + + instanceMethod.Invoke(null, new object[] { packageName, assetPath, excludeRegexs }); + } + } +} +#endif \ No newline at end of file diff --git a/Instancer/Follower Instancer.cs.meta b/Instancer/Follower Instancer.cs.meta new file mode 100644 index 0000000..5201f28 --- /dev/null +++ b/Instancer/Follower Instancer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8cc58fb7d2b97524984598f70c4a8dd2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/LICENSE b/LICENSE index df010af..6a98738 100755 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2022 VRLabs +Copyright (c) 2022 VRLabs LLC Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/Media/Preview.gif b/Media/Preview.gif new file mode 100644 index 0000000..7fcdd0e Binary files /dev/null and b/Media/Preview.gif differ diff --git a/Media/Preview.png b/Media/Preview.png new file mode 100644 index 0000000..7d0259a Binary files /dev/null and b/Media/Preview.png differ diff --git a/Media/Setup.mp4 b/Media/Setup.mp4 deleted file mode 100644 index 48a4613..0000000 Binary files a/Media/Setup.mp4 and /dev/null differ diff --git a/Media/Web/Preview.webp b/Media/Web/Preview.webp new file mode 100644 index 0000000..79d4334 Binary files /dev/null and b/Media/Web/Preview.webp differ diff --git a/Media/Web/Preview.webp.meta b/Media/Web/Preview.webp.meta new file mode 100644 index 0000000..d0839bd --- /dev/null +++ b/Media/Web/Preview.webp.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8f4cbcd4c45709f41bc2b977fae619ce +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Media/Web/PreviewGif.webp b/Media/Web/PreviewGif.webp new file mode 100644 index 0000000..5ad475e Binary files /dev/null and b/Media/Web/PreviewGif.webp differ diff --git a/Media/Web/PreviewGif.webp.meta b/Media/Web/PreviewGif.webp.meta new file mode 100644 index 0000000..c71ff76 --- /dev/null +++ b/Media/Web/PreviewGif.webp.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f4ee05902324c1844b2bdf042c93823f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Media/setup.mp4 b/Media/setup.mp4 new file mode 100644 index 0000000..3de1fed Binary files /dev/null and b/Media/setup.mp4 differ diff --git a/README.md b/README.md index 4ecb63f..f27813c 100755 --- a/README.md +++ b/README.md @@ -1,44 +1,87 @@ +
+ # Follower - -[![Generic badge](https://img.shields.io/badge/Unity-2019.4.31f1-informational.svg)](https://unity3d.com/unity/whats-new/2019.4.31) -[![Generic badge](https://img.shields.io/badge/SDK-AvatarSDK3-informational.svg)](https://vrchat.com/home/download) -[![Generic badge](https://img.shields.io/badge/License-MIT-informational.svg)](https://github.com/VRLabs/Follower/blob/main/LICENSE) + [![Generic badge](https://img.shields.io/github/downloads/VRLabs/Follower/total?label=Downloads)](https://github.com/VRLabs/Follower/releases/latest) +[![Generic badge](https://img.shields.io/badge/License-MIT-informational.svg)](https://github.com/VRLabs/Follower/blob/main/LICENSE) +[![Generic badge](https://img.shields.io/badge/Unity-2019.4.31f1-lightblue.svg)](https://unity3d.com/unity/whats-new/2019.4.31) +[![Generic badge](https://img.shields.io/badge/SDK-AvatarSDK3-lightblue.svg)](https://vrchat.com/home/download) + +[![Generic badge](https://img.shields.io/discord/706913824607043605?color=%237289da&label=DISCORD&logo=Discord&style=for-the-badge)](https://discord.vrlabs.dev/) +[![Generic badge](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fshieldsio-patreon.vercel.app%2Fapi%3Fusername%3Dvrlabs%26type%3Dpatrons&style=for-the-badge)](https://patreon.vrlabs.dev/) + +Make something slowly follow you and look at you + +![Follower](https://github.com/VRLabs/Follower/assets/76777936/f36a5cf9-8ac2-4a18-bae8-4d13e9a9c2ac) + +### ⬇️ [Download Latest Version](https://github.com/VRLabs/Follower/releases/latest) -A constraint-based follower. + +### 📦 [Add to VRChat Creator Companion](https://vrlabs.dev/packages?package=dev.vrlabs.follower) + +
+ +--- ## How it works -[Avatars Dynamics](https://docs.vrchat.com/docs/avatar-dynamics) contact components are used to animate a series of constraints. +* Using a [Damping Constraint](https://github.com/VRLabs/Damping-Constraints) inside of a [World Constraint](https://github.com/VRLabs/World-Constraint) we can make an object slowly follow the player. +* By using Contact Senders and Contact Receivers we can dynamically change the speed of the follower over time. ## Install guide -https://user-images.githubusercontent.com/45078979/165903507-9ab0fbe0-1b8f-4ce4-b87f-938ed7ed2ec3.mp4 +https://github.com/VRLabs/Follower/assets/76777936/eee1dcbb-0e9d-4f92-bb69-9bcbe50d9948 -Merge the FX controller to your own FX controller, using the [Avatars 3.0 Manager](https://github.com/VRLabs/Avatars-3.0-Manager) tool. - -"Follower.prefab" should go to the base of your Unity scene, which will give it base Unity scaling. +* Merge the Animator Controller ``Follower FX`` to your own FX Controller, using the [Avatars 3.0 Manager](https://github.com/VRLabs/Avatars-3.0-Manager) tool. +* Drag & Drop the ``Follower`` prefab into the base of your Hierarchy. +* Right click and unpack the prefab, then drag & drop it onto your avatar. +* Expand the prefab hierarchy and find ``Follower Target``. +* Move ``Follower Target`` outside of ``Follower`` and place it anywhere in your avatars hierarchy as needed. -Unpack the prefab by right-clicking it. +## How to use -Place "Follower" at the base of your avatar. +* Place the objects you want to follow you inside ``Container``. + * Alternatively you can constrain the objects to ``Container``. +* Editing the ``Follow`` animation clip will let you change the speed of the follower. -Remove "Follower Target" outside of "Follower" and place it anywhere in your avatar's hierarchy. Adjust the position transform to your taste. +## Performance stats -## How to use +```c++ +Constraints: 5 +Contact Receivers: 1 +Contact Senders: 1 +``` -"Container" is where you place your objects that you want to follow. +## Hierarchy layout -To change the speed of the follower, you can edit the Follow.anim clip inside the Animations folder. +```html +Follower +|-Container +| |-Cube +|-Look Constraint +|-Follower Target +| |-Look Target +``` -## Downloads +## Contributors -You can grab the latest version of the Follower in [Releases](https://github.com/VRLabs/Follower/releases/latest). +* [lin](https://github.com/oofdesu) ## License Follower is available as-is under MIT. For more information see [LICENSE](https://github.com/VRLabs/Follower/blob/main/LICENSE). -## Contact us +​ + +
+ +[](https://vrlabs.dev "VRLabs") + +[](https://discord.vrlabs.dev/ "VRLabs") + +[](https://patreon.vrlabs.dev/ "VRLabs") + +[](https://twitter.com/vrlabsdev "VRLabs") + +
-If you need help, our support channel is on [Discord](https://discord.vrlabs.dev). diff --git a/Resources/Animations/Follow.anim b/Resources/Animations/Follower Active.anim similarity index 99% rename from Resources/Animations/Follow.anim rename to Resources/Animations/Follower Active.anim index 7183949..17243da 100644 --- a/Resources/Animations/Follow.anim +++ b/Resources/Animations/Follower Active.anim @@ -6,7 +6,7 @@ AnimationClip: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Follow + m_Name: Follower Active serializedVersion: 6 m_Legacy: 0 m_Compressed: 0 diff --git a/Resources/Animations/Follow.anim.meta b/Resources/Animations/Follower Active.anim.meta old mode 100755 new mode 100644 similarity index 100% rename from Resources/Animations/Follow.anim.meta rename to Resources/Animations/Follower Active.anim.meta diff --git a/Resources/Animations/Idle.anim b/Resources/Animations/Follower Idle.anim old mode 100755 new mode 100644 similarity index 99% rename from Resources/Animations/Idle.anim rename to Resources/Animations/Follower Idle.anim index 0966d44..c3c5667 --- a/Resources/Animations/Idle.anim +++ b/Resources/Animations/Follower Idle.anim @@ -6,7 +6,7 @@ AnimationClip: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Idle + m_Name: Follower Idle serializedVersion: 6 m_Legacy: 0 m_Compressed: 0 diff --git a/Resources/Animations/Idle.anim.meta b/Resources/Animations/Follower Idle.anim.meta old mode 100755 new mode 100644 similarity index 100% rename from Resources/Animations/Idle.anim.meta rename to Resources/Animations/Follower Idle.anim.meta diff --git a/Resources/Animations/Init.anim b/Resources/Animations/Follower Init.anim similarity index 99% rename from Resources/Animations/Init.anim rename to Resources/Animations/Follower Init.anim index 9499418..b495709 100644 --- a/Resources/Animations/Init.anim +++ b/Resources/Animations/Follower Init.anim @@ -6,7 +6,7 @@ AnimationClip: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Init + m_Name: Follower Init serializedVersion: 6 m_Legacy: 0 m_Compressed: 0 diff --git a/Resources/Animations/Init.anim.meta b/Resources/Animations/Follower Init.anim.meta old mode 100755 new mode 100644 similarity index 100% rename from Resources/Animations/Init.anim.meta rename to Resources/Animations/Follower Init.anim.meta diff --git a/package.json b/package.json new file mode 100644 index 0000000..3e6f5d7 --- /dev/null +++ b/package.json @@ -0,0 +1,30 @@ +{ + "name": "dev.vrlabs.follower", + "displayName": "Follower", + "version": "1.3.999", + "license": "MIT", + "unity": "2019.4", + "description": "Make something slowly follow you and look at you", + "author": { + "name": "VRLabs", + "email": "mail@vrlabs.dev", + "url": "https://vrlabs.dev" + }, + "siteUrl": "https://github.com/VRLabs/Follower", + "vpmDependencies": { + "dev.vrlabs.instancer": "1.x" + }, + "legacyFolders": { + "Assets\\VRLabs\\Follower": "f71457bcffdb2c14cb8b10d7f5ad0a93" + }, + "unityPackageDestinationFolder": "Assets/VRLabs/Follower", + "vccRepoCategory": "systems", + "media": { + "previewImage": "https://raw.githubusercontent.com/VRLabs/Follower/main/Media/Web/Preview.webp", + "previewGif": "https://raw.githubusercontent.com/VRLabs/Follower/main/Media/Web/PreviewGif.webp" + }, + "unityPackageDestinationFolderMetas": { + "Assets/VRLabs": "652a1ba5b00554143bc9a76307dbc4e8", + "Assets/VRLabs/Follower": "f71457bcffdb2c14cb8b10d7f5ad0a93" + } +} \ No newline at end of file diff --git "a/\350\252\255\343\202\223\343\201\247\343\201\217\343\201\240\343\201\225\343\201\204.md.meta" b/package.json.meta similarity index 75% rename from "\350\252\255\343\202\223\343\201\247\343\201\217\343\201\240\343\201\225\343\201\204.md.meta" rename to package.json.meta index a520c97..ac18cd6 100644 --- "a/\350\252\255\343\202\223\343\201\247\343\201\217\343\201\240\343\201\225\343\201\204.md.meta" +++ b/package.json.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d518b5dca9a52134fa1f1a327a737903 +guid: f67e802f33675644f89a61b76ec41e22 TextScriptImporter: externalObjects: {} userData: diff --git "a/\350\252\255\343\202\223\343\201\247\343\201\217\343\201\240\343\201\225\343\201\204.md" "b/\350\252\255\343\202\223\343\201\247\343\201\217\343\201\240\343\201\225\343\201\204.md" deleted file mode 100644 index 6d3f665..0000000 --- "a/\350\252\255\343\202\223\343\201\247\343\201\217\343\201\240\343\201\225\343\201\204.md" +++ /dev/null @@ -1 +0,0 @@ -WIP \ No newline at end of file