103 / 104 / 54
Регистрация: 23.03.2016
Сообщений: 462

Скрипт на камеру как в редакторе Unity3d

11.04.2016, 12:16. Показов 33085. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужен скрипт для облета вокруг объекта, приближения/отдаления и тд для мыши и тача. Может есть у кого готовый скрипт?

Добавлено через 1 час 7 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using UnityEngine;
using System.Collections;
 
public class mainCamera : MonoBehaviour {
    [SerializeField] private Transform target;
 
    public float rotSpeed = 1.5f; //скорость вращения
    public float zoomSpeed = 5.0f; //скорость приближения камеры
    private float _rotY, _rotX; //углы по x и y
    private Vector3 _offset; //смещение камеры относительно объекта
    
 
    // Use this for initialization
    void Start() {
        _rotY = transform.eulerAngles.y; 
        _rotX = transform.eulerAngles.x;
        _offset = target.position - transform.position; //получает начальное смещение
    }
    
    void LateUpdate() {
        float input = Input.GetAxis("Mouse ScrollWheel"); 
        if (input != 0) //если крутится колесико мыши
        {
            Camera.main.fieldOfView += input * zoomSpeed; //зум
 
            //сперва хотел менять смещение, что то криво вышло
            //_offset.x += 10 * input;
            //_offset.y += 10 * input;
        }
 
        _rotY -= Input.GetAxis("Mouse X") * rotSpeed; //поворот камеры вокруг объекта
        _rotX += Input.GetAxis("Mouse Y") * rotSpeed;
 
        if (_rotY != 0 || _rotX != 0)
        {
            Quaternion rotation = Quaternion.Euler(_rotX, _rotY, 0); //задает вращение камеры
            transform.position = target.position - (rotation * _offset); 
            transform.LookAt(target);
        }
    }
}
вот что пока получилось собрать
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.04.2016, 12:16
Ответы с готовыми решениями:

Как отредактировать файл специального формата в текстовом редакторе или редакторе кодов?
Привет специалистам! Я - программист СУБД и не могу решить указанную задачу. Как отредактировать файл специального формата (XLS,...

Не работает скрипт в Unity3d
Написал вот такой скрипт для того чтобы поворачивать объект на N градусов по N оси для юнити 3д, но он не работает. Не понимаю в чем тут...

Скрипт показа видео через веб-камеру на сайте
Есть ли какое то готовое решение/сервис, который позволял бы разместить на сайте скрипт, который показывал бы потоковое видео с веб-камеры...

27
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
17.04.2016, 19:09
Студворк — интернет-сервис помощи студентам
Quat1111, потому что вертикаль - это локальная ось right, а горизонталь - глобальная up

Попробуйте:
transform.RotateAround(target.position, Vector3.up, x_angle) для горизонтального вращения и
transform.RotateAround(target.position, transform.right, y_angle) для вертикального вращения
а углы берите из движения мыши или touches[0].deltaPosition

Тогда зум можно сделать как
zoom = Input.GetAxis("Mouse ScrollWheel"); // для мыши
zoom = (touches[0].position - touches[1].position).magnitude - (touches[0].position - touches[1].position + touches[1].deltaPosition - touches[0].deltaPosition).magnitude; // для тача
transform.position += (target.position - transform.position) * zoom;

Проблем с вращением нет пока сцена не грузит железо, при критических нагрузках сразу баги полезут, простейшую оптимизацию надо делать в момент писания алгоритма.
0
103 / 104 / 54
Регистрация: 23.03.2016
Сообщений: 462
19.04.2016, 15:13  [ТС]
Cr0c,
transform.RotateAround(target.position, Vector3.up, x_angle)

Vector3.up поменял на transform.up, стало примерно как надо, только появилось вращение по оси Z.

Думал будет проще сделать обзор результата.
Выложил исходники приложения во вложении. На камере 2 скрипта, один тестовый, второй актуальный.
Вложения
Тип файла: zip unity.zip (8.90 Мб, 65 просмотров)
0
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
19.04.2016, 15:31
Quat1111, куда смотрит Vector3.up и куда смотрит transform.up?
0
103 / 104 / 54
Регистрация: 23.03.2016
Сообщений: 462
19.04.2016, 15:48  [ТС]
Cr0c, это понятно, потому и поменял. А как правильно сделать, не знаю.
0
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
19.04.2016, 21:45
Лучший ответ Сообщение было отмечено Quat1111 как решение

Решение

Quat1111, вечером дома буду - гляну

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using UnityEngine;
using System.Collections;
public class NewBehaviourScript : MonoBehaviour {
    public GameObject cam_holder; // пустышка камеры
    public Transform target;
    public float mouse_sens = 1f;
    public float wheel_sens = 1f;
 
    void LateUpdate()
    {
        if (Input.GetMouseButton(0)) //левая кнопка мыши
        {
            float x_axis = Input.GetAxis("Mouse X") * mouse_sens;
            float y_axis = -Input.GetAxis("Mouse Y") * mouse_sens;
 
            cam_holder.transform.Rotate(Vector3.up, x_axis, Space.World);
            cam_holder.transform.Rotate(Vector3.right, y_axis, Space.Self);
        }
 
        float zoom = Input.GetAxis("Mouse ScrollWheel");
        if (zoom != 0) 
        {
            transform.localPosition = transform.localPosition * (1 - zoom);
        }
    }
}
Миниатюры
Скрипт на камеру как в редакторе Unity3d  
1
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
19.04.2016, 21:48
Всё работает четко.
0
103 / 104 / 54
Регистрация: 23.03.2016
Сообщений: 462
19.04.2016, 22:09  [ТС]
Cr0c, оставлю последний вариант, спасибо.

Смотрели мои варианты? По поводу перемещения точки обзора, так и оставить?
0
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
20.04.2016, 07:46
Цитата Сообщение от Quat1111 Посмотреть сообщение
По поводу перемещения точки обзора
Не нашел.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.04.2016, 07:46

Unity3D, *скрипт управления свайпом не работает, с клавиатуры все ок
Доброго дня! Игра - 2048. Есть скрипт в 2D-проекте (Unity3D, 5.2.1p3), он навешан на камеру. В Update() прописано управление с...

Ноутбук до 26.000 р. для работы в графическом редакторе или видео-редакторе
Так же для работы в Cubase. Я понимаю, что для работы с графикой, рендеренгом видео, необходима мощность процессора. Что лучше,...

Превратить веб камеру в ip камеру
Коллеги, добрый день. Столкнулся с интересной задачей, есть ноут, с вебки которого нужно писать видео и звук на видеорегистратор от...

как включить камеру???
как включить камеру на ноутбуке ASUS F5 enterteiment system????

Как подключить моб телефон как web камеру через блютуз?
Телефон samsung gt-s5610 Я когда блютуз для компа покупала,мне сказали,что можно телефон как вебку подключить! Но я не знаю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Опции темы

Новые блоги и статьи
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru