How to change the size of a button のページで紹介されているPressableButtonのサイズ変更がウルトラめんどくさいのでボタンのサイズを楽に設定するコンポーネントです。PressableButtonにアタッチしてください。 使うかどうかは分からない。
コードです。
using System; using Microsoft.MixedReality.Toolkit.Input; using UnityEngine; namespace HoloLab.MRTK.UX.Extension { public sealed class ButtonSizeHelper : MonoBehaviour { [SerializeField] private Transform backPlate = null; [SerializeField] private Transform frontPlate = null; [SerializeField] private BoxCollider buttonCollider = null; [SerializeField] private NearInteractionTouchable nearInteractionTouchable = null; [Header("Size")] [SerializeField] [Range(0f, 0.1f)] private float ButtonWidth; [SerializeField] [Range(0f, 0.1f)] private float ButtonHeight; private void Reset() { backPlate = transform.Find("BackPlate/Quad"); frontPlate = transform.Find("CompressableButtonVisuals/FrontPlate"); buttonCollider = GetComponent<BoxCollider>(); nearInteractionTouchable = GetComponent<NearInteractionTouchable>(); var scale = backPlate.transform.localScale; ButtonWidth = scale.x; ButtonHeight = scale.y; } private void OnValidate() { var parentScale = backPlate.transform.parent.localScale; backPlate.transform.localScale = new Vector3( ButtonWidth, ButtonHeight, backPlate.transform.localScale.z); frontPlate.transform.localScale = new Vector3( ButtonWidth * parentScale.x, ButtonHeight * parentScale.y, frontPlate.transform.localScale.z); buttonCollider.size = frontPlate.transform.localScale; var adjustedSize = new Vector2( Math.Abs(Vector3.Dot(buttonCollider.size, nearInteractionTouchable.LocalRight)), Math.Abs(Vector3.Dot(buttonCollider.size, nearInteractionTouchable.LocalUp))); nearInteractionTouchable.SetBounds(adjustedSize); } } }