Вопрос-[ответ] по Unity
|
|
QWER56 | Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1 |
старожил
Сейчас нет на сайте
| Вопрос-[Ответ] по Unity3d
База скриптов Unity3d Курс Уроков по Unity 3D от Alcatraz
ConsMark - поисковик по интернет магазинам.
Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54 |
|
| |
Adom | Дата: Понедельник, 21 Апреля 2014, 17:21 | Сообщение # 5881 |
Печенька!
Сейчас нет на сайте
| beril, Ну ясень пень не бубном и целителем. А как именно ? Подтолкни
|
|
| |
beril | Дата: Понедельник, 21 Апреля 2014, 18:16 | Сообщение # 5882 |
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
| Цитата Adom ( ) beril, Ну ясень пень не бубном и целителем. А как именно ? Подтолкни Ну какой вопрос, такой и ответ. Подробней бы код выложить или готовую сценку с проблемой
Накодил? Убери за собой! Инвентарь в Unity(UI) Инвентарь в Unity(GUI)
|
|
| |
Adom | Дата: Понедельник, 21 Апреля 2014, 18:28 | Сообщение # 5883 |
Печенька!
Сейчас нет на сайте
| beril, Эх сценку выкладывать немного стыдно поэтому попробую объяснить даже скрин впихну ) Добавлено (21.04.2014, 18:28) --------------------------------------------- В общем когда танк переворачиваться то башня смотрит допустим вправо а камера теперь не сзади него а где-слева. Как сделать что-бы камера в любом случае оставалась позади танка ?
|
|
| |
beril | Дата: Понедельник, 21 Апреля 2014, 19:40 | Сообщение # 5884 |
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
| вот может пригодится камера Код using UnityEngine; using System.Collections;
#region///=====================Камера следящая ха обьектом==== // beril(11.02): добавить маштабирование // ///=================Описание====================== /*Камера перемещается за target * * * */ #endregion public class CameraFolowing : MonoBehaviour{ [HideInInspector] public GameObject target; //цель за которой следуем public float xSpeed; // public float ySpeed; // public float yMinLimit; //минимальное значение public float yMaxLimit; //максимальное значение public float scrollSpeed; //скорость прокрутки public float zoomMin; //зум минимальный public float zoomMax; //зум максимальный private float distance; private float distanceLerp; private Vector3 position; private bool isActivated; private float x; private float y; private bool setupCamera;
void Start () { //если цель не задана if(target == null) { target = GameObject.FindGameObjectWithTag("Player"); if(target == null) { Debug.LogWarning("Don't found player tag please change player tag to Player"); } } //устанавливаем позицию Vector3 angles = transform.eulerAngles; x = angles.y; y = angles.x; CalDistance(); } void LateUpdate () { ScrollMouse(); RotateCamera(); } //вращение камеры void RotateCamera() { if (Input.GetMouseButtonDown(1)){ isActivated = true; } if (Input.GetMouseButtonUp(1)) { isActivated = false; } if (target && isActivated) { y -= Input.GetAxis("Mouse Y") * ySpeed;
x += Input.GetAxis("Mouse X") * xSpeed;
y = ClampAngle(y, yMinLimit, yMaxLimit); Quaternion rotation = Quaternion.Euler(y, x, 0); Vector3 calPos = new Vector3(0, 0, -distanceLerp);
position = rotation * calPos + target.transform.position; transform.rotation = rotation; transform.position = position; } else { Quaternion rotation = Quaternion.Euler(y, x, 0); Vector3 calPos = new Vector3(0, 0, -distanceLerp);
position = rotation * calPos + target.transform.position; transform.rotation = rotation; transform.position = position; } } //выцесляем направление void CalDistance() { distance = zoomMax; distanceLerp = distance; Quaternion rotation = Quaternion.Euler(y, x, 0); Vector3 calPos = new Vector3(0, 0, -distanceLerp); position = rotation * calPos + target.transform.position; transform.rotation = rotation; transform.position = position; } void ScrollMouse() { distanceLerp = Mathf.Lerp(distanceLerp,distance,Time.deltaTime * 5); if (Input.GetAxis("Mouse ScrollWheel") != 0) { // get the distance between camera and target distance = Vector3.Distance (transform.position , target.transform.position); distance = ScrollLimit(distance - Input.GetAxis("Mouse ScrollWheel")*scrollSpeed, zoomMin, zoomMax); } } float ScrollLimit(float dist, float min, float max) { if (dist < min) dist= min; if (dist > max) dist= max; return dist; } float ClampAngle(float angle,float min,float max) { if(angle < -360) angle += 360; if(angle > 360) angle -= 360; return Mathf.Clamp(angle,min,max); } }
Накодил? Убери за собой! Инвентарь в Unity(UI) Инвентарь в Unity(GUI)
|
|
| |
Adom | Дата: Понедельник, 21 Апреля 2014, 20:39 | Сообщение # 5885 |
Печенька!
Сейчас нет на сайте
| Это что за ошибка то такая ? (Не связанно с предыдущиими темами). Error building Player: Couldn't build player because of unsupported data on target platform. и тд
|
|
| |
beril | Дата: Понедельник, 21 Апреля 2014, 20:41 | Сообщение # 5886 |
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
| динамические шрифты ?
Накодил? Убери за собой! Инвентарь в Unity(UI) Инвентарь в Unity(GUI)
Сообщение отредактировал beril - Понедельник, 21 Апреля 2014, 20:42 |
|
| |
Adom | Дата: Понедельник, 21 Апреля 2014, 21:05 | Сообщение # 5887 |
Печенька!
Сейчас нет на сайте
| Эмм? ATC compressed textures are not supported when publishing to Standalone Assets/Icon/play.png Included from scene: UnityEditor.HostView:OnGUI()
Building - Failed to write file: sharedassets0.assets UnityEditor.HostView:OnGUI()
Вот ещеДобавлено (21.04.2014, 21:05) --------------------------------------------- ATC compressed textures are not supported when publishing to Standalone Assets/Standard Assets/Image Effects (Pro Only)/_Sources/Textures/VignetteMask.png Included from scene: UnityEditor.HostView:OnGUI()
|
|
| |
lentinant | Дата: Понедельник, 21 Апреля 2014, 23:43 | Сообщение # 5888 |
ленивый программист
Сейчас нет на сайте
| Цитата Adom ( ) ATC compressed textures are not supported when publishing to Standalone ATC сжатие текстур поддерживается только на Андроиде, ты же пытаешься впихнуть его в ПК версию.
Когда-то тут будут ссылки на крутые проекты. Или нет.
|
|
| |
Adom | Дата: Вторник, 22 Апреля 2014, 15:29 | Сообщение # 5889 |
Печенька!
Сейчас нет на сайте
| Как лечить ? Добавлено (22.04.2014, 14:52) --------------------------------------------- Все. Вылечил. Спасибо помог) Добавлено (22.04.2014, 15:29) --------------------------------------------- А можно сделать обновления игры как в WOT ? Т.Е что-бы обновлялось каждый раз когда выходит новая версия причем нужно будет учитывать какая версия сейчас установлена. Как это можно сделать ?
|
|
| |
Storm54 | Дата: Четверг, 24 Апреля 2014, 02:45 | Сообщение # 5890 |
постоянный участник
Сейчас нет на сайте
| Цитата А можно сделать обновления игры как в WOT ? Т.Е что-бы обновлялось каждый раз когда выходит новая версия причем нужно будет учитывать какая версия сейчас установлена. Как это можно сделать ? Можно. Пишешь лаунчер, который будет запускаться первым и при необходимости обновлять игру, а затем уже саму эту игру и запускать. Хотя, конечно, такой ответ тебя не устроит, т.к. тебе нужен пример в пару строк кода. Готового варианта нет. Пишешь сам все ручками.
Для начала разбиваешь всю игру на ассет бандлы, в которых будет храниться вся информация. Как именно будет игра разбита - тебе решать. Лично у меня отдельные бандлы под следующие категории: Модели, текстуры, скрипты, локации. Бандлы эти так же собираешь вручную, благо документации в интернете полно, да и в юнити уже есть классы, облегчающие этот процесс. При запуске лаунчер должен запросить список всех необходимых файлов с сервера и их MD5, после чего пробежаться по всем файлам, указанным в списке и в случае отсутствия файла или несоответствия его контрольной суммы, скачать новый файл с сервера, заменив существующий.
На самом деле можно игру и не разбивать на ассет бандлы, но тогда в большинстве случаев придется обновлять практически весь клиент даже при самом незначительном обновлении.
|
|
| |
Adom | Дата: Четверг, 24 Апреля 2014, 05:47 | Сообщение # 5891 |
Печенька!
Сейчас нет на сайте
| Storm54, Спасибо. Такого ответа я и ждал ) Добавлено (24.04.2014, 05:44) --------------------------------------------- Пойду гуглить тогда ) Добавлено (24.04.2014, 05:47) --------------------------------------------- И вот еще вопрос. Где хранить файлы обновлений ?
|
|
| |
Fr0sT | Дата: Четверг, 24 Апреля 2014, 15:59 | Сообщение # 5892 |
постоянный участник
Сейчас нет на сайте
| Есть объект,к нему прикреплена моделька(как чайлд)Этой модельки я передаю координату поворота по Y,поворачивает,но без учета поворота родительского объекта.Дело в том что родительский объект крутится и мне надо поворачивать модельку которая к нему прикреплена относительно его же.Transform.localRotation не помогает.А,ну и координату я беру так quaternion q = quaternion.lookRotation(moveDirektion); transform.rotation = quaternion.Euler(transform.eulerAngles.x,q.eulerAngles.y,transform.eulerAngles.z); UPD: Разобрался
Сообщение отредактировал Fr0sT - Четверг, 24 Апреля 2014, 23:09 |
|
| |
Adom | Дата: Воскресенье, 27 Апреля 2014, 10:38 | Сообщение # 5893 |
Печенька!
Сейчас нет на сайте
| Есть скрипт он служит для поднимания ствола танка. Как ограничить угол подъема ? Код using UnityEngine; using System.Collections;
public class Turret : MonoBehaviour { public Transform Tur; public float rotationVel = 50; //Rotation Velocity public float yRotation=5; public float minimumX = -360F; public float maximumX = 360F; public float minimumY = -60F; public float maximumY = 60F; void Update (){ if(networkView.isMine){ //Rotate the turret to the right rotationVel += Input.GetAxis("Mouse X"); transform.Rotate(Vector3.up*rotationVel*5); //Rotate the turret to the left rotationVel -= Input.GetAxis("Mouse X"); transform.Rotate(-Vector3.up*rotationVel*5); // rotationVel += Input.GetAxis("Mouse Y"); Tur.Rotate(Vector3.right*rotationVel*5); // rotationVel -= Input.GetAxis("Mouse Y"); Tur.Rotate(-Vector3.right*rotationVel*5); } } }
|
|
| |
lentinant | Дата: Воскресенье, 27 Апреля 2014, 16:08 | Сообщение # 5894 |
ленивый программист
Сейчас нет на сайте
| Adom, соответственно до твоего кода, можно получить угол наклона с трансформа (GetEulers, вроде бы, точно не помню), пробить его через Mathf.Clamp, и вернуть обратно в transform.
Когда-то тут будут ссылки на крутые проекты. Или нет.
Сообщение отредактировал lentinant - Воскресенье, 27 Апреля 2014, 16:09 |
|
| |
Adom | Дата: Воскресенье, 27 Апреля 2014, 18:46 | Сообщение # 5895 |
Печенька!
Сейчас нет на сайте
| А вот теперь еще вопрос. Он не относится к предыдущему. Как сделать систему обновлений ? Т.е что-бы старая версия игры обновлялась до новой ?
|
|
| |
true_abrakadabra | Дата: Воскресенье, 27 Апреля 2014, 19:04 | Сообщение # 5896 |
Unity3d - ван лав
Сейчас нет на сайте
| Adom, пол минуты гугления
Ниндзя
|
|
| |
Adom | Дата: Воскресенье, 27 Апреля 2014, 19:10 | Сообщение # 5897 |
Печенька!
Сейчас нет на сайте
| ПОЛ БЛИН МИНУТЫ !? Я ИСКАЛ ЭТО НЕДЕЛЮ !!
|
|
| |
Storm54 | Дата: Воскресенье, 27 Апреля 2014, 20:10 | Сообщение # 5898 |
постоянный участник
Сейчас нет на сайте
| Проще самому написать. На готовых скриптах ты далеко не уедешь.
|
|
| |
Adom | Дата: Понедельник, 28 Апреля 2014, 11:51 | Сообщение # 5899 |
Печенька!
Сейчас нет на сайте
| Storm54,Знаю. Я уже начал писать )
|
|
| |
ower | Дата: Понедельник, 28 Апреля 2014, 13:38 | Сообщение # 5900 |
был не раз
Сейчас нет на сайте
| Помогите пожалуйста. Подскажите как реализовать Скрипт который при клике мышкой на объект, телепортировал персонажа в конкретную точку? Заранее Спасибо.
|
|
| |