Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • 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
-2
Question by GDI_Commando · Aug 19, 2013 at 11:25 AM · gameobjectweaponsfloats

Randomized gun generator

I have attempted a Borderlands style random gun generator after seeing a test version by someone in Australia. As far as I can see it should all work but it will only ever render the first parts of all sections and will set more than one option in each section to true. Can anyone help as to why it wont render the correct parts and how to stop it selecting multiple options in each section?

 /// <summary>
 /// BL gun system.
 /// Jobie McJoberson/GDI_Commando
 /// 18/08/2013
 /// Attempt to create random gun generator
 /// </summary>
 using UnityEngine;
 using System.Collections;
 
 public class BLGunSystem : MonoBehaviour {
     //Barrel section
     public GameObject BarrelType1;
     public GameObject BarrelType2;
     public GameObject BarrelType3;
     public GameObject BarrelType4;
     
     public bool Barrel1 = false;
     public bool Barrel2 = false;
     public bool Barrel3 = false;
     public bool Barrel4 = false;
     
     //Grip section
     public GameObject GripType1;
     public GameObject GripType2;
     public GameObject GripType3;
     public GameObject GripType4;
     
     public bool Grip1 = false;
     public bool Grip2 = false;
     public bool Grip3 = false;
     public bool Grip4 = false;
     
     //Stock section
     public GameObject StockType1;
     public GameObject StockType2;
     public GameObject StockType3;
     public GameObject StockType4;
     
     public bool Stock1 = false;
     public bool Stock2 = false;
     public bool Stock3 = false;
     public bool Stock4 = false;
     
     //Body section
     public GameObject BodyType1;
     public GameObject BodyType2;
     public GameObject BodyType3;
     public GameObject BodyType4;
     
     public bool Body1 = false;
     public bool Body2 = false;
     public bool Body3 = false;
     public bool Body4 = false;
     
     //Accessory section
     public GameObject AccType1;
     public GameObject AccType2;
     public GameObject AccType3;
     public GameObject AccType4;
     
     public bool Acc1 = false;
     public bool Acc2 = false;
     public bool Acc3 = false;
     public bool Acc4 = false;
     
     //Chamber section
     public GameObject ChamType1;
     public GameObject ChamType2;
     public GameObject ChamType3;
     public GameObject ChamType4;
     
     public bool Cham1 = false;
     public bool Cham2 = false;
     public bool Cham3 = false;
     public bool Cham4 = false;
     
     //Magazine section
     public GameObject MagType1;
     public GameObject MagType2;
     public GameObject MagType3;
     public GameObject MagType4;
     
     public bool Mag1 = false;
     public bool Mag2 = false;
     public bool Mag3 = false;
     public bool Mag4 = false;
     
     //Extra variables
     private float _count1;
     private float _count2;
     private float _count3;
     private float _count4;
     private float _count5;
     private float _count6;
     private float _count7;
     
     // Use this for initialization
     void Start () {
         ChooseBarrel();
         ChooseBody();
         ChooseGrip();
         if(MagType1 == null && MagType2 == null && MagType3 == null && MagType4 == null){
             ChooseChamber();
         }
         else if(ChamType1 == null && ChamType2 == null && ChamType3 == null && ChamType4 == null){
             ChooseMagazine();
         }
         ChooseAccessory();
         ChooseStock();
     }
     
     // Update is called once per frame
     void Update () {
     
     }
     
     public void ChooseStock() {
             Count1();
         
             if(_count1 <= 25){
                 Stock1 = true;
                 Stock2 = false;
                 Stock3 = false;
                 Stock4 = false;
             }
             else if(_count1 > 25 && _count1 <= 50){
                 Stock1 = false;
                 Stock2 = true;
                 Stock3 = false;
                 Stock4 = false;
             }
             else if(_count1 > 50 && _count1 <= 75){
                 Stock1 = false;
                 Stock2 = false;
                 Stock3 = true;
                 Stock4 = false;
             }
             else if(_count1 > 75 && _count1 <= 100){
                 Stock1 = false;
                 Stock2 = false;
                 Stock3 = false;
                 Stock4 = true;
             }
             else {
                 Stock1 = false;
                 Stock2 = false;
                 Stock3 = false;
                 Stock4 = false;
             }
         
             if(Stock1 = true) {
                     StockType1.renderer.enabled = true;
                     StockType2.renderer.enabled = false;
                     StockType3.renderer.enabled = false;
                     StockType4.renderer.enabled = false;
             }
             else if(Stock2 = true) {
                     StockType1.renderer.enabled = false;
                     StockType2.renderer.enabled = true;
                     StockType3.renderer.enabled = false;
                     StockType4.renderer.enabled = false;
             }
             else if(Stock3 = true){
                 StockType1.renderer.enabled = false;
                 StockType2.renderer.enabled = false;
                 StockType3.renderer.enabled = true;
                 StockType4.renderer.enabled = false;
             }
             else if(Stock4 = true){
                 StockType1.renderer.enabled = false;
                 StockType2.renderer.enabled = false;
                 StockType3.renderer.enabled = false;
                 StockType4.renderer.enabled = true;
             }
             else {
                 StockType1.renderer.enabled = false;
                 StockType2.renderer.enabled = false;
                 StockType3.renderer.enabled = false;
                 StockType4.renderer.enabled = false;
             }
     }
     
     public void ChooseBarrel() {
         Count2();
         
         if(_count1 <= 25 ){
                 Barrel1 = true;
                 Barrel2 = false;
                 Barrel3 = false;
                 Barrel4 = false;
             }
         else if(_count1 > 25 && _count1 <= 50){
                 Barrel1 = false;
                 Barrel2 = true;
                 Barrel3 = false;
                 Barrel4 = false;
             }
         else if(_count1 > 50 && _count1 <= 75){
                 Barrel1 = false;
                 Barrel2 = false;
                 Barrel3 = true;
                 Barrel4 = false;
             }
         else if(_count1 > 75 && _count1 <= 100){
                 Barrel1 = false;
                 Barrel2 = false;
                 Barrel3 = false;
                 Barrel4 = true;
             }
         else {
                 Barrel1 = false;
                 Barrel2 = false;
                 Barrel3 = false;
                 Barrel4 = false;
             }
         
         
         
         if(Barrel1 = true){
                 BarrelType1.renderer.enabled = true;
                 BarrelType2.renderer.enabled = false;
                 BarrelType3.renderer.enabled = false;
                 BarrelType4.renderer.enabled = false;
         }
         else if(Barrel2 = true){
                 BarrelType1.renderer.enabled = false;
                 BarrelType2.renderer.enabled = true;
                 BarrelType3.renderer.enabled = false;
                 BarrelType4.renderer.enabled = false;
         }
         else if(Barrel3 = true){
                 BarrelType1.renderer.enabled = false;
                 BarrelType2.renderer.enabled = false;
                 BarrelType3.renderer.enabled = true;
                 BarrelType4.renderer.enabled = false;
         }
         else if(Barrel4 = true){
                 BarrelType1.renderer.enabled = false;
                 BarrelType2.renderer.enabled = false;
                 BarrelType3.renderer.enabled = false;
                 BarrelType4.renderer.enabled = true;
         }
         else {
                 BarrelType1.renderer.enabled = false;
                 BarrelType2.renderer.enabled = false;
                 BarrelType3.renderer.enabled = false;
                 BarrelType4.renderer.enabled = false;
         }
     }
     
     public void ChooseGrip() {
         Count3();
         
         if(_count1 <= 25){
                 Grip1 = true;
                 Grip2 = false;
                 Grip3 = false;
                 Grip4 = false;
             }
         else if(_count1 > 25 && _count1 <= 50){
                 Grip1 = false;
                 Grip2 = true;
                 Grip3 = false;
                 Grip4 = false;
             }
         else if(_count1 > 50 && _count1 <= 75){
                 Grip1 = false;
                 Grip2 = false;
                 Grip3 = true;
                 Grip4 = false;
             }
         else if(_count1 > 75 && _count1 <= 100){
                 Grip1 = false;
                 Grip2 = false;
                 Grip3 = false;
                 Grip4 = true;
             }
         else {
                 Grip1 = false;
                 Grip2 = false;
                 Grip3 = false;
                 Grip4 = false;
             }
         
         if(Grip1 = true){
             GripType1.renderer.enabled = true;
             GripType2.renderer.enabled = false;
             GripType3.renderer.enabled = false;
             GripType4.renderer.enabled = false;
         }
         else if(Grip2 = true){
             GripType1.renderer.enabled = false;
             GripType2.renderer.enabled = true;
             GripType3.renderer.enabled = false;
             GripType4.renderer.enabled = false;
         }
         else if(Grip3 = true){
             GripType1.renderer.enabled = false;
             GripType2.renderer.enabled = false;
             GripType3.renderer.enabled = true;
             GripType4.renderer.enabled = false;
         }
         else if(Grip4 = true){
             GripType1.renderer.enabled = false;
             GripType2.renderer.enabled = false;
             GripType3.renderer.enabled = false;
             GripType4.renderer.enabled = true;
         }
         else {
             GripType1.renderer.enabled = false;
             GripType2.renderer.enabled = false;
             GripType3.renderer.enabled = false;
             GripType4.renderer.enabled = false;
         }
     }
     
     public void ChooseBody() {
         Count4();
         
         if(_count1 <= 25){
                 Body1 = true;
                 Body2 = false;
                 Body3 = false;
                 Body4 = false;
             }
         else if(_count1 > 25 && _count1 <= 50){
                 Body1 = false;
                 Body2 = true;
                 Body3 = false;
                 Body4 = false;
             }
         else if(_count1 > 50 && _count1 <= 75){
                 Body1 = false;
                 Body2 = false;
                 Body3 = true;
                 Body4 = false;
             }
         else if(_count1 > 75 && _count1 <= 100){
                 Body1 = false;
                 Body2 = false;
                 Body3 = false;
                 Body4 = true;
             }
         else {
                 Body1 = false;
                 Body2 = false;
                 Body3 = false;
                 Body4 = false;
             }
         
         
         if(Body1 = true){
             BodyType1.renderer.enabled = true;
             BodyType2.renderer.enabled = false;
             BodyType3.renderer.enabled = false;
             BodyType4.renderer.enabled = false;
         }
         else if(Body2 = true){
             BodyType1.renderer.enabled = false;
             BodyType2.renderer.enabled = true;
             BodyType3.renderer.enabled = false;
             BodyType4.renderer.enabled = false;
         }
         else if(Body3 = true){
             BodyType1.renderer.enabled = false;
             BodyType2.renderer.enabled = false;
             BodyType3.renderer.enabled = true;
             BodyType4.renderer.enabled = false;
         }
         else if(Body4 = true){
             BodyType1.renderer.enabled = false;
             BodyType2.renderer.enabled = false;
             BodyType3.renderer.enabled = false;
             BodyType4.renderer.enabled = true;
         }
         else {
             BodyType1.renderer.enabled = false;
             BodyType2.renderer.enabled = false;
             BodyType3.renderer.enabled = false;
             BodyType4.renderer.enabled = false;
         }
     }
     
     public void ChooseAccessory() {
         Count5();
         
         if(_count1 <= 25){
                 Acc1 = true;
                 Acc2 = false;
                 Acc3 = false;
                 Acc4 = false;
             }
         else if(_count1 > 25 && _count1 <= 50){
                 Acc1 = false;
                 Acc2 = true;
                 Acc3 = false;
                 Acc4 = false;
             }
         else if(_count1 > 50 && _count1 <= 75){
                 Acc1 = false;
                 Acc2 = false;
                 Acc3 = true;
                 Acc4 = false;
             }
         else if(_count1 > 75 && _count1 <= 100){
                 Acc1 = false;
                 Acc2 = false;
                 Acc3 = false;
                 Acc4 = true;
             }
         else {
                 Acc1 = false;
                 Acc2 = false;
                 Acc3 = false;
                 Acc4 = false;
             }
         
         
         if(Acc1 = true){
             AccType1.renderer.enabled = true;
             AccType2.renderer.enabled = false;
             AccType3.renderer.enabled = false;
             AccType4.renderer.enabled = false;
         }
         else if(Acc2 = true){
             AccType1.renderer.enabled = false;
             AccType2.renderer.enabled = true;
             AccType3.renderer.enabled = false;
             AccType4.renderer.enabled = false;
         }
         else if(Acc3 = true){
             AccType1.renderer.enabled = false;
             AccType2.renderer.enabled = false;
             AccType3.renderer.enabled = true;
             AccType4.renderer.enabled = false;
         }
         else if(Acc4 = true){
             AccType1.renderer.enabled = false;
             AccType2.renderer.enabled = false;
             AccType3.renderer.enabled = false;
             AccType4.renderer.enabled = true;
         }
         else {
             AccType1.renderer.enabled = false;
             AccType2.renderer.enabled = false;
             AccType3.renderer.enabled = false;
             AccType4.renderer.enabled = false;
         }
     }
     
     public void ChooseChamber() {
         Count6();
         
         if(_count1 <= 25){
                 Cham1 = true;
                 Cham2 = false;
                 Cham3 = false;
                 Cham4 = false;
             }
         else if(_count1 > 25 && _count1 <= 50){
                 Cham1 = false;
                 Cham2 = true;
                 Cham3 = false;
                 Cham4 = false;
             }
         else if(_count1 > 50 && _count1 <= 75){
                 Cham1 = false;
                 Cham2 = false;
                 Cham3 = true;
                 Cham4 = false;
             }
         else if(_count1 > 75 && _count1 <= 100){
                 Cham1 = false;
                 Cham2 = false;
                 Cham3 = false;
                 Cham4 = true;
             }
         else {
                 Cham1 = false;
                 Cham2 = false;
                 Cham3 = false;
                 Cham4 = false;
             }
         
         
         if(Cham1 = true){
             ChamType1.renderer.enabled = true;
             ChamType2.renderer.enabled = false;
             ChamType3.renderer.enabled = false;
             ChamType4.renderer.enabled = false;
         }
         else if(Cham2 = true){
             ChamType1.renderer.enabled = false;
             ChamType2.renderer.enabled = true;
             ChamType3.renderer.enabled = false;
             ChamType4.renderer.enabled = false;
         }
         else if(Cham3 = true){
             ChamType1.renderer.enabled = false;
             ChamType2.renderer.enabled = false;
             ChamType3.renderer.enabled = true;
             ChamType4.renderer.enabled = false;
         }
         else if(Cham4 = true){
             ChamType1.renderer.enabled = false;
             ChamType2.renderer.enabled = false;
             ChamType3.renderer.enabled = false;
             ChamType4.renderer.enabled = true;
         }
         else {
             ChamType1.renderer.enabled = false;
             ChamType2.renderer.enabled = false;
             ChamType3.renderer.enabled = false;
             ChamType4.renderer.enabled = false;
         }
     }
     
     public void ChooseMagazine() {
         Count7();
         
         if(_count1 <= 25){
                 Mag1 = true;
                 Mag2 = false;
                 Mag3 = false;
                 Mag4 = false;
             }
         else if(_count1 > 25 && _count1 <= 50){
                 Mag1 = false;
                 Mag2 = true;
                 Mag3 = false;
                 Mag4 = false;
             }
         else if(_count1 > 50 && _count1 <= 75){
                 Mag1 = false;
                 Mag2 = false;
                 Mag3 = true;
                 Mag4 = false;
             }
         else if(_count1 > 75 && _count1 <= 100){
                 Mag1 = false;
                 Mag2 = false;
                 Mag3 = false;
                 Mag4 = true;
             }
         else {
                 Mag1 = false;
                 Mag2 = false;
                 Mag3 = false;
                 Mag4 = false;
             }
         
         if(Mag1 = true){
             MagType1.renderer.enabled = true;
             MagType2.renderer.enabled = false;
             MagType3.renderer.enabled = false;
             MagType4.renderer.enabled = false;
         }
         else if(Mag2 = true){
             MagType1.renderer.enabled = false;
             MagType2.renderer.enabled = true;
             MagType3.renderer.enabled = false;
             MagType4.renderer.enabled = false;
         }
         else if(Mag3 = true){
             MagType1.renderer.enabled = false;
             MagType2.renderer.enabled = false;
             MagType3.renderer.enabled = true;
             MagType4.renderer.enabled = false;
         }
         else if(Mag4 = true){
             MagType1.renderer.enabled = false;
             MagType2.renderer.enabled = false;
             MagType3.renderer.enabled = false;
             MagType4.renderer.enabled = true;
         }
         else {
             MagType1.renderer.enabled = false;
             MagType2.renderer.enabled = false;
             MagType3.renderer.enabled = false;
             MagType4.renderer.enabled = false;
         }
     }
     
     #region Counters
     public float Count1(){
         _count1 = Random.Range(0, 100);
         
         return _count1;
     }
     
     public float Count2(){
         _count1 = Random.Range(0, 100);
         
         return _count2;
     }
     
     public float Count3(){
         _count1 = Random.Range(0, 100);
         
         return _count3;
     }
     public float Count4(){
         _count1 = Random.Range(0, 100);
         
         return _count4;
     }
     public float Count5(){
         _count1 = Random.Range(0, 100);
         
         return _count5;
     }
     public float Count6(){
         _count1 = Random.Range(0, 100);
         
         return _count6;
     }
     public float Count7(){
         _count1 = Random.Range(0, 100);
         
         return _count7;
     }
     #endregion
 }

