void Update() { if (hasLifespan) { IncreaseAge(); } RunProjectileBehaviours(); if (boundToReticule) { this.transform.position = componentData.GetAimingController().GetAimingVectorWorldSpace() + componentData.GetCharacterTransform().position; } if (boundToFeet) { this.transform.position = componentData.GetCharacterTransform().position - componentData.GetCharacterTransform().up * 0.5f; } if (destroyOnWeaponChange) { CheckWeaponChangeAndDestroy(); } if (destroyOnCharDeath) { CheckCharDeathAndDestroy(); } }
public override void PerformBehaviour(CharacterComponentData compData) { base.PerformBehaviour(compData); Rigidbody body = projectile.GetComponent <Rigidbody> () as Rigidbody; Vector3 velocityVec = body.velocity; Vector3 perpToVelocity = new Vector3(-velocityVec.y, velocityVec.x, 0f); perpToVelocity.Normalize(); float steeringForce = 2000f; if (compData.GetAimingController().GetIsAiming()) { if (compData.GetAimingController().GetHorizontalInput() == 1) { print("Steering clockwise"); body.AddForce(perpToVelocity * -steeringForce * Time.deltaTime); } if (compData.GetAimingController().GetHorizontalInput() == -1) { print("Steering counterclockwise"); body.AddForce(perpToVelocity * steeringForce * Time.deltaTime); } } }