Health/Assets/UVC4UnityAndroidPlugin/Samples/Scripts/CubeHandler.cs

75 lines
1.6 KiB
C#

//#define ENABLE_LOG
/*
* Copyright (c) 2014 - 2022 t_saki@serenegiant.com
*/
using System;
using UnityEngine;
using UnityEngine.EventSystems;
public class CubeHandler : MonoBehaviour,
IBeginDragHandler, IDragHandler, IEndDragHandler, IPointerClickHandler
{
/**
* このスクリプトで操作するGameObject
* 未割り当ての場合はこのスクリプトがセットされているGameObjectを使う
*/
public GameObject TargetObject;
private Transform taregtTransform;
private Vector3 force = new Vector3();
private const float FACTOR = 1.0f;
private const float DECAY_RATE = 0.90f;
// Start is called before the first frame update
void Start()
{
if (TargetObject == null)
{ // TargetObjectが割り当てられていないときは
// このスクリプトがセットされているゲームオブジェクトを使う
TargetObject = gameObject;
}
taregtTransform = TargetObject.transform;
}
// // Update is called once per frame
// void Update()
// {
//
// }
void FixedUpdate()
{
// 回転させる
taregtTransform.Rotate(force * Time.deltaTime, Space.World);
// 減衰させる
force *= DECAY_RATE;
}
public void OnBeginDrag(PointerEventData eventData)
{
}
public void OnDrag(PointerEventData eventData)
{
// 移動量に応じて角度計算
float xAngle = eventData.delta.y * FACTOR;
float yAngle = -eventData.delta.x * FACTOR;
force += new Vector3(xAngle, yAngle, 0.0f);
}
public void OnEndDrag(PointerEventData eventData)
{
}
public void OnPointerClick(PointerEventData eventData)
{
#if (!NDEBUG && DEBUG && ENABLE_LOG)
Debug.Log("OnClick:");
#endif
}
}