Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > Уроки

Ответ
 
Опции темы
Старый 18.12.2010, 19:22   #16
Crayzi
ПроЭктировщик
 
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений
(для 25 пользователей)
Ответ: Переход с Blitz3D на Unity3D.

1. Возможно ли создавать объекты и присваивать им переменные в ручную?
2. Как будет выглядеть на Юнити простенький блитз код типа:
Graphics3D 640,480 
SetBuffer BackBuffer() 
camera=CreateCamera() 
light=CreateLight() 
RotateEntity light,90,0,0 
cube=CreateCube() 
PositionEntity cube,0,0,5 
While Not KeyDown( 1 ) 
RenderWorld 
Flip 
Wend 
End

Ну или примерно чтото типо этого, но без расставления объектов в ручную.
(Offline)
 
Ответить с цитированием
Старый 18.12.2010, 19:30   #17
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Переход с Blitz3D на Unity3D.

1. Да
2. Все описанное можно создать в редакторе (сцена). Подробнее можно почитать в моем первом уроке.

Кодом C#:
using UnityEngine;

public class 
NewBehaviourScript MonoBehaviour
{


    
void Start()
    {
        
// Graphics3D 640,480 
        
Screen.SetResolution(640480false);

        
// camera=CreateCamera() 
        
Camera myCamera = new GameObject("Camera").AddComponent<Camera>();

        
// light=CreateLight() 
        
Light myLight = new GameObject("Light").AddComponent<Light>();

        
//RotateEntity light,90,0,0 
        
myLight.transform.rotation Quaternion.Euler(9000);

        
//cube=CreateCube() 
        
GameObject cube GameObject.CreatePrimitive(PrimitiveType.Cube);

        
//PositionEntity cube,0,0,5 
        
cube.transform.position = new Vector3(0,0,5);

    }


    
void Update()
    {
        
//While Not KeyDown( 1 ) 
        //RenderWorld 
        //Flip 
        //Wend 
        //End
        
if(Input.GetKeyDown(KeyCode.Escape))
        {
            
Application.Quit();
        }

    }

Повесить такой компонент на пустой объект в сцене.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 5 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
Артем Валерьевич (17.07.2015), cahekp (13.03.2011), Crayzi (18.12.2010), maxturbo (20.12.2010), St_AnGer (19.12.2010)
Старый 18.12.2010, 19:42   #18
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Переход с Blitz3D на Unity3D.

Добавил кодом
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Crayzi (18.12.2010)
Старый 18.12.2010, 19:45   #19
Crayzi
ПроЭктировщик
 
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений
(для 25 пользователей)
Ответ: Переход с Blitz3D на Unity3D.

Сообщение от pax Посмотреть сообщение
1. Да
2. Все описанное можно создать в редакторе (сцена). Подробнее можно почитать в моем первом уроке.

Кодом:
using UnityEngine;

public class 
NewBehaviourScript MonoBehaviour
{


    
void Start()
    {
        
// Graphics3D 640,480 
        
Screen.SetResolution(640480false);

        
// camera=CreateCamera() 
        
Camera myCamera = new GameObject("Camera").AddComponent<Camera>();

        
// light=CreateLight() 
        
Light myLight = new GameObject("Light").AddComponent<Light>();

        
//RotateEntity light,90,0,0 
        
myLight.transform.rotation Quaternion.Euler(9000);

        
//cube=CreateCube() 
        
GameObject cube GameObject.CreatePrimitive(PrimitiveType.Cube);

        
//PositionEntity cube,0,0,5 
        
cube.transform.position = new Vector3(0,0,5);

    }


    
void Update()
    {
        
//While Not KeyDown( 1 ) 
        //RenderWorld 
        //Flip 
        //Wend 
        //End
        
if(Input.GetKeyDown(KeyCode.Escape))
        {
            
Application.Quit();
        }

    }


Премного благодарен, теперь я понял что Юнити не такой уж и монстр, каким мне показался после блитца)))
П.с. А все команды действий над объектами пишутся в таком духе "cube.transform.действие"?
(Offline)
 
Ответить с цитированием
Старый 18.12.2010, 19:57   #20
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Переход с Blitz3D на Unity3D.

Сообщение от Crayzi Посмотреть сообщение
П.с. А все команды действий над объектами пишутся в таком духе "cube.transform.действие"?
Это объектно-ориентированное программирование.
У объекта cube, типа GameObject есть свойство transform типа Transform, которое отвечает за трансформации объекта в 3d. У компонента Transform есть так же свойства отвечающие каждое за свое. Например свойства rotation типа Quaternion отвечает за вращение.

