1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- using System;
- using UnityEngine;
- public class OVRLipSyncContextTextureFlip : MonoBehaviour
- {
- private void Start()
- {
- this.lipsyncContext = base.GetComponent<OVRLipSyncContextBase>();
- if (this.lipsyncContext == null)
- {
- Debug.Log("LipSyncContextTextureFlip.Start WARNING: No lip sync context component set to object");
- }
- }
- private void Update()
- {
- if (this.lipsyncContext != null && this.material != null)
- {
- OVRLipSync.Frame currentPhonemeFrame = this.lipsyncContext.GetCurrentPhonemeFrame();
- if (currentPhonemeFrame != null)
- {
- for (int i = 0; i < currentPhonemeFrame.Visemes.Length; i++)
- {
- this.oldFrame.Visemes[i] = this.oldFrame.Visemes[i] * this.smoothing + currentPhonemeFrame.Visemes[i] * (1f - this.smoothing);
- }
- this.SetVisemeToTexture();
- }
- }
- }
- private void SetVisemeToTexture()
- {
- int num = -1;
- float num2 = 0f;
- for (int i = 0; i < this.oldFrame.Visemes.Length; i++)
- {
- if (this.oldFrame.Visemes[i] > num2)
- {
- num = i;
- num2 = this.oldFrame.Visemes[i];
- }
- }
- if (num != -1 && num < this.Textures.Length)
- {
- Texture texture = this.Textures[num];
- if (texture != null)
- {
- this.material.SetTexture("_MainTex", texture);
- }
- }
- }
- public Material material;
- public Texture[] Textures = new Texture[OVRLipSync.VisemeCount];
- public float smoothing;
- private OVRLipSyncContextBase lipsyncContext;
- private OVRLipSync.Frame oldFrame = new OVRLipSync.Frame();
- }
|