Initialer Upload neues Unity-Projekt
This commit is contained in:
88
Assets/Oculus/LipSync/Scenes/Scripts/LipSyncDemo_Control.cs
Normal file
88
Assets/Oculus/LipSync/Scenes/Scripts/LipSyncDemo_Control.cs
Normal file
@ -0,0 +1,88 @@
|
||||
/************************************************************************************
|
||||
Filename : LipSyncDemo_Control.cs
|
||||
Content : LipSync Demo controls
|
||||
Created : July 11, 2018
|
||||
Copyright : Copyright Facebook Technologies, LLC and its affiliates.
|
||||
All rights reserved.
|
||||
|
||||
Licensed under the Oculus Audio SDK License Version 3.3 (the "License");
|
||||
you may not use the Oculus Audio SDK except in compliance with the License,
|
||||
which is provided at the time of installation or download, or which
|
||||
otherwise accompanies this software in either electronic or hard copy form.
|
||||
|
||||
You may obtain a copy of the License at
|
||||
|
||||
https://developer.oculus.com/licenses/audio-3.3/
|
||||
|
||||
Unless required by applicable law or agreed to in writing, the Oculus Audio SDK
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
************************************************************************************/
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class LipSyncDemo_Control : MonoBehaviour {
|
||||
|
||||
[Tooltip("Key used to rotate the demo object up to 45 degrees to the left.")]
|
||||
public KeyCode rotateLeftKey = KeyCode.LeftArrow;
|
||||
[Tooltip("Key used to rotate the demo object up to 45 degrees to the right.")]
|
||||
public KeyCode rotateRightKey = KeyCode.RightArrow;
|
||||
[Tooltip("Key used to reset demo object rotation.")]
|
||||
public KeyCode resetRotationKey = KeyCode.DownArrow;
|
||||
|
||||
private float resetRotation = 180.0f;
|
||||
private float rotationAmount = 20.0f;
|
||||
private float rotationMax = 45.0f;
|
||||
|
||||
// Use this for initialization
|
||||
void Start () {
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update () {
|
||||
if (Input.GetKey(rotateLeftKey))
|
||||
{
|
||||
RotateObject(rotationAmount);
|
||||
}
|
||||
else if (Input.GetKey(rotateRightKey))
|
||||
{
|
||||
RotateObject(-rotationAmount);
|
||||
}
|
||||
else if (Input.GetKey(resetRotationKey))
|
||||
{
|
||||
RotateObject(resetRotation, true);
|
||||
}
|
||||
}
|
||||
|
||||
void RotateObject(float amountDegrees, bool absolute = false)
|
||||
{
|
||||
GameObject target = GameObject.Find("LipSyncMorphTarget_Female");
|
||||
|
||||
if (target == null)
|
||||
{
|
||||
// Try for other scene object
|
||||
target = GameObject.Find("RobotHead_TextureFlip");
|
||||
}
|
||||
|
||||
if (target)
|
||||
{
|
||||
if (absolute)
|
||||
{
|
||||
float deltaRotate = amountDegrees - target.transform.eulerAngles.y;
|
||||
target.transform.Rotate(Vector3.up * deltaRotate);
|
||||
}
|
||||
else
|
||||
{
|
||||
float deltaRotate = Time.deltaTime * amountDegrees;
|
||||
if (deltaRotate + target.transform.eulerAngles.y >= resetRotation - rotationMax &&
|
||||
deltaRotate + target.transform.eulerAngles.y <= resetRotation + rotationMax)
|
||||
{
|
||||
target.transform.Rotate(Vector3.up * deltaRotate);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user