campfire/Assets/SteamVR/InteractionSystem/Core/Scripts/LinearBlendshape.cs

52 lines
1.2 KiB
C#
Raw Permalink Normal View History

2020-04-29 19:40:05 +02:00
//======= Copyright (c) Valve Corporation, All rights reserved. ===============
//
// Purpose: Set the blend shape weight based on a linear mapping
//
//=============================================================================
using UnityEngine;
using System.Collections;
namespace Valve.VR.InteractionSystem
{
//-------------------------------------------------------------------------
public class LinearBlendshape : MonoBehaviour
{
public LinearMapping linearMapping;
public SkinnedMeshRenderer skinnedMesh;
private float lastValue;
//-------------------------------------------------
void Awake()
{
if ( skinnedMesh == null )
{
skinnedMesh = GetComponent<SkinnedMeshRenderer>();
}
if ( linearMapping == null )
{
linearMapping = GetComponent<LinearMapping>();
}
}
//-------------------------------------------------
void Update()
{
float value = linearMapping.value;
//No need to set the blend if our value hasn't changed.
if ( value != lastValue )
{
float blendValue = Util.RemapNumberClamped( value, 0f, 1f, 1f, 100f );
skinnedMesh.SetBlendShapeWeight( 0, blendValue );
}
lastValue = value;
}
}
}