RuneBehaviour.Update C# (CSharp) Method

Update() private method

private Update ( ) : void
return void
	void Update () {
        float step;
        Ray camRay;
        float distance;

        switch (_state)
        {
            case State.BeingTaken:
                camRay = Camera.main.ScreenPointToRay(Input.mousePosition);
                if (_plane.Raycast(camRay, out distance))
                {
                    step = 4 * _runeSpeed * Time.deltaTime;
                    transform.position = Vector3.Slerp(transform.position, camRay.GetPoint(distance), step);
                    if (Vector3.SqrMagnitude(transform.position - camRay.GetPoint(distance)) < 0.0001)
                    {
                        _state = State.Held;
                    }
                }
                break;
            case State.Held:
                camRay = Camera.main.ScreenPointToRay(Input.mousePosition);
                if (_plane.Raycast(camRay, out distance))
                {
                    gameObject.transform.position = camRay.GetPoint(distance);
                }
                break;
            case State.BeingReleased:
                step = _runeSpeed * Time.deltaTime;
                transform.localPosition = Vector3.Slerp(transform.localPosition, _upPosition, step);
                //transform.position = Vector3.MoveTowards(transform.position, _initialPosition, Mathf.Lerp(0, Vector3.Distance(_initialPosition, transform.position), 0.1f));

                if (Vector3.SqrMagnitude(transform.localPosition - _upPosition) < 0.00001)
                {
                    _state = State.Static;
                }
                break;
            case State.Static:
                break;
            default:
                break;
        }
	}
}