質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
UI

UIはUser Interfaceの略であり、人間がコンピュータとやりとりをするためのシステムです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

0回答

931閲覧

ラジアルスライダーの動きに音を付ける方法について

go53

総合スコア12

UI

UIはUser Interfaceの略であり、人間がコンピュータとやりとりをするためのシステムです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2019/09/10 07:00

前提・実現したいこと

イメージ説明
上図の温度表示ラジアルスライダーを回転させた時に、音が鳴るようにしたいです。
上図のUIは薄青色のハンドルが回転するようになっています。
音は0.5℃回転させる毎にカチッとなり、ハンドルを回すとカチカチカチッと鳴るように、単一の音を連続させたいと思っています。

下がラジアルスライダーのスクリプトで、図の薄青色のハンドルのオブジェクトにアタッチしています。

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; public class PointCircle4 : MonoBehaviour, IDragHandler { [Range(0f, 1f)] public float value; public float radius; public float min; public float max; public TemperatureText temperatureText; RectTransform rectTransfrom; Vector2 parentPosition; public void Start() { rectTransfrom = GetComponent<RectTransform>(); parentPosition = rectTransfrom.parent.transform.position; } public void OnDrag(PointerEventData data) { var diff = new Vector2(data.position.x - parentPosition.x, data.position.y - parentPosition.y); float radian = Mathf.Atan2(diff.y, diff.x); if (radian < -Mathf.PI / 2f) { radian += Mathf.PI * 2f; } radian = Mathf.Clamp(radian, min, max); value = 1f - Mathf.InverseLerp(min, max, radian); } public void SetValue(float value) { this.value = value; } public void Update() { float radian = Mathf.Lerp(min, max, 1 - value); //rectTransfrom.localPosition = new Vector2(Mathf.Cos(radian), Mathf.Sin(radian)) * radius; Vector3 dir = new Vector2(Mathf.Cos(radian), Mathf.Sin(radian)); rectTransfrom.localPosition = dir * radius; rectTransfrom.localRotation = Quaternion.LookRotation(Vector3.forward, dir); temperatureText.value = value; } }

音は、オブジェクトにAudioSourceを付けるとして、どうすればスライダーが回転した時に音が鳴るように出来るのでしょうか。

補足情報(FW/ツールのバージョンなど)

今回の動作は、Uduinoを介して可変抵抗で動かします。
スクリプトの下記部分は、そのイベント関数に関連する物だと思います。
public void SetValue(float value)
{
this.value = value;
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問