u/Fit-Establishment-66

why doesn't a single team just outbuy for the best players?

Why doesn't a big esports team with a lot of budget like T1 or 100T just basically outpay every other team for the best players' contract and dominate for a guaranteed 4 years? I've searched online and apparently there's no max salary cap for vct teams

reddit.com

Slope Movement changes direction than where originally aimed at

This one is weird, instead of the character moving on a slope like the first diagram, it does it like the second diagram where the movement isn't straight and where the player is aiming at. I assume this is a problem with ProjectOnPlane() but honestly doubting that.

https://preview.redd.it/3wxnu0fdh60h1.png?width=1152&format=png&auto=webp&s=2acb8fb51855f74d859dd8d6696eb778fcabab2c

using UnityEngine;
using UnityEngine.InputSystem;


public
 
class
 CharacterMovement : MonoBehaviour
{
    [SerializeField] Rigidbody rb;
    [SerializeField] InputActionAsset controls;
    [SerializeField] InputAction move;


    [Header("Debug")]
    [SerializeField] float currentVelocity;
    [SerializeField] float horizontalVelocity;
    float deltaTimeOffset = 100f;
    
    [Header("Movement")]
    [SerializeField] Vector2 movementDirection;
    [SerializeField] float speed;
    [SerializeField] float acceleration;
    Vector3 counterDir;


    [SerializeField] bool grounded;
    [SerializeField] bool onSlope;


    [SerializeField] float maxSlopeAngle;
    [SerializeField] float slopeAngle;
    [SerializeField] Vector3 slopePlane;
    [SerializeField] float touchSlopeAngle;
    float slopeSlideMultiplier = 0;


    void Awake()
    {
        rb = gameObject.GetComponent<Rigidbody>();


        move = controls.FindActionMap("Player").FindAction("Move");
    }


    void Update()
    {
        currentVelocity = rb.linearVelocity.magnitude;
        horizontalVelocity = Vector3.Magnitude(new Vector3(rb.linearVelocity.x, 0, rb.linearVelocity.z));
        InputReader();
    }


    void FixedUpdate()
    {
        if (!onSlope)
        {
            rb.AddForce(Vector3.down * Time.deltaTime * 800f, ForceMode.Acceleration);
        }


        if(touchSlopeAngle > maxSlopeAngle){
            rb.AddForce(Vector3.down * 4000f * Time.deltaTime, ForceMode.Acceleration);
        }


        if(touchSlopeAngle > maxSlopeAngle && touchSlopeAngle < 87f)
        {
            slopeSlideMultiplier = 0.25f;
        }
        else
        {
            slopeSlideMultiplier = 1f;
        }


        HorizontalMovement();
        CounterMovement();
        SlopeMovement();
    }


    void InputReader()
    {
        movementDirection = move.ReadValue<Vector2>();
    }


    void HorizontalMovement()
    {
        Vector3 moveDir = SlopeMovement();


        rb.AddForce(moveDir.normalized * speed * acceleration * Time.deltaTime * deltaTimeOffset * slopeSlideMultiplier, ForceMode.Acceleration);


        if(horizontalVelocity <= 0.001f)
        {
            rb.linearVelocity = new Vector3(0, rb.linearVelocity.y, 0);
        }
    }


    void CounterMovement()
    {
        if(movementDirection.magnitude <= 0.001f && horizontalVelocity <= 0.001f)
        {
            return;
        }


        if (onSlope || grounded)
        {
            counterDir = rb.linearVelocity;
        }
        else
        {
            counterDir = new Vector3(rb.linearVelocity.x, 0, rb.linearVelocity.z);
        }
        rb.AddForce(counterDir * -acceleration * Time.deltaTime * deltaTimeOffset, ForceMode.Acceleration);
    }


    Vector3 SlopeMovement()
    {
        Vector3 wishDir = transform.forward * movementDirection.y + transform.right * movementDirection.x;
        bool slopeCheck = Physics.Raycast(transform.position, Vector3.down, 
out
 RaycastHit hit, 1.5f);


        slopeAngle = Vector3.Angle(Vector3.up, slopePlane);
        slopePlane = hit.normal;


        if(slopeAngle > maxSlopeAngle || slopeAngle <= 0.001f)
        {
            onSlope = false;
        }
        else
        {
            onSlope = slopeCheck;
        }


        if (!onSlope)
        {
            rb.useGravity = true;
            return wishDir;
        }


        if(rb.linearVelocity.y > 0)
        {
            rb.AddForce(Vector3.down * 800f * Time.deltaTime, ForceMode.Acceleration);
        }


        rb.useGravity = false;
        return Vector3.ProjectOnPlane(wishDir, slopePlane).normalized;
    }


    void OnCollisionStay(Collision collision)
    {
        for (int contactpoint = 0; contactpoint < collision.contactCount; contactpoint++)
        {
            Vector3 touchSlope = collision.GetContact(contactpoint).normal;
            touchSlopeAngle = Vector3.Angle(Vector3.up, touchSlope);


            if(Vector3.Dot(touchSlope.normalized, Vector3.up) >= 0.975f)
            {
                grounded = true;
            }


            else
            {
                grounded = false;
            }
        }
    }


    void OnCollisionExit(Collision collision)
    {
        touchSlopeAngle = 0;
        grounded = false;
        onSlope = false;
    }
}
reddit.com
u/Fit-Establishment-66 — 14 days ago

I don't even know where to begin with this. This is what it looks like. I have disabled all community shaders related mods, I tried disabling dust. I tried disabling weather mods, This also happens outside.

EDIT: After further testing, I found that the community shader mod itself is most likely the problem, if anyone knows what setting could fix this that would be great.

u/Fit-Establishment-66 — 20 days ago