Свободное перемещение камеры и создание объектов(не решено!)

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

Свободное перемещение камеры и создание объектов(не решено!)

Сообщение origamerpro 17 сен 2011, 10:50

1. Есть 3д персонаж (стандартный с Юнити) нужно что бы по клавише скажем "G" включался свободный полет камеры или как это называется в играх "режим бога".
2. Как уже в игре можно реализовать создание объектов по клику (как в маинкрафт - тыкнул кнопкой мыши - появился объект)
3. Реализация добавления объекта сверху как в сити строилках - выделяется область а на ее месте появляются объекты. (добавление дорогие, деревьев).

Я с Юнити дружу всего неделю, так что надеюсь вопросы не слишком сложные. ;)
Последний раз редактировалось origamerpro 18 сен 2011, 16:21, всего редактировалось 2 раз(а).
origamerpro
UNец
 
Сообщения: 16
Зарегистрирован: 09 дек 2010, 10:39

Re: Свободное перемещение камеры и создание объектов

Сообщение #Test 17 сен 2011, 18:04

1. Создаешь вторую камеру, навешиваешь на нее скрипт перемещения какой тебе надо и включаешь по нажатию на клавишу (смотри справку Input.GetKey)
2. Про клик опять же смотри Input в справке, по загрузке объектов смотри например Resources.Load
3. см пункт 2.
Аватара пользователя
#Test
UNец
 
Сообщения: 27
Зарегистрирован: 28 июл 2011, 09:31
Откуда: Екатеринбург
  • ICQ

Re: Свободное перемещение камеры и создание объектов

Сообщение origamerpro 17 сен 2011, 19:33

спс буду искать, читать, пробовать, делать.
origamerpro
UNец
 
Сообщения: 16
Зарегистрирован: 09 дек 2010, 10:39

Re: Свободное перемещение камеры и создание объектов

Сообщение origamerpro 17 сен 2011, 21:01

после долгой медитации на гайд я понял. я не знаю как переключаться между камерами при нажатии на кнопку G :( , просьба помочь с пояснениями. Все что я добился так это персонаж немного взлетает, но его предательски тянет вниз и вообще к земле привязанный
origamerpro
UNец
 
Сообщения: 16
Зарегистрирован: 09 дек 2010, 10:39

Re: Свободное перемещение камеры и создание объектов

Сообщение origamerpro 17 сен 2011, 22:54

Синтаксис:
  1. var Camera1:Camera;  
  2. var Camera2:Camera; 
  3. function Update () 
  4. if (Input.GetKeyDown(KeyCode.G)) 
  5. {  
  6. camera1.enabled = false;  
  7. camera2.enabled = true;  
  8. else if (Input.GetKeyUp(KeyCode.G)) 
  9. {  
  10. camera1.enabled = true;  
  11. camera2.enabled = false;  
- скажите что не так?

1.Камеры переключаются. причем подскажите как сделать что бы не надо было зажимать кнопку "G" ,что бы менять камеру, а просто 1 раз нажать?
2. При подавлении персонажа. о чем я писал выше в вопросах, получается так:
Синтаксис:
  1. NullReferenceException 
  2. ThirdPersonController.UpdateSmoothedMovementDirection () (at Assets/Standard Assets/Character Controllers/Sources/Scripts/ThirdPersonController.js:129) 
  3. ThirdPersonController.Update () (at Assets/Standard Assets/Character Controllers/Sources/Scripts/ThirdPersonController.js:302) 


и много ошибок с одинаковым текстом:
Синтаксис:
  1. The referenced script on this Behaviour is missing! 
  2. UnityEditor.AssetDatabase:LoadAssetAtPath(String, Type) 
  3. VizioComponentEditor:a() 
  4. VizioComponentEditor:RenderGizmo(Transform, GizmoType) 
  5. UnityEditor.DockArea:OnGUI() 
Последний раз редактировалось origamerpro 18 сен 2011, 12:04, всего редактировалось 6 раз(а).
origamerpro
UNец
 
Сообщения: 16
Зарегистрирован: 09 дек 2010, 10:39

Re: Свободное перемещение камеры и создание объектов(не решено!)

Сообщение nikitenko 18 сен 2011, 07:55

Поищи на форуме тут я уже много тем со 2 вопросом создавал ну вобще вот тебе скрипт)
Синтаксис:
Используется csharp
public GameObject player;
public RaycastHit hit;
void Update () {
                Ray mouseRay = camera.ScreenPointToRay(Input.mousePosition);
                 if (Physics.Raycast(mouseRay, out hit))
                  {
                 if (Input.GetMouseButtonDown(0))
                           {
                              player = Instantiate(player, new Vector3(hit.point.x,hit.point.y,hit.point.z), Quaternion.identity) as GameObject;
                       }
                 }
}
 

В общем смотри добавляешь этот скрипт на камеру. Потом кидаешь перфаб в скрипт в строчку player. И теперь при клике у тебя будет создан объект)
nikitenko
UNIт
 
Сообщения: 50
Зарегистрирован: 17 авг 2011, 23:21

Re: Свободное перемещение камеры и создание объектов(не решено!)

Сообщение origamerpro 18 сен 2011, 08:22

путем долгих мучений подредактировал скрипт. теперь осталась проблема что при нажатии на G камеры окончательно менялись а не зажимать кнопку.
вот новый вариант скрипта:
Скрытый текст:
var camera1:ThirdPersonCamera;
var camera2:Camera;
function Update ()
{
if (Input.GetKeyDown(KeyCode.G))
{
camera1.enabled = false;
camera2.enabled = true;
}
else if (Input.GetKeyUp(KeyCode.G))
{
camera1.enabled = true;
camera2.enabled = false;
}
}


nikitenko спасибо за скрипт... как перейду к след вопросу обязательно поспользуюсь.
Последний раз редактировалось origamerpro 18 сен 2011, 10:04, всего редактировалось 1 раз.
origamerpro
UNец
 
Сообщения: 16
Зарегистрирован: 09 дек 2010, 10:39

Re: Свободное перемещение камеры и создание объектов(не решено!)

Сообщение nikitenko 18 сен 2011, 09:07

попробуй вот так)
Синтаксис:
Используется csharp
public GameObject Cam1;//ThirdPersonCamera
public GameObject Cam2;//камера "режим бога"
public bool camera1;//ThirdPersonCamera
public bool camera2;//камера "режим бога"
void Start(){
camera1 = true;
camera2 = false;
}
void Update(){
if(camera1 == true){
if(Input.GetKey(KeyCode.G)){
camera1 = false;
camera2 = true;
//тут ты назначаешь камеру (этого незнаю)
}
}
if(camera2 == true){
if(Input.GetKey(KeyCode.G)){
camera1 = true;
camera2 = false;
//тут ты назначаешь другую камеру (этого незнаю)
}
}
}
 
