Как в WarCraft

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Как в WarCraft

Сообщение bomberest 22 июн 2011, 14:43

Помогите понять, что надо сделать, чтобы получилась такая камера: обзор под наклоном, наклон не меняется, при движении мыши камера летает над местностью на одной и той же высоте.
Я, например, изменил наклон камера как объекта в редакторе, но тогда, если нужно будет в скрипт писать для передвижения камеры и использовать X,Y,Z, то на них будет еще влиять наклон камеры. Как этого избежать этого, т.е., чтобы камеры была всегда на одной высоте?
Последний раз редактировалось bomberest 22 июн 2011, 18:00, всего редактировалось 1 раз.
Аватара пользователя
bomberest
Старожил
 
Сообщения: 538
Зарегистрирован: 22 июн 2011, 14:38
Откуда: Минск
  • ICQ

Re: Камера, как в WarCraft

Сообщение Avatarchik 22 июн 2011, 14:59

Создать пустой объект, закинуть в него камеру, камеру вращай как хочешь, а двигай потом этот пустой объект.
Добавить ava-karaban в Skype
Аватара пользователя
Avatarchik
UNITрон
 
Сообщения: 274
Зарегистрирован: 04 апр 2009, 15:36
Откуда: Украина(Донецк)
  • ICQ

Re: Камера, как в WarCraft

Сообщение bomberest 22 июн 2011, 15:00

Avatarchik писал(а):Создать пустой объект, закинуть в него камеру, камеру вращай как хочешь, а двигай потом этот пустой объект.

Нет, камера не вращается и не наклоняется, а только перемещается в пространстве на одной и той же высоте.
Основы Unity3D Свой 2D-движок Фильм для разработчиков Кастомизация едитора
Лекции игрового программирования
Skype: Andrewf56 | Steam: bomberest (-AnF-) | Vk: _https://vk.com/andrewshut
Аватара пользователя
bomberest
Старожил
 
Сообщения: 538
Зарегистрирован: 22 июн 2011, 14:38
Откуда: Минск
  • ICQ

Re: Камера, как в WarCraft

Сообщение bomberest 22 июн 2011, 15:02

bomberest писал(а):
Avatarchik писал(а):Создать пустой объект, закинуть в него камеру, камеру вращай как хочешь, а двигай потом этот пустой объект.

Нет, камера не вращается и не наклоняется, а только перемещается в пространстве на одной и той же высоте.

Кажется, я понял :) Спасибо за идею!
Основы Unity3D Свой 2D-движок Фильм для разработчиков Кастомизация едитора
Лекции игрового программирования
Skype: Andrewf56 | Steam: bomberest (-AnF-) | Vk: _https://vk.com/andrewshut
Аватара пользователя
bomberest
Старожил
 
Сообщения: 538
Зарегистрирован: 22 июн 2011, 14:38
Откуда: Минск
  • ICQ

Re: Камера, как в WarCraft

Сообщение bomberest 22 июн 2011, 15:06

А, может, еще со скриптом можешь помочь?
Идея там, вроде, такая: когда позиция курсора очень близко к краям экрана, то камера двигается в ту сторону.
Я совсем новичок в ксриптинге Юнити, помогите разобраться с получением координат курсора, через хелп не очень понятно, или я просто не там смотрю в хелпе.
Основы Unity3D Свой 2D-движок Фильм для разработчиков Кастомизация едитора
Лекции игрового программирования
Skype: Andrewf56 | Steam: bomberest (-AnF-) | Vk: _https://vk.com/andrewshut
Аватара пользователя
bomberest
Старожил
 
Сообщения: 538
Зарегистрирован: 22 июн 2011, 14:38
Откуда: Минск
  • ICQ

Re: Камера, как в WarCraft

Сообщение bomberest 22 июн 2011, 17:44

Решил:


Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class CameraView : MonoBehaviour {
        public float krai = 10f;
        public float speed = 10f;

        // Use this for initialization
        void Start () {
       
        }
       
        // Update is called once per frame
        void Update () {
        if(Input.mousePosition.x < krai){
                        transform.position -= new Vector3 (speed,0,0) * Time.deltaTime;
                }
        if(Input.mousePosition.x > Screen.width - krai){
                        transform.position += new Vector3 (speed,0,0) * Time.deltaTime;
                }
        if(Input.mousePosition.y < krai){
                        transform.position -= new Vector3 (0,0,speed) * Time.deltaTime;
                }
        if(Input.mousePosition.y > Screen.height - krai){
                        transform.position += new Vector3 (0,0,speed) * Time.deltaTime;
                }
        }
}
Основы Unity3D Свой 2D-движок Фильм для разработчиков Кастомизация едитора
Лекции игрового программирования
Skype: Andrewf56 | Steam: bomberest (-AnF-) | Vk: _https://vk.com/andrewshut
Аватара пользователя
bomberest
Старожил
 
Сообщения: 538
Зарегистрирован: 22 июн 2011, 14:38
Откуда: Минск
  • ICQ

Re: Камера, как в WarCraft

Сообщение bomberest 22 июн 2011, 17:59

Тогда новый вопрос: как узнать, в какую точку на Terrain мы кликнули мышкой?
Основы Unity3D Свой 2D-движок Фильм для разработчиков Кастомизация едитора
Лекции игрового программирования
Skype: Andrewf56 | Steam: bomberest (-AnF-) | Vk: _https://vk.com/andrewshut
Аватара пользователя
bomberest
Старожил
 