Т.е.
myLight.transform.rotation Quaternion.Euler(9000); 
можно понимать как
[Объект Light].[Свойство transform].[Свойство rotation] = 
   [
Создать новый объект вращения на основе углов Эйлера (Quaternion.Euler(9000)] 
т.е. любой объект имеет свойства и методы. Свойства могут быть другими объектами, которые так же могут иметь свойства и методы и т.д.

Если представить что типы(Type) в Blitz3D это объекты, то ихние поля - это свойства, которые могут иметь как свои свойства, так и методы. В проем как и внутри типа могут быть созданы методы.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
Crayzi (18.12.2010), maxturbo (20.12.2010), pepel (18.12.2010), St_AnGer (19.12.2010)
Старый 18.12.2010, 20:23   #21
Crayzi
ПроЭктировщик
 
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений
(для 25 пользователей)
Ответ: Переход с Blitz3D на Unity3D.

Вопрос, а почему нельзя сразу после создания переменной изменить ее значение(я эксперементировал с тем кодом какой ты перевел с блитца)? У мну компиллер ругается чёто, зато если в "подфункции" менять значение RS то все ок.
public float RS=5;
RS=50;
П.с. Я так понял что "public" означает что я создал глобальную переменную или же это не так? Как создать локальную/глобальную переменную?
(Offline)
 
Ответить с цитированием
Старый 18.12.2010, 20:31   #22
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Переход с Blitz3D на Unity3D.

Это от привычки к тому, что везде можно писать команды. Когда описывается объект - определяются его свойства и методы, а выполняются действия только в методах и конструкторах. Правда на JS можно писать код вне методов, он выполняется на старте (вместо функции Start). В C# этого нельзя сделать. Для этого у каждого компонента имеются функции Awake и Start. Awake выполняется после инициализации компонента, Start - перед первым Update.

Например нужно объекту объявить переменную life и на старте присвоить ей значение:
using UnityEngine;

public class 
ExampleScript MonoBehaviour
{
    public 
float life 0f// можно только проинициализировать
    //life = 100f;  - здесь будет ошибка

    
public void Start()
    {
        
life 100f// тут все OK, т.е. выполнение присвоения выполняется в теле метода Start()
    
}


В данном случае переменная life является полем объекта ExampleScript. Поля отличаются от свойств тем, что свойства при назначении значения и при считывании значения могут выполнять какие-то действия.

Например присвоение свойству rotation нового значения:
myLight.transform.rotation Quaternion.Euler(9000); 
Вызовет внутри объекта transform пересчет матрицы трансформаций, на основе которой объект будет визуализироваться, т.к. rotation - это свойство.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
Crayzi (18.12.2010), pepel (18.12.2010)
Старый 18.12.2010, 20:44   #23
pepel
Мастер
 
Аватар для pepel
 
Регистрация: 23.09.2009
Адрес: ленобласть
Сообщений: 1,189
Написано 447 полезных сообщений
(для 2,526 пользователей)
Ответ: Переход с Blitz3D на Unity3D.

pax а ооп везде одинаковое? нанпример название свойств и т.д.
если например взять с++ и какойнить двиг к нему
(Offline)
 
Ответить с цитированием
Старый 18.12.2010, 20:47   #24
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Переход с Blitz3D на Unity3D.

Свойств на С++ нет(есть на CLR - C++.Net но я практически на нем не программировал). С точки зрения С++ это две функции. Например свойство rotation на С++ было бы записано двумя функциями
void set_rotation(Quaternion newRotation) 
{
  выполняемое действие
}
и
Quaternion get_rotation()
{
  выполняемое действие
  return значение;
}
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pepel (18.12.2010)
Старый 18.12.2010, 20:51   #25
pepel
Мастер
 
Аватар для pepel
 
Регистрация: 23.09.2009
Адрес: ленобласть
Сообщений: 1,189
Написано 447 полезных сообщений
(для 2,526 пользователей)
Ответ: Переход с Blitz3D на Unity3D.

дауж после блитца неудобно былобы привыкать наверно)) на с# еще куда нишло..
(Offline)
 
Ответить с цитированием
Старый 18.12.2010, 20:52   #26
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Переход с Blitz3D на Unity3D.

У каждого языка свои задачи. У С++ свои преимущества, у С# свои.

В unity можно использовать функции из библиотек, написанных на С++ импортировав их в C#. Но тогда проект будет платформозависимым.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 18.12.2010, 21:05   #27
pepel
Мастер
 
Аватар для pepel
 
Регистрация: 23.09.2009
Адрес: ленобласть
Сообщений: 1,189
Написано 447 полезных сообщений
(для 2,526 пользователей)
Ответ: Переход с Blitz3D на Unity3D.

кстати юнити всегда выдает заставка с выбором разрешения(если с компа запускать) . есть функция выключения ее. или она по умолчанию компилится?
(Offline)
 
Ответить с цитированием
Старый 18.12.2010, 21:09   #28
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Переход с Blitz3D на Unity3D.

Можно отключчть в настройках:



__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
Артем Валерьевич (17.07.2015), maxturbo (20.12.2010), pepel (18.12.2010)
Старый 18.12.2010, 21:15   #29
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Переход с Blitz3D на Unity3D.

Сообщение от pepel Посмотреть сообщение
на с# еще куда нишло..
На самом деле на C# не намного проще. Объявление свойства выглядит так:
public Quaternion rotation
{
   
get
   
{
     
// действие
     
return значение;
   }
   
set
   
{
     
//действие с входным значением value
   
}

Потом можно им пользоваться как полем.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 18.12.2010, 21:18   #30
pepel
Мастер
 
Аватар для pepel
 
Регистрация: 23.09.2009
Адрес: ленобласть
Сообщений: 1,189
Написано 447 полезных сообщений
(для 2,526 пользователей)
Ответ: Переход с Blitz3D на Unity3D.

ок спасибо. пока конешь не собираюсь переходить, но когданибудь это может случится)

просто столько движков всяких разных, и языков, что боишься куда либо сунуться, т.к. если осваивать, то основательно
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 12:05.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com