пишет: "Assets/Scripts/PlayerAttack.cs(37,5): error CS0246: The type or namespace name `EmenyHealth' could not be found. Are you missing a using directive or an assembly reference?"
Пишет, вроде как, что найти тип EnemyHealth не может. Этот скрипт, вообще, висит на противниках? Проверь имена, может ошибка в названиях. Приведу список, того что должно было висеть на Player и Enemy по уроку.
Компоненты висящие на Player-е: Character Controller (Скрипты) MouseLook, CharacterMotor, FPSInputController, PlayerHealth, PlayerAttack, Targetting
Компоненты (скрипты) висящие на Enemy: EnemyAttack, EnemyAI, EnemyHealth
здравствуйте уважаемые товарищи:) хотел бы спросить , может у кого то завалялся скриптик для переключения управления с персонал контроллера на машину , при подходе к ней и зажатии определённой клавиши? или подскажите плз каким образом можно всё это реализовать:) заранее огромное спасибо
Я как раз решал эту задачу.
Code
//срипт для машины //машины можно размножать обычным клонированием
var somer = 0;
//по событию тригер происходящему на машине объявляем глобальную переменную // сомер и придаем машине таг МММ это для случая размножения машин обчным клонированием
var btarget : Transform;
function OnTriggerEnter (other : Collider) {
btarget.position = transform.position;
somer=2; gameObject.tag = "Player";
// Debug.Log(btarget.position.x);
}
function OnTriggerExit (other : Collider) {
if (gameObject.tag == "MMM") gameObject.tag = "MMM";
if (gameObject.tag == "Player") gameObject.tag = "Respawn";
somer=0; //gameObject.tag = "Respawn";
}
function Update () {
rigidbody.drag = 0; //машина запускается при нажатии enter. для этого соблюдаются 2 условия нажатие мышки // и нахожденнии человека в области тригера . об этом переменная сомер. //при этом условии включаем скрипт плеер кар ранее отключеный в инспекторе //и при условии что включен объект с тагом МММ
if (gameObject.tag== "Player"){
//при нажатии ентер
if (Input.GetKeyDown ("return")&& (somer==2)&& GetComponent (Car)){
gameObject.tag = "MMM";
// включаем скрипт кар ранее отключеный в инспекторе GetComponent (Car).enabled=true ;
//отключаем контролер у человека
var go = GameObject.Find("First1"); go.GetComponent(FPSInputController).enabled = false;
// отключаем камеру у человека var go1 = GameObject.Find("Camera1"); go1.GetComponent(Camera).enabled = false;
}
}
if (Input.GetKeyDown ("space") &&(gameObject.tag== "MMM")){
// перемещаем var go21 = GameObject.Find("First1");
типа такого короче токо надо еще скрипт на персона повесить такой
Code
function Update () { //var c: int;
//при нажатии пробел делает ФПС контроллер активным. Модель человека становится активной
if (Input.GetKeyDown ("space")&& GetComponent (FPSInputController)) (GetComponent (FPSInputController)).enabled=true ;
// transform.position=go.transform.position;
}
но тут еще в скрипте реальизовано размножение машин поэтому используются таги. И для размножения надо скрипт для камеры. У меня еще работет 3 скрипт для камеры - я просто правил смуз фолоу - проставлял там просто цель для текущей машины. Нет Бога кроме Аллаха и Ларс фон Триер пророк Его. И он также участник клуба GCC
Сообщение отредактировал durak007 - Вт, 28 Июн 2011, 22:22
Можно ли тут дать ссылку на пак с реализацией перехода между 3д персоном и машиной. Пак содержит 2 машины - на джава и на си, и соответствено скрипты перехода на джава и такой же на си? Нет в том смысле что я спросил у модеров - я сам хочу дать ссылу на пак Нет Бога кроме Аллаха и Ларс фон Триер пророк Его. И он также участник клуба GCC
Сообщение отредактировал durak007 - Чт, 21 Июл 2011, 01:11
Где-то уже есть в разделе Контент такая штука. Вроде. Согласно протоколу испытаний, начиная с этого момента, мы перестаем говорить правду. Три, два, один.
Всем добрый день! хочу сделать счетчик очков для своего небольшого проекта. Знаний пока немного. Искал по форумам примеры но видно плохо. ничего не нашел. Своя идея свелась к следующему: есть игрок и есть цель, когда игрок попадает в цель пулькой от здоровья цели отнимается значение damage. Этим управляет типовой скрипт из FPS тутора, в нем просто дописан кусочек чтоб damage прибавлялся к промежуточной переменной к которой я получаю доступ из другого скрипта по средствам GameObject.Find . Скрипт, назовем его damage_summ повешан на игрока и через gui выводит на экран количество очков которые игрок заработал. С одной целью все работает. А вот если цели клонировать несколько раз то при убийстве первого объекта и удалении его из сцены счетчик обновляется и начинает считать заново. К тому же не знаю по какой причине но скрипт отображает очки только когда стреляешь по последнему клону...убил его...обновляется и считает очки предпоследнего и так до родителя...хотя повреждения наносятся и объекты получают damage.
код damage_summ.js
var d_text: GUIText; public var d_summ : float;
function Start () { d_summ=0; } function Update () {
var go : GameObject = GameObject.Find("Mishen"); // ищем объект Mishen var ds : float = go.GetComponent(DamageReceiver).demag_s; // ищем переменную отвечающею за сумму повреждений обьекта
d_summ = ds; d_text.text = " " + d_summ;
}
кусок скрипта DamageReceiver.js
var hitPoints = 100.0; var detonationDelay = 0.0; var explosion : Transform; var deadReplacement : GameObject; public var demag_s: float = 0;
function ApplyDamage (damage : float) {
if (hitPoints <= 0.0) return;
hitPoints -= damage; demag_s += damage;
if (hitPoints <= 0.0) { // Start emitting particles var emitter : ParticleEmitter = GetComponentInChildren(ParticleEmitter); if (emitter) emitter.emit = true;
Invoke("DelayedDetonate", detonationDelay); } }
очень рад буду дельному совету который направит мои поиски в правильную сторону. Всегда готов!
получаю доступ из другого скрипта по средствам GameObject.Find
1. При смерти обьекта значение надо куда нить записать, а потом прибавить у новой цели, так счетчик обнулиться, то 0 + записаное значение = искомое. Но! заморочил ты блин все и как то через зад все организовал... Сделай 1 отдельный скрипт c именем Counter который будет считать очки, в нем стат. переменную static var counter = 0; При каждом попадании в каждую цель, эта цель из своего скрипта должна плюсовать статическую переменную скрипта Сounter.counter += n; Вот ее значение и выводи на GUIText. X.cor.R (Prologue)
static var counter : float = 0; var damage_text: GUIText;
function Update () { damage_text.text = "Pints" +counter;
}
фрагмент скрипта цели
function ApplyDamage (damage : float) { // We already have less than 0 hitpoints, maybe we got killed already Rigidbody? if (hitPoints <= 0.0) return;
hitPoints -= damage; Сounter.counter += damage;
выдает ошибку во втором скрипте на против строки "Сounter.counter += damage;" : BCE0044: unexpected char: 0xFFFD. вроде с синтаксисом все верено? Всегда готов!
Сообщение отредактировал ille - Ср, 27 Июл 2011, 22:32
А второй скрипт не на шарпе? Сounter.counter += правильный метод, скорее всего жалобы на это... static var counter : float = 0; Я же дал выше форму переменной: static var counter = 0; Не нужно float. Значение counter потом преобразуй в string и выводи в GUI. Ругань из за того что ты присваиваешь значения другим типам переменных. Переменные для статической передачи значения должны быть одного типа, а уж потом преобразуй. X.cor.R (Prologue)
Добавлено (28.07.2011, 18:38) --------------------------------------------- Хотите посмеяться ? Первая буква в слове "Counter"(DamageReceiver) была кириллическая. Хорошо ребята подсказали...ужос просто...теперь все работает отменно!
Всегда готов!
Сообщение отредактировал ille - Чт, 28 Июл 2011, 00:10
Пацаны помогите !Вот смотрите есть код .Надо напистать что б когда я нажимаю кнопку присесть то проигрываеться анимация присидания типо "crouch" потом есле я нажму идти то проигрываеться анима бега типо "run" еселе отжымаю то снова анима присидания.А если снова нажать копку присидания то что б оно перешло в анимацию "idle" как такое написать плиз помогите.Ато я написал что-то подобное ток он не ходит в режиме присидания и когда я снова нажимаю присесть нечё не происходит(а должен встать).
Это не вопрос, это просьба написать полный скрипт... А раз не вопрос, то и с ответом затрудняюсь... Копай мануал. Кто ищет, тот находит. X.cor.R (Prologue)