Skip to content

Instantly share code, notes, and snippets.

@markdekuijer
Last active December 1, 2019 14:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save markdekuijer/27511fc6ece25bb409910fa43729de87 to your computer and use it in GitHub Desktop.
Save markdekuijer/27511fc6ece25bb409910fa43729de87 to your computer and use it in GitHub Desktop.
private void LateUpdate()
{
if (inRange)
{
materialRenderer.SetPropertyBlock(inRangeBlockpreest);
}
if (grabbed && inPlace)
{
if (movePress.GetStateDown(SteamVR_Input_Sources.Any))
{
screwSound.Play();
}
else if (movePress.GetStateUp(SteamVR_Input_Sources.Any))
{
screwSound.Stop();
}
if (movePress.GetState(SteamVR_Input_Sources.Any))
{
diff = Mathf.Abs(previousDelta - m_MoveValue.axis.x);
previousDelta = m_MoveValue.axis.x;
passedDelta += diff;
}
if(passedDelta < 0) { passedDelta = 0; }
if(passedDelta > task.RequiredPassedDelta) { passedDelta = task.RequiredPassedDelta; }
float passedPercentage;
if(passedDelta != 0)
{
passedPercentage = passedDelta / task.RequiredPassedDelta;
}
else
{
passedPercentage = 0;
}
transform.position = Vector3.Lerp(targetPosition, task.FinalTargetPos, passedPercentage);
transform.rotation = Quaternion.Euler(lockRotationVector.x, lockRotationVector.y, Mathf.Lerp(0, task.TotalRotation, passedPercentage));
if (passedDelta == task.RequiredPassedDelta)
{
task.ObjectToScrew.transform.SetParent(null);
task.OnTaskComplete?.Invoke(task.ObjectToScrew);
inRange = false;
grabbed = false;
inPlace = false;
targetPosition = Vector3.zero;
passedDelta = 0;
task = null;
materialRenderer.SetPropertyBlock(defaultBlockPreset);
screwSound.Stop();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment