void Start() { laneMovementDirection = Vector3.zero; currentLane = 1; slideFromAir = false; capsuleCollider = this.gameObject.GetComponent <CapsuleCollider>(); plot = new TouchPlot(); worldMover = GameObject.Find("WorldMover").GetComponent <WorldMover>(); animator = GetComponent <Animator>(); Func <int, int, float> calcDistanceBetweenLane = (l1, l2) => Mathf.Abs( LaneOriginPoints.transform.GetChild(l2).transform.position.x - LaneOriginPoints.transform.GetChild(l1).transform.position.x ); for (int i = 1; i < LaneOriginPoints.transform.childCount; i++) { if (i < 2) { distanceBetweenEachLane = calcDistanceBetweenLane(i - 1, i); } else if (Debug.isDebugBuild) { Debug.Assert(calcDistanceBetweenLane(i - 1, i) == distanceBetweenEachLane, "The distance between lanes must consistent"); } } }
// Use this for initialization void Start() { player = GetComponent <CharacterController>(); col = GetComponent <CapsuleCollider>(); anim = GetComponent <Animator>(); plot = new TouchPlot(); gravity = 37.0f; jumpforce = 20.0f; desiredLane = 0; speed = 80f; verticalVelocity = 0.0f; zedOrigin = gameObject.transform.position.z; slideFromAir = false; isSliding = false; currentLane = desiredLane; closeEnoughToLane = 0.05f; player.stepOffset = 0.3f; player.skinWidth = player.radius * 0.1f; player.slopeLimit = 45; WorldMoverref = FindObjectOfType <WorldMover>(); }