hi. how do i put multiple actions on one void update(and other types)?
in the spoiler i got a shoot part and a reload part. i dont know how to add the reload part.
i also got this whit other scripts.
like i can make a health script that damage’s on trigger and one that heals on trigger (by obect name)
but i dont know how to make both of them a single script.
i tried to google but i am not sure what to google for.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GunAuto : MonoBehaviour
{
public Slider AmmoSlider;
public Rigidbody Bullet;
public Rigidbody Catridge;
public Transform Gun;
public Transform CatridgeExit;
public float FireRate;
public float MagazineSize = 0;
public int MagazineCount = 0;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
FireRate -= Time.deltaTime;
if (MagazineSize >= 1)
if (FireRate <= 0)
if (Input.GetButton("MouseButton1"))
{
Rigidbody CatrideInstance;
Rigidbody BulletInstance;
{
CatrideInstance = Instantiate(Catridge, CatridgeExit.position, CatridgeExit.rotation) asRigidbody;
BulletInstance = Instantiate(Bullet, Gun.position, Gun.rotation) asRigidbody;
MagazineSize -= 1;
{
BulletInstance.AddForce(Gun.forward * 5000);
CatrideInstance.AddForce(CatridgeExit.right * 50);
{
FireRate = 0.20f;
AmmoSlider.value = MagazineSize;
} //How to add this?
if (MagazineSize <= 1)
if (MagazineCount >= 0)
if (Input.GetButtonDown("Reload"))
{
MagazineCount -= 1;
MagazineSize += 30;
}
}
}
}
}
}
Let’s reformat this because holy bananas that is hard to read with out indentation.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GunAuto : MonoBehaviour
{
public Slider AmmoSlider;
public Rigidbody Bullet;
public Rigidbody Catridge;
public Transform Gun;
public Transform CatridgeExit;
public float FireRate;
public float MagazineSize = 0;
public int MagazineCount = 0;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
FireRate -= Time.deltaTime;
if (MagazineSize >= 1)
if (FireRate <= 0)
if (Input.GetButton("MouseButton1"))
{
Rigidbody CatrideInstance;
Rigidbody BulletInstance;
{
CatrideInstance = Instantiate(Catridge, CatridgeExit.position, CatridgeExit.rotation) as Rigidbody;
BulletInstance = Instantiate(Bullet, Gun.position, Gun.rotation) as Rigidbody;
MagazineSize -= 1;
{
BulletInstance.AddForce(Gun.forward * 5000);
CatrideInstance.AddForce(CatridgeExit.right * 50);
{
FireRate = 0.20f;
AmmoSlider.value = MagazineSize;
} //How to add this?
if (MagazineSize <= 1)
if (MagazineCount >= 0)
if (Input.GetButtonDown("Reload"))
{
MagazineCount -= 1;
MagazineSize += 30;
}
}
}
}
}
}
First off… why the ‘ififif’???
With that aside, if you want both reload and fire in the same script, put them one after the other.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GunAuto : MonoBehaviour
{
public Slider AmmoSlider;
public Rigidbody Bullet;
public Rigidbody Catridge;
public Transform Gun;
public Transform CatridgeExit;
public float FireRate;
public float MagazineSize = 0;
public int MagazineCount = 0;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
FireRate -= Time.deltaTime;
if (MagazineSize >= 1 &&
FireRate <= 0 &&
Input.GetButton("MouseButton1"))
{
Rigidbody CatrideInstance;
Rigidbody BulletInstance;
{
CatrideInstance = Instantiate(Catridge, CatridgeExit.position, CatridgeExit.rotation) as Rigidbody;
BulletInstance = Instantiate(Bullet, Gun.position, Gun.rotation) as Rigidbody;
MagazineSize -= 1;
{
BulletInstance.AddForce(Gun.forward * 5000);
CatrideInstance.AddForce(CatridgeExit.right * 50);
{
FireRate = 0.20f;
AmmoSlider.value = MagazineSize;
}
}
}
}
if (MagazineSize <= 1 &&
MagazineCount >= 0 &&
Input.GetButtonDown("Reload"))
{
MagazineCount -= 1;
MagazineSize += 30;
}
}
}
Though usually if you’re firing, you probably shouldn’t also reload in the same frame… so I would ‘else if’ it.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GunAuto : MonoBehaviour
{
public Slider AmmoSlider;
public Rigidbody Bullet;
public Rigidbody Catridge;
public Transform Gun;
public Transform CatridgeExit;
public float FireRate;
public float MagazineSize = 0;
public int MagazineCount = 0;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
FireRate -= Time.deltaTime;
if (MagazineSize >= 1 &&
FireRate <= 0 &&
Input.GetButton("MouseButton1"))
{
Rigidbody CatrideInstance;
Rigidbody BulletInstance;
{
CatrideInstance = Instantiate(Catridge, CatridgeExit.position, CatridgeExit.rotation) as Rigidbody;
BulletInstance = Instantiate(Bullet, Gun.position, Gun.rotation) as Rigidbody;
MagazineSize -= 1;
{
BulletInstance.AddForce(Gun.forward * 5000);
CatrideInstance.AddForce(CatridgeExit.right * 50);
{
FireRate = 0.20f;
AmmoSlider.value = MagazineSize;
}
}
}
}
else if (MagazineSize <= 1 &&
MagazineCount >= 0 &&
Input.GetButtonDown("Reload"))
{
MagazineCount -= 1;
MagazineSize += 30;
}
}
}
thanks.
gun and health scripts are working now.