Зачем ты вызываешь метод GetComponent у bool (true/false)?
Я примерно написал, книжки я пытался читать но там все как то обобщенно и туманно, на конкретных примерах мне лично легче понять смысл и принципы... Если бы знал как правильно написать код то не создавал темы... Unity the best
Сообщение отредактировал alex9999 - Пятница, 11 Мая 2018, 19:07
это сложноватый способ, я думал реализовать как то попроще, например у меня есть префаб уничтожения корабля Explosion, в нем добавлен компонент Audio Source(в котором есть графа Mute) и думал через скрипт как то сделать чтобы при нажатии на кнопку sound включалось Mute для Audio Source. Примерно так:
a фоновая музыка у меня добавленна к Main Camera элемент Audio Source, где есть публичная переменная AudioClip. В Audio Source тоже есть поле Mute(где можно ставить галочку для тишины), так вот я хочу менять состояние поля Mute через кнопку Music, примерно так:
Заменить FindGameObjectsWithTag на FindGameObjectWithTag
Спасибо, помогло, но вылез непонятный баг, теперь персонаж все время прыгает, когда находится в покое, не подскажете с чем это связанно? Unity the best
Здравствуйте, помогите пожалуйста устранить ошибку : Assets/scripts/CharacterMechaniks.cs(27,64): error CS1061: Type `UnityEngine.GameObject[]' does not contain a definition for `GetComponent' and no extension method `GetComponent' of type `UnityEngine.GameObject[]' could be found. Are you missing an assembly reference? ругается на этот скрипт
Код
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class CharacterMechaniks : MonoBehaviour {
//Основные параметры
public float speedMove;//скорость персонажа public float jumpPower;//сила прыжка
//Параметры геймплея для персонажа private float gravityForce;//гравитация перса private Vector3 moveVector;//направление движения перса
moveVector.y = gravityForce;//Расчет гравитации выполнять после разворота ch_controller.Move(moveVector * Time.deltaTime);//Метод передвижения по направлению }
public float Horizontal() { if (inputVector.x != 0) return inputVector.x; else return Input.GetAxis("Horizontal"); }
public float Vertical() { if (inputVector.y != 0) return inputVector.y; else return Input.GetAxis("Vertical"); } }
юнити выделяет эту строчку в ошибку: mContr =GameObject.FindGameObjectsWithTag("Joystick").GetComponent<MobileController>(); из первого скрипта. Подскажите как исправить Unity the best
Спасибо, за помощь, да знания у меня не очень, я недавно начал заниматься этим увлекательным делом)) Вот и решаю проблемы по мере их поступления.... Подскажите как мне реализовать еще одну кнопку, чтобы sound выключало звуки стрельбы и взрывов, а music выключало только музыку(а шумы чтобы оставались)? выглядит примерно так:
Код
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class Menu : MonoBehaviour {
public Texture2D clossed; void OnGUI() { if (GUI.Button(new Rect(Screen.width - 200, 105, 100, 25), "Quit")) { Application.Quit(); }
Здравствуйте, помогите пожалуйста закончить скрипт меню, есть кнопка которая выключает звук, а напротив нее должна появляться красная гаолчка, когда нет звука, как это правильно оформить? вот скрипт:
Код
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class Menu : MonoBehaviour {
public Texture2D clossed; void OnGUI() { if (GUI.Button(new Rect(Screen.width - 200, 105, 100, 25), "Quit")) { Application.Quit(); }
Всем привет, подскажите пожалуйста, что нужно выставить в настройках проекта(юнити2017) чтобы пропорции экрана сохранялись для всех разрешений и соотношений сторон(16:9, 4:3, 16:10 и тд и тп)? Если это в принципе возможно)) Unity the best
Сделал в геймконтролере паблик объект плеер, и в инспекторе повесил объект плеера)
Спасибо за помощь, все работает)) только я эту строчку Player.GetComponent<HealthScript>().hp=300; поставил под вот этим : if (score >= win) { Unity the best
Сообщение отредактировал alex9999 - Воскресенье, 06 Мая 2018, 18:44
да, все равно та же ошибка, и так делал: void Update () { if (score >= win) gameObject.CompareTag("Player").GetComponent<HealthScript>().hp = 300; } все равно такая же ситуация... Unity the best
Вот такая ошибка выходит : Assets/scripts/GameController.cs(95,45): error CS1061: Type `bool' does not contain a definition for `GetComponent' and no extension method `GetComponent' of type `bool' could be found. Are you missing an assembly reference?
Здравствуйте, помогите пожалуйста решить проблему: есть скрипт здоровья HealthScript, он висит на главном игроке(playerShip с тегом Player) и на врагах(enemy без тега), в обоих случаях значение hp = 1
Код
using UnityEngine;
/// <summary> /// Handle hitpoints and damages /// </summary> public class HealthScript : MonoBehaviour { /// <summary> /// Всего хитпоинтов /// </summary> public int hp = 1; public bool dead = false;
/// <summary> /// Враг или игрок? /// </summary> public bool isEnemy = true; public Transform explosion;
/// <summary> /// Наносим урон и проверяем должен ли объект быть уничтожен /// </summary> /// <param name="damageCount"></param> public void Damage(int damageCount) { hp -= damageCount;
if (hp <= 0) { // Срабатывает при уничтожении объекта if (explosion) ; { GameObject exploder = ((Transform)Instantiate(explosion, this.transform.position, this.transform.rotation)).gameObject; Destroy(exploder, 2.0f); Destroy(this.gameObject);
dead = true; }
}
}
}
и есть скрипт GameController(в котором спавнятся враги и появляется гуи интерфейс при прохождении уровня):
подскажите пожалуйста как мне сделать чтобы при появлении этой кнопки или когда (score >= win), hp главного героя(playerShip с тегом Player) становилось равно 300? Unity the best
Сообщение отредактировал alex9999 - Воскресенье, 06 Мая 2018, 16:26
Cпасибо, все работает, но вылезла другая проблема , если игрок уничтожен до спавна 10 врага юнити дает такое: NullReferenceException: Object reference not set to an instance of an object MoveTowardsPlayer.Start () (at Assets/scripts/MoveTowardsPlayer.cs:17)
подскажите пожалуйста как решить Unity the best
Сообщение отредактировал alex9999 - Понедельник, 30 Апреля 2018, 22:38