using UnityEngine; using UnityEngine.Networking; namespace RoR2.Projectile; [RequireComponent(typeof(ProjectileController))] [RequireComponent(typeof(CharacterController))] public class ProjectileCharacterController : MonoBehaviour { private Vector3 downVector; public float velocity; public float lifetime = 5f; private float timer; private ProjectileController projectileController; private CharacterController characterController; private void Awake() { downVector = Vector3.down * 3f; projectileController = GetComponent(); characterController = GetComponent(); } private void FixedUpdate() { if (NetworkServer.active || projectileController.isPrediction) { characterController.Move((base.transform.forward + downVector) * (velocity * Time.fixedDeltaTime)); } if (NetworkServer.active) { timer += Time.fixedDeltaTime; if (timer > lifetime) { Object.Destroy(base.gameObject); } } } }