diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a6a76e..5cfb0fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - NDMF ParameterProviderに対応 +- メニューの導入位置をカスタムする用のPrefabを追加 ### Changed diff --git a/ndmf_sps/Editor/Processor/Processor.cs b/ndmf_sps/Editor/Processor/Processor.cs index a81492d..fd23a7e 100644 --- a/ndmf_sps/Editor/Processor/Processor.cs +++ b/ndmf_sps/Editor/Processor/Processor.cs @@ -201,9 +201,20 @@ internal static void CreateAnim(BuildContext ctx) internal static void CreateMenu(BuildContext ctx) { if (sockets.Length == 0) return; - var spsMenusObjectRoot = new GameObject("SPS"); - spsMenusObjectRoot.transform.parent = ctx.AvatarRootTransform; - spsMenusObjectRoot.AddComponent(); + var menuTarget = ctx.AvatarRootObject.GetComponentInChildren(true); + GameObject spsMenusObjectRoot; + + if (menuTarget == null) + { + spsMenusObjectRoot = new GameObject("SPS_Soket_Menu"); + spsMenusObjectRoot.transform.parent = ctx.AvatarRootTransform; + spsMenusObjectRoot.AddComponent(); + } + else + { + spsMenusObjectRoot = menuTarget.gameObject; + } + var maRootManuItem = spsMenusObjectRoot.AddComponent(); maRootManuItem.Control = new VRCExpressionsMenu.Control(); diff --git a/ndmf_sps/Prefabs.meta b/ndmf_sps/Prefabs.meta new file mode 100644 index 0000000..12f939d --- /dev/null +++ b/ndmf_sps/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7460f8df59343924380a227d57900721 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ndmf_sps/Prefabs/SPS_Soket_Menu.prefab b/ndmf_sps/Prefabs/SPS_Soket_Menu.prefab new file mode 100644 index 0000000..1378898 --- /dev/null +++ b/ndmf_sps/Prefabs/SPS_Soket_Menu.prefab @@ -0,0 +1,61 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &9069365054628103632 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4339903812468463534} + - component: {fileID: 1627965553809385612} + - component: {fileID: 5965130926113291689} + m_Layer: 0 + m_Name: SPS_Soket_Menu + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4339903812468463534 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9069365054628103632} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1627965553809385612 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9069365054628103632} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7ef83cb0c23d4d7c9d41021e544a1978, type: 3} + m_Name: + m_EditorClassIdentifier: + menuToAppend: {fileID: 0} + installTargetMenu: {fileID: 0} +--- !u!114 &5965130926113291689 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9069365054628103632} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a6ea442d1734851b030c8739facd74f, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/ndmf_sps/Prefabs/SPS_Soket_Menu.prefab.meta b/ndmf_sps/Prefabs/SPS_Soket_Menu.prefab.meta new file mode 100644 index 0000000..ee44ef8 --- /dev/null +++ b/ndmf_sps/Prefabs/SPS_Soket_Menu.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f4ebfb1a3b5b6c64ab0a094e26d7d921 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ndmf_sps/Runtime/SPSMenuTarget.cs b/ndmf_sps/Runtime/SPSMenuTarget.cs new file mode 100644 index 0000000..b504d0e --- /dev/null +++ b/ndmf_sps/Runtime/SPSMenuTarget.cs @@ -0,0 +1,10 @@ +using UnityEngine; + +namespace com.meronmks.ndmfsps.runtime +{ + [AddComponentMenu(Values.COMPONENTS_BASE + nameof(SPSMenuTarget))] + public class SPSMenuTarget : MonoBehaviour + { + + } +} \ No newline at end of file diff --git a/ndmf_sps/Runtime/SPSMenuTarget.cs.meta b/ndmf_sps/Runtime/SPSMenuTarget.cs.meta new file mode 100644 index 0000000..fbe888d --- /dev/null +++ b/ndmf_sps/Runtime/SPSMenuTarget.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 7a6ea442d1734851b030c8739facd74f +timeCreated: 1771752536 \ No newline at end of file