Думаю, каждому человеку может пригодиться ориентация в игровом пространстве. Ведь существуют такие квесты, типа: "Убей орка на Востоке". А откуда мы знаем, где находится Восток в игре? Именно чтобы игрок не путался в игровом пространстве, придумали Мини-карту и Компас в играх. И в этом уроке мы поговорим о создании Компаса в нашей игре. Ну что же, приступим! Добавим в наш новый проект Terrain, SkyBox и G-Force.Далее, добавим Cam1StPerson и привяжем её к Terrain и G-Force. Потом, добавим Sprite и поменяем начальную картинку на "стрелочку" (rotary deal B). В настройках "стрелочки", там где Width/height пишем [ 2 ] [ 8 ].
Теперь нужно добавить четыре TextPrint. Это будут те самые четыре буквы, которые обозначают стороны горизонта: N-North;E-East;S-South;W-West (можно сделать русскими буквами). Наверняка все знают, как их расположить. После этого, делаем нашу стрелочку посередине этих букв, и чтобы она указывала на север, то есть на букву N. Добавляем Script. Далее, в записываем скрипт:
//Orient a sprite based on current heading of a Cam1StPerson object void Main() { Quaternion spriteOrientation; Quaternion x90Rotation; Quaternion camOrientation; iQuaternionFromEulerAngles(x90Rotation,-90,0,0,"xyz"); //create a quaternion rotating -90 degs about X iObjectOrientation(OBJ_3,camOrientation); //get cam orientation iQuaternionMultiply(spriteOrientation,camOrientation,x90Rotation); // rotate the quaternion to transform from XZ plane to XY plane iObjectOrientationSet(OBJ_0,spriteOrientation); }
Далее, ставим галочку от Script к Cam1StPerson и "стрелочке" Sprite. Открываем Script слева видим: [OBJ_??] - Sprite [OBJ_??] - Cam1StPerson
Вместо ?? у вас должен быть ID объекта. Теперь смотрим ID у Sprite и пишем его вот сюда: (OBJ_0,spriteOrientation) вместо цифры 0. Теперь смотрим ID у Cam1StPerson и пишем его вот сюда: (OBJ_3,camOrientation) вместо цифры 3. Вот и всё! Надеюсь, этот урок будет для Вас полезен.