nikitenko
UNIт
 
Сообщения: 50
Зарегистрирован: 17 авг 2011, 23:21

Re: Свободное перемещение камеры и создание объектов(не решено!)

Сообщение origamerpro 18 сен 2011, 09:24

Итак решил. заменив keyUP с G на H . вопрос по прежнему открыт. как сделать тот же эффект но с одной клавишей.
origamerpro
UNец
 
Сообщения: 16
Зарегистрирован: 09 дек 2010, 10:39

Re: Свободное перемещение камеры и создание объектов(не решено!)

Сообщение nikitenko 18 сен 2011, 09:29

То что я написал подходит?
nikitenko
UNIт
 
Сообщения: 50
Зарегистрирован: 17 авг 2011, 23:21

Re: Свободное перемещение камеры и создание объектов(не решено!)

Сообщение nikitenko 18 сен 2011, 09:34

Синтаксис:
Используется csharp
public GameObject Cam1;//ThirdPersonCamera
public GameObject Cam2;//камера "режим бога"
public bool camera1;//ThirdPersonCamera
public bool camera2;//камера "режим бога"
void Start(){
camera1 = true;
camera2 = false;
}
void Update(){
if(Input.GetKey(KeyCode.H)){
if(camera1 == true){
camera1 = false;
camera2 = true;
//тут ты назначаешь камеру (этого незнаю)
}
if(camera2 == true){
camera1 = true;
camera2 = false;
//тут ты назначаешь другую камеру (этого незнаю)
}
}
}
nikitenko
UNIт
 
Сообщения: 50
Зарегистрирован: 17 авг 2011, 23:21

Re: Свободное перемещение камеры и создание объектов(не решено!)

Сообщение Zaicheg 18 сен 2011, 09:47

origamerpro, используйте теги форматирования кода [syntax=...]
Тексты ошибок тоже лучше скрывать в pastebin или [code]
И не оставляйте несколько сообщений подряд без веских причин, используйте редактирование первого при необходимости.
Начните с редактирования уже оставленных сообщений.
Предупреждение.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Свободное перемещение камеры и создание объектов(не решено!)

Сообщение origamerpro 18 сен 2011, 10:01

nikitenko писал(а):То что я написал подходит?

не подошло. я практически разобрался с проблемой осталось. только что бы работало без залипания на 1 кнопке... как это сделать не знаю.
origamerpro
UNец
 
Сообщения: 16
Зарегистрирован: 09 дек 2010, 10:39

Re: Свободное перемещение камеры и создание объектов(не решено!)

Сообщение nikitenko 18 сен 2011, 10:07

попробуй сделать input.GetKey а не GetKeyDown
nikitenko
UNIт
 
Сообщения: 50
Зарегистрирован: 17 авг 2011, 23:21

Re: Свободное перемещение камеры и создание объектов(не решено!)

Сообщение waruiyume 18 сен 2011, 11:13

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

public class CamerasManager : MonoBehaviour
{

    public GameObject[] Cameras;
    private int cameraIndex;


    void Awake()
    {
        for (int i = 1; i < Cameras.Length; i++)
        {
            Activator(i,false);
        }
    }

    void Update()
    {
        if(Input.GetKeyDown(KeyCode.C))
        {
            Activator(cameraIndex, false);
            cameraIndex = cameraIndex < Cameras.Length - 1 ? cameraIndex+1 : 0;
            Activator(cameraIndex, true);
        }
    }

    private void Activator(int index, bool condition)
    {
        Cameras[index].SetActiveRecursively(condition);
    }
}

 
Последний раз редактировалось waruiyume 18 сен 2011, 11:55, всего редактировалось 1 раз.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

След.

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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 30