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; }
//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); } }
//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; } }