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

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

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

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

Q&A

解決済

1回答

1667閲覧

UNITY EventSystemのドラッグ時のdeltaの値を利用したい

soecio

総合スコア1

Unity

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

0グッド

0クリップ

投稿2021/08/19 10:08

前提・実現したいこと

EventSystemのドラッグ時のdeltaの値を
3Dゲームのカメラの移動に使用しようと考えました。

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.EventSystems; 5 6public class DragInput : MonoBehaviour, IPointerDownHandler 7{ 8 public Vector2 delta; 9 10 public void OnDrag(PointerEventData eventData) 11 { 12 delta = eventData.delta; 13 } 14}

これでドラッグ時のdeltaの値を取得できるのですが、
ポインタを停止させた時のdelta:(0,0)の時にvoid OnDrag()が動いてくれないので、
望んだ結果が得られませんでした。
(ポインタを適当に動かしてから停止させても(0,0)にならず、一つ前のフレームのdeltaの値が残る)
なにか簡単な解決方法はありますでしょうか、よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

OnBeginDrag と OnEndDrag も使えばいいと思います。

「移動」というのがどういうものかわかりませんが、FPS や TPS など普通のカメラの回転を作りたいならば Cinemachine を使った方がはるかに楽だと思います。

追記

問題が「ドラッグをやめた後もカメラが動き続けてしまう」ならばこういうやり方をするのもよいと思います。

csharp

1using UnityEngine; 2using UnityEngine.EventSystems; 3 4/// <summary> 5/// パネル等をドラッグしてカメラを動かす。 6/// 要EventSystem 7/// ドラッグするパネルにアタッチする 8/// </summary> 9public class DragCameraMove : MonoBehaviour, IDragHandler 10{ 11 [SerializeField] float m_moveSpeed = .01f; 12 13 void IDragHandler.OnDrag(PointerEventData eventData) 14 { 15 Vector3 pos = Camera.main.transform.position; 16 pos += (Camera.main.transform.forward * eventData.delta.y + Camera.main.transform.right * eventData.delta.x) * m_moveSpeed; 17 Camera.main.transform.position = pos; 18 } 19}

投稿2021/08/19 10:56

編集2021/08/19 11:19
bboydaisuke

総合スコア5291

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

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

soecio

2021/08/19 11:33

まずご回答ありがとうございます! deltaの値を取ることを考えてましたが、直接動かせば問題なかったですね。。 Cinemachineを知れたのも収穫でした。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問