void Start() { collider = GetComponent <BoxCollider2D>(); rayCastOrigins = new RayCastOrigins(); CalculateRaySpacing(); collisions.Init(); }
public void Awake() { _boxCollider = this.GetComponent <BoxCollider2D>(); rayOrigins = new RayCastOrigins(); RecalculateDistanceBetweenRays(); collisionState = new CharacterCollisionState2D(); }
public const float SKIN_WIDTH = 0.06f;// 0.01f; public static void CalculateRaySpacing(Collider collider, ref RayCastOrigins rayCastOrigins) { Bounds bounds = collider.bounds; bounds.Expand(SKIN_WIDTH * -2); rayCastOrigins.HorizontalRayCount = Mathf.Clamp(rayCastOrigins.HorizontalRayCount, 2, int.MaxValue); rayCastOrigins.VerticalRayCount = Mathf.Clamp(rayCastOrigins.VerticalRayCount, 2, int.MaxValue); rayCastOrigins.HorizontalRaySpacing = bounds.size.y / (rayCastOrigins.HorizontalRayCount - 1); rayCastOrigins.VerticalRaySpacing = bounds.size.x / (rayCastOrigins.VerticalRayCount - 1); }
public static void UpdateRayCastOrigins(Collider collider, ref RayCastOrigins rayCastOrigins) { Bounds bounds = collider.bounds; bounds.Expand(SKIN_WIDTH * -2); rayCastOrigins.BottomLeft = new Vector2(bounds.min.x, bounds.min.y); rayCastOrigins.BottomRight = new Vector2(bounds.max.x, bounds.min.y); rayCastOrigins.TopLeft = new Vector2(bounds.min.x, bounds.max.y); rayCastOrigins.TopRight = new Vector2(bounds.max.x, bounds.max.y); }
// Start void Start() { velocity = new Vector3(); // Set gravity gravity = -2 * jump.height_max / Mathf.Pow(jump.time_limit, 2) * gravity_mod; // Set speeds for y component of movement jump.speed_y_min = Mathf.Sqrt(2 * Mathf.Abs(gravity) * jump.height_min); jump.speed_y_max = Mathf.Abs(gravity) * jump.time_limit; // Initialize other stats; wall.is_sliding = false; is_right_facing = true; corners = new RayCastOrigins(); collisions = new Collisions(); damage_timer = 0; can_take_damage = true; }