Coding Errors

I have been trying to use this code from another question on Unity community to make my charector controller stick to platforms. I am getting compile errors so cant use it, I would ask on the actual question but it is from 2009 so not sure if users are still active.

Original question: CharacterController falls through or slips off moving platforms - Unity Answers

My Errors:
Assets/JKeepCharOnPlatform.cs(79,36): error CS1026: Unexpected symbol ;', expecting )’
Assets/JKeepCharOnPlatform.cs(79,37): error CS1026: Unexpected symbol =', expecting )’
Assets/JKeepCharOnPlatform.cs(79,66): error CS1026: Unexpected symbol =', expecting )’
Assets/JKeepCharOnPlatform.cs(89,1): error CS8025: Parsing error

I am new to coding and have no idea how to fix, Here is my code:

using UnityEngine;
using System.Collections;

  Helps keeping charactercontroller entities nicely on the platform
  Needs a Collider set as trigger in the gameobject this script is added to
  works best if collider is bit smaller as platform but extends quite a lot
  (say .5m or so) above the platform, As the platform possibly already has
  a normal collider the easiest way is to add a GameObject to the platform,
  give it a trigger collider and add this script. The yOffset is the vertical 
  offset the character should have above the platform (a good value to start
  with is half the y value of the Collider size).
public class JKeepCharOnPlatform : MonoBehaviour

    // helper struct to contain the transform of the player and the
    // vertical offset of the player (how high the center of the
    // charcontroller must be above the center of the platform)
    public struct Data
        public Data(CharacterController ctrl, Transform t, float yOffset)
            this.ctrl = ctrl;
            this.t = t;
            this.yOffset = yOffset;
        public CharacterController ctrl; // the char controller
        public Transform t; // transform of char
        public float yOffset; // y offset of char above platform center
    public float verticalOffset = 0.25f; // height above the center of object the char must be kept
                                         // store all playercontrollers currently on platform
    private Hashtable onPlatform = new Hashtable();
    // used to calculate horizontal movement
    private Vector3 lastPos;
    void OnTriggerEnter(Collider other)
        CharacterController ctrl = other.GetComponent(typeof(CharacterController)) as CharacterController;
        // make sure we only move objects that are rigidbodies or charactercontrollers.
        // this to prevent we move elements of the level itself
        if (ctrl == null) return;
        Transform t = other.transform; // transform of character
                                       // we calculate the yOffset from the character height and center
        float yOffset = ctrl.height / 2f - + verticalOffset;
        Data data = new Data(ctrl, t, yOffset);
        // add it to table of characters on this platform
        // we use the transform as key
        onPlatform.Add(other.transform, data);
    void OnTriggerExit(Collider other)
        // remove (if in table) the uncollided transform
    void Start()
        lastPos = transform.position;
    void Update()
        Vector3 curPos = transform.position;
        float y = curPos.y; // current y pos of platform
                            // we calculate the delta
        Vector3 delta = curPos - lastPos;
        float yVelocity = delta.y;
        // remove y component of delta (as we use delta only for correcting
        // horizontal movement now...
        delta.y = 0f;
        lastPos = curPos;
        // let's loop over all characters in the table
        foreach (DictionaryEntry d in onPlatform)
            Data data = (Data)d.Value; // get the data
            float charYVelocity = data.ctrl.velocity.y;
            // check if char seems to be jumping
            if ((charYVelocity & lt;= 0f) || (charYVelocity & lt;= yVelocity)) {
                // no, lets do our trick!
                Vector3 pos = data.t.position; // current charactercontroller position
                pos.y = y + data.yOffset; // adjust to new platform height
                pos += delta; // adjust to horizontal movement
                data.t.position = pos; // and write it back!


Thank you for any help, much appreciated!

Seems like a copy-and-paste problem. Some characters have been converted into their html entities.

if ((charYVelocity & lt;= 0f) || (charYVelocity & lt;= yVelocity)) {

“& lt;” should be “<”