Question by
bobimester · Aug 29, 2021 at 11:40 PM ·
c#bulletbullets
the bullet doesn't want to move. I don't know what's the problem. Can anyone help me?
Hi!
I just started making a third person game in c# and the bullet doesn't want to move. I don't know what's the problem.
Can anyone help me?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Cinemachine;
using StarterAssets;
using UnityEngine.InputSystem;
public class ThirdPersonShooter : MonoBehaviour {
[SerializeField] private CinemachineVirtualCamera aimVirtualCamera;
[SerializeField] private float normalSensitivity;
[SerializeField] private float aimSensitivity;
[SerializeField] private LayerMask aimColliderLayerMask = new LayerMask();
[SerializeField] private Transform debugTransform;
[SerializeField] private Transform pfBulletProjectile;
[SerializeField] private Transform spawnBulletPosition;
private ThirdPersonController thirdPersonController;
private StarterAssetsInputs starterAssetsInputs;
private void Awake() {
thirdPersonController = GetComponent<ThirdPersonController>();
starterAssetsInputs = GetComponent<StarterAssetsInputs>();
}
private void Update() {
Vector3 mouseWorldPosition = Vector3.zero;
Vector2 screenCenterPoint = new Vector2(Screen.width / 2f, Screen.height / 2f);
Ray ray = Camera.main.ScreenPointToRay(screenCenterPoint);
if (Physics.Raycast(ray, out RaycastHit raycastHit, 999f, aimColliderLayerMask)) {
debugTransform.position = raycastHit.point;
mouseWorldPosition = raycastHit.point;
}
if (starterAssetsInputs.aim) {
aimVirtualCamera.gameObject.SetActive(true);
thirdPersonController.SetSensitivity(aimSensitivity);
thirdPersonController.SetRotateOnMove(false);
Vector3 worldAimTarget = mouseWorldPosition;
worldAimTarget.y = transform.position.y;
Vector3 aimDirection = (worldAimTarget - transform.position).normalized;
transform.forward = Vector3.Lerp(transform.forward, aimDirection, Time.deltaTime * 20f);
} else {
aimVirtualCamera.gameObject.SetActive(false);
thirdPersonController.SetSensitivity(normalSensitivity);
thirdPersonController.SetRotateOnMove(true);
}
if (starterAssetsInputs.shoot) {
Vector3 aimDir = (mouseWorldPosition - spawnBulletPosition.position).normalized;
Instantiate(pfBulletProjectile, spawnBulletPosition.position, Quaternion.LookRotation(aimDir, Vector3.up));
starterAssetsInputs.shoot = false;
}
}
},
Comment
Your answer
Follow this Question
Related Questions
2D Bullet Not Working 1 Answer
Instantiate GameObject with Velocity 1 Answer
Teleporting To Projectile Location 1 Answer
Score counter not working properly. 1 Answer
Weapon not firing straight. 1 Answer