Результаты поиска
| |
wing13 | Дата: Суббота, 27 Апреля 2013, 18:50 | Сообщение # 161 | Тема: Моб не видит игрока |
участник
Сейчас нет на сайте
| Спасибо за ответы, но не помогло. А помогло странное, я переименовал переменную forward там, где камент "//Движение вперед" и все заработало. В общем магия и танцы с бубном.
Я вконтакте
|
|
| |
wing13 | Дата: Суббота, 27 Апреля 2013, 15:47 | Сообщение # 162 | Тема: Моб не видит игрока |
участник
Сейчас нет на сайте
| Всем привет! В общем я не очень хороший кодер и возникла у меня такая проблема. Я хочу что бы призрак кружился на месте и в случае, если он видит игрока, выпадала надпись "вас увидел призрак". Призрак состоит из чаректер контроллера и трансформа. Сейчас он просто кружится на месте, надпись не выпадает. Заместо этого выпадает ошибка: NullReferenceException: Object reference not set to an instance of an object Что не так?
Код var speed : float = 3.0; static var mob_r: int=0; //Скорость поворота var rotateSpeed : float = 1.0; function Update () { var controller : CharacterController = GetComponent(CharacterController); //Данные луча var fwd = transform.TransformDirection (Vector3.forward); //Направление луча - центр родительского объекта. var hit: RaycastHit; // Вращение transform.Rotate(0,rotateSpeed, 0); // Движение вперед var forward : Vector3 = transform.TransformDirection(Vector3.forward); controller.SimpleMove(forward); //Реакции моба if (Physics.Raycast (transform.position, fwd, hit, 5)) { if(hit.collider.name == "Player"){mob_r=1;} } } //Надписи function OnGUI() { if (mob_r==1){GUI.Label(new Rect(550,530, 150, 20),"Вас увидел призрак");} }
Я вконтакте
|
|
| |
wing13 | Дата: Вторник, 12 Февраля 2013, 00:40 | Сообщение # 163 | Тема: Курсор в играх от первого лица |
участник
Сейчас нет на сайте
| Хм, скажу подругому, я прописываю Screen.lockCursor = false; под приблизительно таким условием: if (a==500) {Screen.lockCursor = false;}, но когда a становится == 500, центр экрана всеравно ходит за курсором.
Я вконтакте
Сообщение отредактировал wing13 - Вторник, 12 Февраля 2013, 00:40 |
|
| |
wing13 | Дата: Понедельник, 11 Февраля 2013, 00:59 | Сообщение # 164 | Тема: Курсор в играх от первого лица |
участник
Сейчас нет на сайте
| Цитата (Левша) Screen.lockCursor = true; Этот способ не работает с First Person Controller, гугл впринципе подтверждает это, но ответа не дает...
Я вконтакте
|
|
| |
wing13 | Дата: Воскресенье, 10 Февраля 2013, 15:27 | Сообщение # 165 | Тема: Курсор в играх от первого лица |
участник
Сейчас нет на сайте
| Привет всем! В общем проблема хоть и банальная, но нужного ответа не нашел. Игра у меня от первого лица, соотвественно я использую стандартного плеера от первого лица, который есть в движке, где мышка привязана к центру экрана. У меня при нажатии на объект всплывает окошко с сообщением и кнопками. Чтоб нажать на кнопки надо соотвественно мышку от центра экрана временно отвязать... не пойму как это сделать.
Я вконтакте
Сообщение отредактировал wing13 - Воскресенье, 10 Февраля 2013, 15:28 |
|
| |
wing13 | Дата: Среда, 26 Декабря 2012, 01:12 | Сообщение # 166 | Тема: Уничтожить конкретный Instantiate |
участник
Сейчас нет на сайте
| Ошибка BCE0019: 'gameobject' is not a member of 'UnityEngine.RaycastHit'. Добавлено (26.12.2012, 01:12) --------------------------------------------- А все, решенние оказалось в: Destroy(hit.collider);
Долгож я думал...
Я вконтакте
|
|
| |
wing13 | Дата: Среда, 26 Декабря 2012, 00:18 | Сообщение # 167 | Тема: Уничтожить конкретный Instantiate |
участник
Сейчас нет на сайте
| В общем в игре кидаюсь предметами, которые генерируются при нажатии на кнопку, хочу реализовать возможность подбирать обратно. Пишу: Код if(hit.collider.name == "Brick_t(Clone)"){a=101; Bullet.brick_c ++; Destroy(GameObject.Find("Brick_t(Clone)"));} Но проблема в том, что все кирпичи эти имеют имя Brick_t(Clone) и при Destroy уничтожается случайный, а не тот, на которырй был клик. Как решить?
Я вконтакте
Сообщение отредактировал wing13 - Среда, 26 Декабря 2012, 01:01 |
|
| |
wing13 | Дата: Четверг, 26 Июля 2012, 20:20 | Сообщение # 168 | Тема: Поправьте скрипт |
участник
Сейчас нет на сайте
| Ну я не уверен насколько целесообразно в раде вообще делать классы, вроде как объект скрипт умеет только построчно ходить по коду сверху вниз...
Я вконтакте
Сообщение отредактировал wing13 - Четверг, 26 Июля 2012, 20:21 |
|
| |
wing13 | Дата: Четверг, 26 Июля 2012, 00:24 | Сообщение # 169 | Тема: Несколько вопросов по раду |
участник
Сейчас нет на сайте
| 1. iObjectLocation(OBJ_X(тут Игрок),Vector3); iObjectLocationSet(OBJ_X(тут G-force),Vector3);
2. iSimulationFrqSet(0); -пауза iSimulationFrqSet(0.016666f); - норма
3. Никак.
Я вконтакте
|
|
| |
wing13 | Дата: Четверг, 26 Июля 2012, 00:14 | Сообщение # 170 | Тема: Поправьте скрипт |
участник
Сейчас нет на сайте
| Ой хитро завернул
Лучше генерацию ипостеров в цикле через for сделай, что бы просто в каждом новом цикле новый экземпляр постера имел например Vector3.x=Vector3.x+(длинна куска земли), так можно кстати бесконечную землю всего в пару строчек кода сделать.
Я вконтакте
|
|
| |
wing13 | Дата: Вторник, 05 Июня 2012, 20:40 | Сообщение # 171 | Тема: Клонирование RigidBody и SoundSource. |
участник
Сейчас нет на сайте
| Функция iObjectImposterGet() появляется начиная с 7.16 версии, до 7.19 кстати можно бесплатно обновится. В более старых версиях сделать импостер ридгидбоди впринципе нельзя.
Я вконтакте
Сообщение отредактировал wing13 - Вторник, 05 Июня 2012, 20:42 |
|
| |
wing13 | Дата: Суббота, 02 Июня 2012, 11:16 | Сообщение # 172 | Тема: Клонирование RigidBody и SoundSource. |
участник
Сейчас нет на сайте
| Kilobyte импостеры ридгидбоди можно создавать начиная с 7.19 версии, а там это элементарно делается:
Code int zabor = 0; Quaternion oriC; Vector3 locC; Quaternion ori; Vector3 loc; void Main() {
if (iInitializing()) { //Сначала создаем импостеры zabor = 5; //допустим мы ставим 5 секций забора iObjectImpostersCreate(OBJ_22,zabor); //Один для ридгидбоди iObjectImpostersCreate(OBJ_44,zabor); //Второй для скинмеша
//Потом мы расставляем импостеры for (i=0;i<zabor;i++) {rx = 0;ry = 0;rz = 0;iQuaternionFromEulerAngles(ori,rx,ry,rz,"xyz"); loc.x = 0;loc.y = 0;loc.z = 0; //Тут вбиваем значения поворота и расположения в пространстве iObjectImposterSet(OBJ_22,i,ori,loc);iObjectImposterSet(OBJ_44,i,ori,loc);}
//Аналогично делаем для всех постеров for (i=1;i<zabor;i++) {rx = 0;ry = 0;rz = 0;iQuaternionFromEulerAngles(ori,rx,ry,rz,"xyz"); loc.x = 0;loc.y = 0;loc.z = 0; iObjectImposterSet(OBJ_22,i,ori,loc);iObjectImposterSet(OBJ_44,i,ori,loc);}
//И так до i=4, они считаются от нулевого, то есть нулевой это первый } //Этой строчкой привязываем импостеры скинмешей к ридгидбоди и включаем тени for (i=0;i<zabor;i++) {iObjectImposterGet(OBJ_22,i,oriC,locC); iObjectImposterSet(OBJ_44,i,oriC,locC);iObjectImposterShadowEnable(OBJ_44,i,true);}
}
Тестить код лень, написал по памяти, если не рабоатет, отпишись.
Я вконтакте
Сообщение отредактировал wing13 - Среда, 06 Июня 2012, 00:30 |
|
| |
wing13 | Дата: Понедельник, 14 Мая 2012, 17:03 | Сообщение # 173 | Тема: Поднять предмет 3d rad |
участник
Сейчас нет на сайте
| Пиши DIK_ENTER вместо DIK_RETURN
Я вконтакте
|
|
| |
wing13 | Дата: Воскресенье, 13 Мая 2012, 20:46 | Сообщение # 174 | Тема: Поднять предмет 3d rad |
участник
Сейчас нет на сайте
| gmmmm ошибка в том, что у тебя со скриптом соединен скинмеш оленя, а не ящиков На самом деле лучше подписывать объекты, что бы не путать... Держи поправленный проект: http://narod.ru/disk/49067131001.ce4ad20d5658d354faa3c27ffef71edb/%D0%B8%D0%B3%D1%80%D0%B0.3dr.html
Обращайсо.
Я вконтакте
Сообщение отредактировал wing13 - Воскресенье, 13 Мая 2012, 20:47 |
|
| |
wing13 | Дата: Воскресенье, 13 Мая 2012, 19:34 | Сообщение # 175 | Тема: Поднять предмет 3d rad |
участник
Сейчас нет на сайте
| Залей всю папку 3DRad_res, с этим проектом, а то вылетает с ошибкой, у меняж нет этих объектов.
Я вконтакте
Сообщение отредактировал wing13 - Воскресенье, 13 Мая 2012, 19:37 |
|
| |
wing13 | Дата: Воскресенье, 13 Мая 2012, 18:08 | Сообщение # 176 | Тема: Поднять предмет 3d rad |
участник
Сейчас нет на сайте
| gmmmm хм, построил сейчас у себя такую сцену с этим кодом, все работает... ну наверное дело в том, что сканер при нажатии пробела ищет объект, который находится по проекции от центра экрана, можно в этом куске кода iObjectScan(OBJ_22,PlayerL,scanDirection,0.5,contactPoint,contactNormal) увиличить число, выделенное жирным, оно отвечает насколько "толстой" будет линия проекции. Например число 10 покрывает почти всю зону видимости.
Я вконтакте
Сообщение отредактировал wing13 - Воскресенье, 13 Мая 2012, 18:09 |
|
| |
wing13 | Дата: Воскресенье, 13 Мая 2012, 15:31 | Сообщение # 177 | Тема: Поднять предмет 3d rad |
участник
Сейчас нет на сайте
| gmmmm а ошибок не выдает на чек скрипт? {iObjectHide(OBJ_22); } вот этом моменте нужно прописать Скинмеш, ридгидбоди то итак скрыт же) Ну и этот код подразумевает, что игрок смотрит на предмет то есть предмет в центре экрана.
Кстати деревья эти стандартные дочерта ресурсов жрут, если тормозить начнет, их в первую очередь надо заменить.
Я вконтакте
Сообщение отредактировал wing13 - Воскресенье, 13 Мая 2012, 15:36 |
|
| |
wing13 | Дата: Суббота, 12 Мая 2012, 21:01 | Сообщение # 178 | Тема: Поднять предмет 3d rad |
участник
Сейчас нет на сайте
| Да надо написать сканер, правда там надо будет чтоб игрок смотрел на предмет:
Code Vector3 scanDirection;float scanLength; Vector3 contactPoint;Vector3 contactNormal;Vector3 PlayerL;Quaternion PlayerO;
void Main() { scanLength= 5; //Длинна сканера в метрах iObjectOrientation(OBJ_X,PlayerO);iObjectLocation(OBJ_X,PlayerL); //OBJ_X - игрок. iVectorRotate(scanDirection,Vector3(0,0,scanLength),PlayerO);
if (iKeyDown(iKeyCode("DIK_SPACE")) && iObjectScan(OBJ_X,PlayerL,scanDirection,0.5,contactPoint,contactNormal)) //OBJ_X - объект, который надо поднять {iObjectHide(OBJ_X); } //А тут внутри скобок надо написать то, что произойдет, когда предмет будет поднят, этот код например просто спрячет OBJ_X - сам объект
}
Я вконтакте
Сообщение отредактировал wing13 - Суббота, 12 Мая 2012, 21:10 |
|
| |
wing13 | Дата: Пятница, 11 Мая 2012, 13:54 | Сообщение # 179 | Тема: Игра Последний путь |
участник
Сейчас нет на сайте
| FERAMON А то!
Я вконтакте
|
|
| |
wing13 | Дата: Пятница, 11 Мая 2012, 00:50 | Сообщение # 180 | Тема: Игра Последний путь |
участник
Сейчас нет на сайте
| FERAMON выглядит интересно.
ЙаСаня закинул.
Я вконтакте
|
|
| |
|