All help will be VERY greatly appreciated as I am still a bit of a novice with all this C# scripting.

Comment
Add comment · Show 1
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 $$anonymous$$ · Aug 19, 2013 at 12:18 PM 0
Share

Toooooo much of code, make it smaller, than you will get help :)

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by Josh1231 · Aug 19, 2013 at 01:30 PM

You should have a prefab with an empty gameObject all with tags that are different so one tag for grip then have a randomizer for selecting which boolean should be picked, the boolean is weather the grip is there or not, if the boolean is true, then it finds if there already is a gameObject called grip, if their is make it check if it is a child of the prefab it wants to spawn onto, you use an IList and do foreach for that and if it isn't a child of it, then it spawns it on the empty gameObject, you do this for all of them and make it spawn an empty gameObject which parents all of them to keep it together. You should also make the gameObjects for scope, barrel and others as public gameObjects and put them on there because if you don't you will gert an error.

This is an example of what i am talking about, you can use it if you want:

 public GameObject Grip1,Grip2,Grip3,Grip4,Grip5;
 public bool isgrip1,isgrip2,isgrip3,isgrip4,isgrip5;
 
 void Start () {
 int selectedGrip = Random.Range(1,5);
 if (selectedGrip == 1)
    {
    isgrip1 = true;
    // do this for all of them
    }
 if (isgrip1)
    {
    IList grips = GameObject.FindGameObjectsWithTag("GripAttach") // thats what the grips tags will be
    foreach (GameObject grip in grips)
       {
       GripAttachedScript gas = grip.GetComponent<GripAttachedScript>();
       if (!gas.HaveGrip)
          {
          Instantiate(Grip1,transform.position,transform.rotation);
          GoToGrip gtg = GameObject.FindGameObjectWithTag("Grip").GetComponent<GoToGrip>();
          if (gtg.stayAt == null)
              {
              gtg.stayAt = grip;
              gas.HaveGrip = true;
              }
          }
       }
 
 }

in the other two scripts you will have booleans and GameObjects and public voids to be accessed by other scripts, the GoToScipt will be:

 public GameObject stayAt;
 
 void LateUpdate () {
 transform.position = stayAt.transform.position;
 }

or if you want to instead of having an lateupdate void you can make the object the parent so there is no chance at all of it glitching you could do:

 public GameObject stayAt;
 
 void Start () {
 if (stayAt == null)
    {
    transform.parent = null;
    }
 else
    {
    transform.parent = stayAt.transform;
    }
 }
Comment
Add comment · Show 1 · 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 GDI_Commando · Aug 19, 2013 at 04:11 PM 0
Share

Thanks for the example and information. Is it possible for you to expand a little on the GripAttachedScript? As I say I am a novice and would appreciate the help a lot.

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.

Follow this Question

Answers Answers and Comments

16 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

using Contains(gameObject) to find and destroy a gameObject from a list 2 Answers

Swapping Weapons In Game 0 Answers

Horizontal gravity on One gameobject 2 Answers

Locate a game object using rays 1 Answer

Blink objects at a constant rate 2 Answers


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