Assignment for RMIT Mixed Reality in 2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

62 lines
1.8 KiB

namespace VRTK.Examples
{
using UnityEngine;
public class Zipline : VRTK_InteractableObject
{
[Header("Zipline Options", order = 4)]
public float downStartSpeed = 0.2f;
public float acceleration = 1.0f;
public float upSpeed = 1.0f;
public Transform handleEndPosition;
public Transform handleStartPosition;
public GameObject handle;
private bool isMoving = false;
private bool isMovingDown = true;
private float currentSpeed;
public override void OnInteractableObjectGrabbed(InteractableObjectEventArgs e)
{
base.OnInteractableObjectGrabbed(e);
isMoving = true;
}
protected override void Awake()
{
base.Awake();
currentSpeed = downStartSpeed;
}
protected override void Update()
{
base.Update();
if (isMoving)
{
Vector3 moveAmount;
if(isMovingDown)
{
currentSpeed += acceleration * Time.deltaTime;
moveAmount = Vector3.down * currentSpeed * Time.deltaTime;
}
else
{
moveAmount = Vector3.up * upSpeed * Time.deltaTime;
}
handle.transform.localPosition += moveAmount;
if((isMovingDown && handle.transform.localPosition.y <= handleEndPosition.localPosition.y) ||
(!isMovingDown && handle.transform.localPosition.y >= handleStartPosition.localPosition.y))
{
isMoving = false;
isMovingDown = !isMovingDown;
currentSpeed = downStartSpeed;
}
}
}
}
}