beril, кажется я понял как сделать сейчас попробую переделать
Добавлено (14 июля 2015, 20:54) --------------------------------------------- нет не получится, сделать как я хотел. потому, что не как не получится создать проверку условия уничтожен ли объект в Shoot.
извини еще нет. Я сделал как ты написал но он все равно не работает всеравно пишет Assets/Scripts/bomber.cs(28,65): error CS0103: The name `points' does not exist in the current context. Я прописал не много по другому SootsScr.GetComponent<Shoot>().points += bomberPoints; в таком случаи при уничтожении объекта он выдает такую ошибку NullReferenceException: Object reference not set to an instance of an object bomber.Update () (at Assets/Scripts/bomber.cs:28) http://www.falcogames.com/SnowCrushSetup.exe
Спасибо, что откликнулись код внизу пока не исправлял. Shoot:
Код
using UnityEngine; using UnityEngine.UI; using System.Collections;
public class Shoot : MonoBehaviour {
public GameObject bullet;//переменая для префаба с пулей //public GameObject bulletHole;//след от попадания public GameObject FlashLigth;//вспышка public float delayTime = 0.5f;//темп стрельбы public int ammo = 100;//патронов в бк public int ammo_clip = 5;//патронов в магазине public int points = 0; public Text ammo_text;// всего бк public Text ammo_clip_text;// в магазине public Text point_text;
// Update is called once per frame public void FixedUpdate () { //перезарядка if (ammo_clip >= 0) { FireGun ();//функция стрельбы } else { //Debug.Log("нет патронов в магазине!!!"); ammo_clip_text.text = "0";//чтобы отоброжался 0 а не -1 } if(Input.GetKeyDown(KeyCode.R)){ ammo_clip = 5;//добовляет 5 патронов ammo -= ammo_clip;// отнимает из обшего числа патронов 5 ammo_clip_text.text = "" + ammo_clip.ToString ();//отоброжает значение матронов в магазине снова } }
public void FireGun() { if (Input.GetKey(KeyCode.Mouse0)&&counter > delayTime) { Instantiate(bullet,transform.position,transform.rotation); Instantiate(FlashLigth,transform.position,transform.rotation); ///Destroy(GameObject.FindGameObjectWithTag("FlashLigth")); GetComponent<AudioSource>().Play();// звук выстрела counter = 0; ammo_clip = ammo_clip -1;
public GameObject explusen;//партикл для взрыва public GameObject SootsScr; public float bomberSpeed = 0.05f;//скорст сомалета public int enemy_Heath = 100;//жизни public int bomberDamage = 20;//урон по сомалету private int bomberPoints = 100;//количесво очков за збитие //public AudioClip Explous;//звук взрыва //public AudioClip fly_boart; // Use this for initialization void Start () { //GetComponent<AudioSource> ().clip = fly_boart; transform.Rotate(0,90,0); }
Vip_and_Rip, чет не работает две ошибки вылазят Assets/Scripts/bomber.cs(28,65): error CS0103: The name `points' does not exist in the current context Assets/Scripts/bomber.cs(28,36): error CS0120: An object reference is required to access non-static member `UnityEngine.GameObject.GetComponent(System.Type)'
Всем доброй ночи. Такая проблема есть, у меня есть скрипт Soots в нем по глупости своей прописал подсчет очков и настроил уже UI. И мне нужно из другого скрипта передать значение то есть в shoots есть переменная coin и в нее с друго скрипта с врага нужно передать значение( типо добавить 100 очков), после его уничтожения. Буду очень благодарен за совет, уже 3й день думаю как сделать. http://www.falcogames.com/SnowCrushSetup.exe
Добавлено (05 июля 2015, 19:08) --------------------------------------------- beril, я дописал его немного, правда не пойму еще почему следы от попадания создаются в воздухе особенно если в одно место стреляю
Код
using UnityEngine; using System.Collections;
public class Shoot : MonoBehaviour {
public GameObject bullet;//переменая для префаба с пулей public GameObject bulletHole;//след от попадания public float delayTime = 0.5f;//темп стрельбы
private float counter; // Use this for initialization void Start () {
}
// Update is called once per frame public void FixedUpdate () { FireGun (); }
public void FireGun() { if (Input.GetButtonDown("Fire1")) { Instantiate(bullet,transform.position,transform.rotation); GetComponent<AudioSource>().Play(); counter = 0;
RaycastHit hit; Ray ray = new Ray(transform.position, transform.forward); if(Physics.Raycast(ray,out hit,100f)) { Instantiate(bulletHole, hit.point,Quaternion.FromToRotation(Vector3.up, hit.normal)); } } counter += Time.deltaTime; } }
romeo98, я разобрался, что там было не так правда теперь он постоянно их создает, а не тогда когда кнопку нажимаешь.
Добавлено (05 июля 2015, 17:33) --------------------------------------------- Блин получилось только смену оружия сделать таким оброзом, а стрельбу нет от все время стриляет без нажатия
Добавлено (05 июля 2015, 18:14) --------------------------------------------- Поколупался все равно не могу правильно настроить, теперь можно стрелять правда делает это при любом нажатии на экран как это исправить ?
Привет всем, такая проблема не могу разобраться как сделать стрельбу по нажатию на кнопку на экране. Кнопку я добавил в канвас добавил кней эвент систепу. У меня есть "пушка" которая должна стрелять по нажатию на эту кнопку. Вот скрипт внизу он очень простой.
Код
using UnityEngine; using System.Collections;
public class Shoot : MonoBehaviour {
public GameObject bullet;//переменая для префаба с пулей public float delayTime = 0.5f;//темп стрельбы
private float counter; // Use this for initialization void Start () {
}
// Update is called once per frame void FixedUpdate () { if (Input.GetKey ("Fire")) { Instantiate(bullet,transform.position,transform.rotation); GetComponent<AudioSource>().Play(); counter = 0; } counter += Time.deltaTime; } }
Честно говоря это, то чего мне не хватало когда я попробовал работать с лов. Жду с нетерпением ) особенно если будет собирать под андроид игры http://www.falcogames.com/SnowCrushSetup.exe
Спасибо, я планировал первые 5 уровней сделать втаком цвете другие 5 в другом, сделаю новые сегменты правда еще не знаю в какой цветовой гаме, шарик перерисую ) и я так не смг нормально ссылку вставить на видео не нашел нужные теги для этого и я исправил вид от какого лица
Добавлено (30.08.2014, 17:29) --------------------------------------------- Билд 0.3 от 30.08.2014
Добавлены еще 2 уровня исправлены некоторые баги, изменено название проекта.
Название: Yellow boll Жанр игры: Логическая На каком движке/конструкторе: Unity 3d 4.5 В каком пространстве: 3D Какой вид в игре:от 3го лица Какой Язык Пр. используется в игре: C# Для какой платформы: Windows( возможно Андроид версия) Предоставление исходного кода игры: Не требуется Какой тип лицензии распространения: Не комерческая Сроки разработки: 19.08.2014-31.09.2014 (возможно продление) Сюжет:Вы играете за жёлтый шарик который не понятно как попал в виртуальный мир. Ваша задача пройти все уровни собирая белые коробочки, которые дают вам очки. При этом вам не желательно качаться красных которые отнимают вашу жизнь, также есть желтые которые лечат вас. В команду не кто не требуется игру разрабатываю сам. Это мой первый проект на этом движке в ходе разработки ознакамлеваюсь с его функционалом. Скриншоты:
Обновление 29.08.2014 В игру было добавлено две новые платформы столбы и лезвия (на скриншота) и изменен дизайн шарика (теперь не соответствует названию но ведь проект в разработке !). Били сделаны не большие изменении в скриптах, добавлен еще 1 уровень (теперь их 5).