Суббота, 27 Апреля 2024, 05:05

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 9 из 10
  • «
  • 1
  • 2
  • 7
  • 8
  • 9
  • 10
  • »
Форум игроделов » Записи участника » wing13 [200]
Результаты поиска
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 | Тема: Поправьте скрипт
участник
Сейчас нет на сайте
Ой хитро завернул smile

Лучше генерацию ипостеров в цикле через 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 ошибка в том, что у тебя со скриптом соединен скинмеш оленя, а не ящиков smile
На самом деле лучше подписывать объекты, что бы не путать...
Держи поправленный проект:
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 выглядит интересно.

ЙаСаня закинул.


Я вконтакте
Форум игроделов » Записи участника » wing13 [200]
  • Страница 9 из 10
  • «
  • 1
  • 2
  • 7
  • 8
  • 9
  • 10
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг