Пример #1
0
    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");
            }
        }
    }
Пример #2
0
 // 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>();
 }