//======= 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(); } if ( linearMapping == null ) { linearMapping = GetComponent(); } } //------------------------------------------------- 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; } } }