• Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
Question by bubblegumsoldier · May 02, 2011 at 11:54 AM · machinegun

can anybody change the code?

Hey Guys can somebody of you please change the code of this script please? I don't want to reload after time I want to reload with the "Reload" Input Button I've made in:

edit - Project settings - Input

Here's the full code:

var range = 100.0; var fireRate = 0.05; var force = 10.0; var damage = 5.0; var bulletsPerClip = 40; var clips = 20; var reloadTime = 0.5; private var hitParticles : ParticleEmitter; var muzzleFlash : Renderer; var Huelse :Transform; var bulletsLeft : int = 0; private var nextFireTime = 0.0; private var m_LastFrameShot = -1; var spawnpoint :Transform;

function Start () { hitParticles = GetComponentInChildren(ParticleEmitter);

// We don't want to emit particles all the time, only when we hit something.
if (hitParticles)
    hitParticles.emit = false;
bulletsLeft = bulletsPerClip;
MagazineLeft = clips;

}

function LateUpdate() { if (muzzleFlash) { animation.Play("shotmachine"); var Huelseestellen = Instantiate(Huelse, transform.position, Quaternion.identity);

Huelseestellen.rigidbody.AddForce(transform.up*10);

         // We shot this frame, enable the muzzle flash
 if (m_LastFrameShot == Time.frameCount) {
     muzzleFlash.transform.localRotation = Quaternion.AngleAxis(Random.value * 360, Vector3.forward);
     muzzleFlash.enabled = true;

     if (audio) {
         if (!audio.isPlaying)
             audio.Play();
         audio.loop = true;
     }
 } else {
 // We didn't, disable the muzzle flash
     muzzleFlash.enabled = false;
     enabled = false;

     // Play sound
     if (audio)
     {
         audio.loop = false;
     }
 }

}

}

function Fire () { if (bulletsLeft == 0) return;

// If there is more than one bullet between the last and this frame // Reset the nextFireTime if (Time.time - fireRate > nextFireTime) nextFireTime = Time.time - Time.deltaTime;

// Keep firing until we used up the fire time while( nextFireTime < Time.time && bulletsLeft != 0) { FireOneShot(); nextFireTime += fireRate; }

}

function FireOneShot () { var direction = transform.TransformDirection(Vector3.forward); var hit : RaycastHit;

// Did we hit anything? if (Physics.Raycast (transform.position, direction, hit, range)) { // Apply a force to the rigidbody we hit if (hit.rigidbody) hit.rigidbody.AddForceAtPosition(force * direction, hit.point);

 // Place the particle system for spawing out of place where we hit the surface!
 // And spawn a couple of particles
 if (hitParticles) {
     hitParticles.transform.position = hit.point;
     hitParticles.transform.rotation = Quaternion.FromToRotation(Vector3.right, hit.normal);
     hitParticles.Emit();
 }

 // Send a damage message to the hit object          
 hit.collider.SendMessageUpwards("ApplyDamage", damage, SendMessageOptions.DontRequireReceiver);

}

bulletsLeft--;

// Register that we shot this frame, // so that the LateUpdate function enabled the muzzleflash renderer for one frame m_LastFrameShot = Time.frameCount; enabled = true;

// Reload gun in reload Time
if (bulletsLeft == 0){

 bulletsLeft = 60;

}

} function Reload () { animation.Play("reloadanimation"); // Wait for reload time first - then add more bullets! //yield WaitForSeconds(reloadTime);

// We have a clip left reload
if (clips > 0) {
    clips--;
    bulletsLeft = bulletsPerClip;
    MagazineLeft = clips;
}

} function GetMagazinesLeft (){

} function GetBulletsLeft () { return bulletsLeft; }

Comment

People who like this

0 Show 2
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image CHPedersen · May 02, 2011 at 11:57 AM 0
Share

Sorry, but that's really really hard to read. :( Could you at least make sure the code is properly formatted in the post?

avatar image bubblegumsoldier · May 02, 2011 at 12:27 PM 0
Share

okay One moment

4 Replies

· Add your reply
  • Sort: 
avatar image

Answer by bubblegumsoldier · May 02, 2011 at 12:30 PM

Here:

