Exemplo n.º 1
0
    void EnterRailGrind(GameObject other)
    {
        currentPath = other.GetComponent <Path_Comp>();

        currentRailCompletion = currentPath.GetNearestPoint(transform.position, currentPath);

        float dot = Vector3.Dot(playerCore.rb.velocity.normalized, currentPath.GetTangent(currentRailCompletion, currentPath));

        /*
         * if (dot > 0f)
         * {
         *  currentGrindSpeed = baseGrindSpeedFrac * playerCore.velocityMagnitude;
         * }
         *
         * if (dot < 0f)
         * {
         *  currentGrindSpeed = -baseGrindSpeedFrac * playerCore.velocityMagnitude;
         * }
         */

        currentGrindSpeed = baseGrindSpeedFrac * playerCore.velocityMagnitude * dot;

        grinding = true;
        playerCore.playerHomingAttack.airDashed = true;
        //Debug.Log("Player is at " + currentRailCompletion + " Of the rail's normalizedtime");
        playerCore.playerAnimationManager.playerAnimator.Play("Grind");
        playerCore.playerHomingAttack.airDashed = true;
    }
Exemplo n.º 2
0
 //for now, needs to be tweaked
 // add capsule version
 // and a version that checks how much tangent has changed
 void Start()
 {
     path = gameObject.GetComponent <Path_Comp>();
     for (float q = 0f; q < path.TotalDistance; q += step)
     {
         Instantiate(placementObjects, path.GetPoint(q + ringOffset, path), Quaternion.LookRotation(path.GetTangent(q + ringOffset, path)), ringParent);
     }
 }
Exemplo n.º 3
0
 //for now, needs to be tweaked
 // add capsule version
 // and a version that checks how much tangent has changed
 void Start()
 {
     path = gameObject.GetComponent <Path_Comp>();
     for (float q = 0f; q < path.TotalDistance; q += step)
     {
         SphereCollider m_Collider = gameObject.AddComponent <SphereCollider>();
         m_Collider.center    = transform.InverseTransformPoint(path.GetPoint(q + sphereOffset, path));
         m_Collider.radius    = sphereSize;
         m_Collider.isTrigger = true;
     }
 }