Сообщения: 538
Зарегистрирован: 22 июн 2011, 14:38
Откуда: Минск
  • ICQ

Re: Как в WarCraft

Сообщение Neodrop 22 июн 2011, 20:38

Открываем справку и смотрим класс Terrain
Там есть, гарантирую ;)
Форум не замена справки, а только её дополнение. Будьте уважительны к чужому времени.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Как в WarCraft

Сообщение bomberest 22 июн 2011, 21:17

В справке по терейну не увидел ничего подобного. Тут ведь надо скрипт писать
Основы Unity3D Свой 2D-движок Фильм для разработчиков Кастомизация едитора
Лекции игрового программирования
Skype: Andrewf56 | Steam: bomberest (-AnF-) | Vk: _https://vk.com/andrewshut
Аватара пользователя
bomberest
Старожил
 
Сообщения: 538
Зарегистрирован: 22 июн 2011, 14:38
Откуда: Минск
  • ICQ

Re: Как в WarCraft

Сообщение Avatarchik 22 июн 2011, 21:41

В справке ищем Ray ,Raycast...
И находим :-B
Синтаксис:
Используется csharp
if (Input.GetMouseButtonDown(1)) {
       RaycastHit hit;
       Ray   ray = Camera.main.ScreenPointToRay(Input.mousePosition);
               Physics.Raycast(ray, out hit, Mathf.Infinity, 1);
               if (hit.transform != null) {
                    Vector3 hitPoint = hit.point;
                    Debug.Log("Координаты куда кликнули: " + hitPoint);
               }
}
Добавить ava-karaban в Skype
Аватара пользователя
Avatarchik
UNITрон
 
Сообщения: 274
Зарегистрирован: 04 апр 2009, 15:36
Откуда: Украина(Донецк)
  • ICQ

Re: Как в WarCraft

Сообщение bomberest 22 июн 2011, 22:58

Есть такой красивый кусок из кода. Бросать его надо на камеру

Синтаксис:
Используется csharp
       // Щелкаем мышкой
        if (Input.GetMouseButtonDown(0))
        {
            // Используя свойство camera данного компонента мы получим камеру,
            // привязанную к объекту
            // С помощью камеры спроецируем луч из точки на экране, в которой находится мышька
            Ray mouseRay = camera.ScreenPointToRay(Input.mousePosition);
           
            // переменная, которая будет содержать результат щелчка мышью по сцене
            RaycastHit hit;

            // на основе полученного луча проверяем его пересечение с объектами в сцене,
            // содержащими компонент Collider (кубики содержат по умолчанию Box Collider)
            if (Physics.Raycast(mouseRay, out hit))
            {
                // если попали в геометрию, то создадим в этом месте взрыв
                Debug.Log(hit.point);
            }
        }
Основы Unity3D Свой 2D-движок Фильм для разработчиков Кастомизация едитора
Лекции игрового программирования
Skype: Andrewf56 | Steam: bomberest (-AnF-) | Vk: _https://vk.com/andrewshut
Аватара пользователя
bomberest
Старожил
 
Сообщения: 538
Зарегистрирован: 22 июн 2011, 14:38
Откуда: Минск
  • ICQ

Re: Как в WarCraft

Сообщение bomberest 22 июн 2011, 23:44

Не могу разобраться с игнорированием лучом коллайдеров, кроме определённого. Помогите, пожалуйста
Основы Unity3D Свой 2D-движок Фильм для разработчиков Кастомизация едитора
Лекции игрового программирования
Skype: Andrewf56 | Steam: bomberest (-AnF-) | Vk: _https://vk.com/andrewshut
Аватара пользователя
bomberest
Старожил
 
Сообщения: 538
Зарегистрирован: 22 июн 2011, 14:38
Откуда: Минск
  • ICQ

Re: Как в WarCraft

Сообщение Neodrop 23 июн 2011, 01:11

Идите учить уроки. Пройдите, блин, хотя бы базовые туториалы, тролль. :-w
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Как в WarCraft

Сообщение Order 23 июн 2011, 06:00

А чем не устраивает стандартный скрипт камеры от 3 лица ? он в примерах есть.
Для начала он вполне даже ничего.
На счет лучей и колайдеров, за последний месяц тем 10 было.
Добавить rusorder в Skype , _juc4you@mail.ru ;
Платные консультации, программирование ваших проектов Unity3d,C#,IOS,Android.
Скрытый текст:
_ttp://www.youtube.com/watch?v=1m2qTnatSjM&list=UUjcKNvONEUHCILG7QrX1NFg
Order
Старожил
 
Сообщения: 805
Зарегистрирован: 21 фев 2010, 10:34

Re: Как в WarCraft

Сообщение bomberest 23 июн 2011, 11:50

Order писал(а):А чем не устраивает стандартный скрипт камеры от 3 лица ? он в примерах есть.
Для начала он вполне даже ничего.
На счет лучей и колайдеров, за последний месяц тем 10 было.

Тот скрипт - висячая камера над головой, а мне нужна независимая камера.
Основы Unity3D Свой 2D-движок Фильм для разработчиков Кастомизация едитора
Лекции игрового программирования
Skype: Andrewf56 | Steam: bomberest (-AnF-) | Vk: _https://vk.com/andrewshut
Аватара пользователя
bomberest
Старожил
 
Сообщения: 538
Зарегистрирован: 22 июн 2011, 14:38
Откуда: Минск
  • ICQ

След.

Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 27