var range = 100.0; var fireRate = 0.05; var force = 10.0; var damage = 5.0; var bulletsPerClip = 40; var clips = 20; var reloadTime = 0.5; private var hitParticles : ParticleEmitter; var muzzleFlash : Renderer; var Huelse :Transform; privat var bulletsLeft : int = 0; private var nextFireTime = 0.0; private var m_LastFrameShot = -1; var spawnpoint :Transform;

function Start () { hitParticles = GetComponentInChildren(ParticleEmitter); // We don't want to emit particles all the time, only when we hit something. if (hitParticles) hitParticles.emit = false; bulletsLeft = bulletsPerClip; MagazineLeft = clips;

}

function LateUpdate() { if (muzzleFlash) { animation.Play("shotmachine"); var Huelseestellen = Instantiate(Huelse, transform.position, Quaternion.identity); Huelseestellen.rigidbody.AddForce(transform.up*10);

        // We shot this frame, enable the muzzle flash
if (m_LastFrameShot == Time.frameCount) {
    muzzleFlash.transform.localRotation = Quaternion.AngleAxis(

Random.value * 360, Vector3.forward); muzzleFlash.enabled = true;

if (audio) { if (!audio.isPlaying) audio.Play(); audio.loop = true; } } else { // We didn't, disable the muzzle flash muzzleFlash.enabled = false; enabled = false;

 // Play sound
 if (audio)
 {
     audio.loop = false;
 }

}

}

}

function Fire () { if (bulletsLeft == 0) return; // If there is more than one bullet between the last and this frame // Reset the nextFireTime if (Time.time - fireRate > nextFireTime) nextFireTime = Time.time - Time.deltaTime;

// Keep firing until we used up the fire time while( nextFireTime < Time.time && bulletsLeft != 0) { FireOneShot(); nextFireTime += fireRate; }

}

function FireOneShot () { var direction = transform.TransformDirection(Vector3.forward); var hit : RaycastHit; // Did we hit anything? if (Physics.Raycast (transform.position, direction, hit, range)) { // Apply a force to the rigidbody we hit if (hit.rigidbody) hit.rigidbody.AddForceAtPosition(force * direction, hit.point);

// And spawn a couple of particles
if (hitParticles) {
    hitParticles.transform.position = hit.point;
    hitParticles.transform.rotation = Quaternion.FromToRotation

(Vector3.right, hit.normal); hitParticles.Emit(); }

// Send a damage message to the hit object          
hit.collider.SendMessageUpwards

("ApplyDamage", damage, SendMessageOptions.DontRequireReceiver); }

bulletsLeft--;

// Register that we shot this frame, // so that the LateUpdate function enabled the muzzleflash renderer for one frame m_LastFrameShot = Time.frameCount; enabled = true;

// Reload gun in reload Time
if (bulletsLeft == 0){

bulletsLeft = 60;

}

} function Reload () { animation.Play("reloadanimation"); // Wait for reload time first - then add more bullets! //yield WaitForSeconds(reloadTime); // We have a clip left reload if (clips > 0) { clips--; bulletsLeft = bulletsPerClip; MagazineLeft = clips; }

} function GetMagazinesLeft (){

} function GetBulletsLeft () { return bulletsLeft; }

Comment

People who like this

0 Show 0 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image

Answer by bubblegumsoldier · May 02, 2011 at 12:31 PM

at the end it wlways does the same misstake... I can't change it...

Comment

People who like this

0 Show 0 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image

Answer by CHPedersen · May 02, 2011 at 12:47 PM

Notice in the end that it says,

    if(bulletsLeft == 0) {
        bulletsLeft = 60;
    }

Thus if you'd like to reload on some button instead, you can change it yourself to something like,

    if(Input.GetAxis("Reload") == 1) {
        bulletsLeft = 60;
    }
Comment

People who like this

0 Show 0 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image

Answer by bubblegumsoldier · May 03, 2011 at 12:26 PM

It doesn't work... I just always give u a new link so that u can read it better:

http://spetools.de/code/898b4fde31242be0d609afc8d3f434f0

Comment

People who like this

0 Show 0 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

No one has followed this question yet.

Related Questions

Source code for library function "RecalculateNormals()"? 4 Answers

Finding object via script 1 Answer

Respawning script question. 1 Answer

Collison Kills 1 Answer

compilling error?... 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges