Также прошу подсказки, как реализовать сопротивление воздуха для пуль. Заранее спасибо.
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
public class GunScript : MonoBehaviour {
public Rigidbody projectile;
public float speed = 20;
public static float hitPower;
public float mass = 0.5f;
public int ammoCount = 30;
public int ammoInMagazine = 30;
public int magazineCount = 100;
public int reloadTime = 3;
bool isReloading = false;
// Use this for initialization
void Start () {
hitPower = (mass * (speed * speed)) / 2;
}
void Update () {
if (ammoCount == 0? false : true)
{
if (Input.GetButtonDown("Fire1"))
{
Rigidbody InstantiateProjectile = Instantiate(projectile, transform.position, transform.rotation) as Rigidbody;
InstantiateProjectile.velocity = transform.TransformDirection(new Vector3(0, 0, speed));
Physics.IgnoreCollision(InstantiateProjectile.collider, transform.root.collider);
if (audio)
{
audio.Play();
}
ammoCount--;
}
}
if (Input.GetButtonDown("Reload") || ammoCount == 0)
{
if (magazineCount > 1 && !isReloading)
{
isReloading = true;
Reload();
}
}
}
IEnumerator Reload()
{
yield return new WaitForSeconds(reloadTime);
ammoCount = ammoInMagazine;
magazineCount--;
isReloading = false;
}
using System.Collections;
public class GunScript : MonoBehaviour {
public Rigidbody projectile;
public float speed = 20;
public static float hitPower;
public float mass = 0.5f;
public int ammoCount = 30;
public int ammoInMagazine = 30;
public int magazineCount = 100;
public int reloadTime = 3;
bool isReloading = false;
// Use this for initialization
void Start () {
hitPower = (mass * (speed * speed)) / 2;
}
void Update () {
if (ammoCount == 0? false : true)
{
if (Input.GetButtonDown("Fire1"))
{
Rigidbody InstantiateProjectile = Instantiate(projectile, transform.position, transform.rotation) as Rigidbody;
InstantiateProjectile.velocity = transform.TransformDirection(new Vector3(0, 0, speed));
Physics.IgnoreCollision(InstantiateProjectile.collider, transform.root.collider);
if (audio)
{
audio.Play();
}
ammoCount--;
}
}
if (Input.GetButtonDown("Reload") || ammoCount == 0)
{
if (magazineCount > 1 && !isReloading)
{
isReloading = true;
Reload();
}
}
}
IEnumerator Reload()
{
yield return new WaitForSeconds(reloadTime);
ammoCount = ammoInMagazine;
magazineCount--;
isReloading = false;
}