Realistic Sniper and Ballistics
  • Welcome
  • Introduction
    • Feature List
    • Why/How is it used?
    • Quick Setup
  • Getting Started
    • Getting Started
    • Environment Properties
    • Bullet Properties
    • Object Poolers
    • Sniper and Ballistics System
    • Firing a Bullet
    • Listening to Hit Events
      • Spawning Particles on Hit
      • Hit Tags
    • Zero Distances
    • Wind Vector
    • Air Resistance
    • Spin Drift
    • Ballistic Surfaces - Penetration
    • Ballistic Surfaces - Ricochet
    • Bullet Time Effects
      • Target
      • Bullet
      • Firing with Bullet Time
      • Bullet Time Camera - Default
      • Writing your Own Bullet Time Camera
    • Dynamic Scope System
    • Incorporating Player
      • Player Movement Controller
      • Motion Controller
      • Camera Controller
      • Player With Weapon
    • Mobile Controls
    • Conclusion
  • API
    • API Welcome
    • Sniper and Ballistics System
    • Dynamic Scope System
    • Player Movement Controller
    • Motion Controller
    • Ballistic Surface
    • Environment Properties
    • Ballistics Utility
    • Bullet Time Utility
Powered by GitBook
On this page

Was this helpful?

  1. Getting Started
  2. Incorporating Player

Player With Weapon

PreviousCamera ControllerNextMobile Controls

Last updated 3 years ago

Was this helpful?

Since we understood the basics of how to incorporate a player object with RSB, now we can use our prefab that actually has a weapon controller. Delete the Player Without Weapon object from hierarchy, then navigate to InanEvin>Realistic Sniper and Ballistics>System Prefabs folder & drag & drop the Player With Weapon prefab into the scene. Set it's position to 0,1,0. At this point, we do not need our Tutorial.cs script to fire, aim, or change the zero distance for us, as this will be done by the PlayerWeaponController.cs coming with the Player With Weapon prefab. So, let's open up our Tutorial.cs and comment out the unnecessary lines:

Now our Tutorial.cs script is only responsible for spawning hit effects.

Just as the beginning of the previous section, we'd have lost references to the Main Camera. So, go to Sniper and Ballistics object, assing the Main Camera under the new Player With Weapon object in the scene to the Fire Transform field of SniperAndBallisticsSystem.cs instance. Then, go to the ScopeReticle object and assign the same Main Camera to the Main Camera field of DynamicScopeSystem.cs instance.

Now if you open up the hierarchy of Player With Weapon object, you will see under the Main Camera, there is a Weapon object, that has a PlayerWeaponController.cs component attached to it, as well as MotionController.cs attached to it in order to control the weapon's movement.

PlayerWeaponController.cs does exactly what we did in our Tutorial.cs, just in a more complicated fashion in order to create the behavior of a bolt-action sniper rifle. Before we can try this out, there are couple of fields we need to fill. First, drag & drop the Bullet Time - Bullet object in the scene to the Bullet Time Bullet field of PlayerWeaponController.cs component.

Then, we need to create 2 new poolers, so create 2 new empty game objects, rename them as Shell Pooler and Muzzle Flash Pooler, then add the ObjectPooler.cs component on them. At this point, you should have been pretty comfortable adding new poolers, so go ahead and assign the necessary prefabs for them. Shell Pooler will use the prefab Bullet Shell, and the Muzzle Flash Pooler will use the prefab Muzzle Flash.

Go back to our PlayerWeaponController.cs component and attach these poolers to their respective fields. Then lastly, we need a text component in the scene to display the remaining ammo. Navigate to InanEvin>Realistic Sniper and Ballistics>System Prefabs folder and drag & drop the prefab called CANVAS - Crosshair & Ammo into the scene. This is just a very simple Unity Canvas that has an image for a crosshair and a text for ammo display. Drag & drop the text called Ammo Display under this canvas to the Ammo Text field in PlayerWeaponController.cs. So, it should look like this now:

Now if you play the scene, you can walk, sprint & jump around, while shooting a sniper rifle. And if we hit the bullet time target, it will trigger the bullet time effect!

PlayerWeaponController.cs attached to Weapon object.
Muzzle Flash & Shell poolers.
Bullet Time Bullet, Shell Pooler, Ammo Text and Muzzle Flash Pooler fields assigned.