forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Общие вопросы (http://forum.boolean.name/forumdisplay.php?f=166)
-   -   Вопросы от новичка (http://forum.boolean.name/showthread.php?t=15809)

pax 16.12.2012 21:42

Ответ: Вопросы от новичка
 
Ограничение по углу склона, на который может подняться контроллер. При значении 90 контроллер не поднимается на стены потому что капсула по форме.

Morganolla 16.12.2012 22:52

Ответ: Вопросы от новичка
 
начал скрипеть и сразу миллион вопросов:
- как называть классы в скрипах на c#? Ведь в скрипах на яве нет названий классов. И эти названия где потом будут встречаться?
- что происходит, когда скрип впихиваешь в объект в окне иерархий? Как он подцепляет этот объект... или наоборот объект подцепляет этот скрип...?
- а если впихнуть два скрипа с переопреленными разными Update() то что получится?

Извините, но мне классическому программисту на С++ очень трудно понять эту магическую технологию... :)

pax 16.12.2012 23:16

Ответ: Вопросы от новичка
 
1. В яве название класса соответствует названию файла скрипта (только класс создается автоматом), в C# надо так же. Название класса - название компонента, добавляемого объектам.
2. Создается экземпляр класса компонента, GO цепляет компонент.
3. Оба будут работать. Считай что это два разных поведения для объекта, для каждого вызовется Update.

WISHMASTER35 17.12.2012 01:13

Ответ: Вопросы от новичка
 
Я свой CharacterController хочу сделать. Вот пытаюсь изучить как работает он в Unity.
Я так понимаю, если склон менее крутой, чем это slopeLimit, то капсула выталкивается ровно вверх. Благодаря этому Character и не скатывается с наклонной поверхности.
Хотя на деле черт знает как оно работает.

RegIon 17.12.2012 10:18

Ответ: Вопросы от новичка
 
Капсуль вообще там кинематический, он по сути всегда стоит колом, двигается Translate'ом, он просто глядит поверхность, если угол >slopeLimit,то он ничего не делает, иначе пихает его по рассчитанному вектору с учетом склона (смотри сорцы)

WISHMASTER35 17.12.2012 19:25

Ответ: Вопросы от новичка
 
Капсула там конечно отличается от обычной. Во первых не скользит с наклонных поверхностей.
А что за сорцы?
Все же интересный этот CharacterController. Он не соскользит даже с отвесной стены. Но при этом на гору круче, чем slopeLemit резко перестает заходить. Интересно как такое реализовать.

Okay 17.12.2012 23:59

Ответ: Вопросы от новичка
 
допустим одно сообщество решило создать одну игру по аниме( не мое ). в игре будет донат, считается это коммерцией? так как они на бесплатной лицензии, то что им грозит. я им говорил, что не стоит, а они меня не слушают...

WISHMASTER35 18.12.2012 00:44

Ответ: Вопросы от новичка
 
Так на инди лицензии можно делать коммерческие проекты.

Okay 18.12.2012 19:57

Ответ: Вопросы от новичка
 
если вращать фигуру через transform.rotate , то сбивается управление. как сделать так, чтобы с управлением было все нормально?

pax 18.12.2012 20:58

Ответ: Вопросы от новичка
 
Что значит "сбивается управление"?

Okay 18.12.2012 21:08

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от pax (Сообщение 246893)
Что значит "сбивается управление"?

значит, что нажимаю W и сфера движется по другому

pax 18.12.2012 21:19

Ответ: Вопросы от новичка
 
Ты вероятно смещаешь объект не в той системе координат.

ЗЫЖ привел бы код чтобы было меньше вопросов.

RegIon 18.12.2012 21:28

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от WISHMASTER35 (Сообщение 246761)
Капсула там конечно отличается от обычной. Во первых не скользит с наклонных поверхностей.
А что за сорцы?
Все же интересный этот CharacterController. Он не соскользит даже с отвесной стены. Но при этом на гору круче, чем slopeLemit резко перестает заходить. Интересно как такое реализовать.

Исходный код, это тупо скрипт

WISHMASTER35 19.12.2012 01:39

Ответ: Вопросы от новичка
 
Костян, я не пойму. Где-то можно найти исходник PhysX CharacterController?

RegIon 19.12.2012 08:59

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от WISHMASTER35 (Сообщение 246923)
Костян, я не пойму. Где-то можно найти исходник PhysX CharacterController?

наврал чуток, есть только скрипты Character motor открыты

Morganolla 19.12.2012 19:02

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от pax (Сообщение 246897)
Ты вероятно смещаешь объект не в той системе координат.

ЗЫЖ привел бы код чтобы было меньше вопросов.

У меня такой же вопрос - оператор transform.Translate(1,0,0); сдвигает по Х только пока тело не повернуто! Когда повернуто он сдвигает по углу поворота!
А как сдвинуть повернутое тело в координатах экрана?

Morganolla 19.12.2012 19:40

Ответ: Вопросы от новичка
 
Вообще у меня глобальный вопрос - посоветуйте как можно нормально изучить этот Юнити-гавьюнити... Книгу какую то или руководство или видео уроки... Чтобы при каждом затыке не мучать вас. Чтобы прочитал и знаешь где чего самому найти... Вот допустим С++ - изучил скажем Пратта от корки до корки, и ты уже можешь спокойно ковыряться в движках на С++ с открытыми сорсами. А здесь все зарыто и спрятано гуй знает где... Ужос один!

Okay 19.12.2012 20:16

Ответ: Вопросы от новичка
 

если шариком запрыгнуть на объект, то куб начинает дрожать (куб двигается вверх-вниз)

pax 19.12.2012 20:42

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от Morganolla (Сообщение 247010)
посоветуйте как можно нормально изучить этот Юнити-гавьюнити...

Может тогда лучше не изучать Unity совсем?

А по существу есть нормальная справка, точнее 3 штуки:
http://docs.unity3d.com/Documentation/Manual/index.html
http://docs.unity3d.com/Documentatio...nts/index.html
http://docs.unity3d.com/Documentatio...nce/index.html

и ответ на вопрос по транслейту кроется в справке:
http://docs.unity3d.com/Documentatio...Translate.html
PHP код:

function Translate (translation Vector3relativeTo Space Space.Self) : void 

Второй параметр перечисление, обозначает пространство, в котором выполняется транслейт. По умолчанию Space.Self, т.е. локальные координаты. Если передать в функцию Space.World, то транслейт будет в глобальных координатах.

Цитата:

Сообщение от Okay (Сообщение 247027)
если шариком запрыгнуть на объект, то куб начинает дрожать (куб двигается вверх-вниз)

тут наверное опущено, что платформа движется?

Okay 19.12.2012 20:51

Ответ: Вопросы от новичка
 
Цитата:

тут наверное опущено, что платформа движется?
я так-то написал..
Цитата:

Сообщение от Okay
если шариком запрыгнуть на объект, то куб начинает дрожать (куб двигается вверх-вниз)

Morganolla 19.12.2012 22:14

Ответ: Вопросы от новичка
 
Цитата:

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

Morganolla 19.12.2012 22:16

Ответ: Вопросы от новичка
 
Код:

function Translate (translation : Vector3, relativeTo : Space = Space.Self) : void
А где можно эти сорсы посмотреть?

Okay 20.12.2012 00:31

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от Morganolla (Сообщение 247054)
видимо он дрожит от страха, так как боится шарика. Надо дать ему сто грамм для храбрости.

поставил rigidbody - лучше не стало

pax 20.12.2012 07:47

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от Morganolla (Сообщение 247055)
Код:

function Translate (translation : Vector3, relativeTo : Space = Space.Self) : void
А где можно эти сорсы посмотреть?

Я же привел ссылку на документацию, мало?

Цитата:

Сообщение от Okay (Сообщение 247069)
поставил rigidbody - лучше не стало

Посмотри в примерах платформеров, для платформ пишут специальные скрипты, физикой это дело двигать просто так без проблем не получится.

Okay 20.12.2012 22:54

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от pax (Сообщение 247083)
Я же привел ссылку на документацию, мало?



Посмотри в примерах платформеров, для платформ пишут специальные скрипты, физикой это дело двигать просто так без проблем не получится.

Можете поделиться информацией об этом случае ?

pax 20.12.2012 23:04

Ответ: Вопросы от новичка
 
Вот тут есть пример скрипта http://answers.unity3d.com/questions...s-off-mov.html

WISHMASTER35 20.12.2012 23:53

Ответ: Вопросы от новичка
 
Вот жаль, что в Unity нельзя подключать другие проекты как библиотеки(:

pax 21.12.2012 02:02

Ответ: Вопросы от новичка
 
Эм, скомпилируй в студии код в dll да подключай. А ресурсы - есть система пакаджей. Знаю контору, которая для Unity свою систему пакаджей писала.

Morganolla 21.12.2012 12:02

Ответ: Вопросы от новичка
 
Такой вопрос: скомпилил демку для Мак, а там некоторые клавиши (буквы) не работают... У мака , что , другая кодировка буков?

SBJoker 21.12.2012 12:30

Ответ: Вопросы от новичка
 
Ясное дело другая

Morganolla 21.12.2012 12:52

Ответ: Вопросы от новичка
 
А что , Юнити автоматически не меняет кодировку клавы при компиляции для Мак? Например в ф-ии Input.GetKey("z") ? Разве при компиляции под Мак он не вставит кодировку z для Мака?
И каков выход? Компилить тока на Маке?
Или может вы подскажете таблицу соответствия? :)

pax 21.12.2012 13:10

Ответ: Вопросы от новичка
 
У гет кей есть втрая перегрузка принимающая энам KeyCode, с ним так же?
http://docs.unity3d.com/Documentatio...ut.GetKey.html
http://docs.unity3d.com/Documentatio...e/KeyCode.html

Morganolla 21.12.2012 18:35

Ответ: Вопросы от новичка
 
Созрел вопросик - а не сделать ли главный скрип для сцены, чтобы он руководил всеми другими объектами на сцене и ихними скрипами. Кто и как это делает и куда прикрепляют этот главный скрип?

RegIon 21.12.2012 20:07

Ответ: Вопросы от новичка
 
На любой GameObject в сцене, главное в нем создать :

public GameObject lol;
А обращаться к скриптам по lol.GetComponent<Script>().переменная/функция(публичные)

Okay 21.12.2012 23:10

Ответ: Вопросы от новичка
 
зеленые не соприкасаются с красным кругом при вращении, а проходят сквозь него. Что это может быть?

RegIon 21.12.2012 23:23

Ответ: Вопросы от новичка
 
: не ригитбоди оба или один
нету где-то колайдера
где-то it's trigger=true
вращение задается у трансформа, а не rigidbody.AddTorque

Okay 21.12.2012 23:56

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от Костян (Сообщение 247244)
: не ригитбоди оба или один
нету где-то колайдера
где-то it's trigger=true
вращение задается у трансформа, а не rigidbody.AddTorque

вращение задается через трансформ. коллайдеры стоят. пробовал ставить и туда и туда ригидбоди - ноль реакции. истриггеры выключены везде

pax 22.12.2012 09:15

Ответ: Вопросы от новичка
 
вращать колайдеры без ригидбоди - большая нагрузка на физику. Если вращать через трансформ, то обязательно RigidBody и флаг IsKinematic. Если коллайдер - MeshCollider, то работать не будет, т.к. не поддержываются не выпуклые колайдеры. В данном случае надо делать составной колайдер.

Но имхо делать надо ригидбоди, сажать на джоинт в центре, давать большую массу и вращать физикой.

Morganolla 22.12.2012 13:05

Ответ: Вопросы от новичка
 
Хочу сделать общие классы и использовать их во многих скриптах прикрепленных к объектам. Как это лучше реализовать? В С++ просто инклюдил хедеры (#include "XXX.h"), а здесь?

RegIon 22.12.2012 13:17

Ответ: Вопросы от новичка
 
Как бы http://msdn.microsoft.com/ru-ru/library/sf0df423.aspx
Ну или создай глобальный класс :
Код:

public static class LOLOLO{

}

и будет тебе счастье

Okay 23.12.2012 20:30

Ответ: Вопросы от новичка
 
не воспроизводится анимация. скелет имеется..

Okay 23.12.2012 20:31

Ответ: Вопросы от новичка
 
в юнити 3.5.5 воспроизводилась. перешел на юнити 4 появилась вот эта борода

Fatalix3d 23.12.2012 20:56

Ответ: Вопросы от новичка
 
Вложений: 1
В инспекторе выбери анимацию и поставь в закладке rig, animation type=> legacy.

WISHMASTER35 23.12.2012 22:37

Ответ: Вопросы от новичка
 
GUI.BeginGroup так задаем область рисования. Причем начало координат смещается.
Можно сделать, чтобы рисовать в этой области можно было координатами от 0 до 1?

RegIon 23.12.2012 23:08

Ответ: Вопросы от новичка
 
http://docs.unity3d.com/Documentatio...eginGroup.html
КАк понятно из справки, то ты тогда рисуешь относительно родителя;координаты Rect BeginGroup - начало координат чаилдов.

конечно можно:
Код:

var groupRect = new Rect(,,,,);
var x,y,w,h;
var rect =new Rect(x*groupRect.x,y*groupRect.y,w*groupRect.width,h*groupRect.height);

/
когда справку читать научатся

WISHMASTER35 23.12.2012 23:14

Ответ: Вопросы от новичка
 
Костян, вообще в справки ничего не вижу про родительские координаты. Да и причем они тут. Вообще ничего не понял из твоего поста.
Мне вообщем-то надо масштаб увеличить, чтобы 1 == размер группы.

RegIon 24.12.2012 17:47

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от WISHMASTER35 (Сообщение 247370)
Костян, вообще в справки ничего не вижу про родительские координаты. Да и причем они тут. Вообще ничего не понял из твоего поста.
Мне вообщем-то надо масштаб увеличить, чтобы 1 == размер группы.

Код:

When you begin a group, the coordinate system for GUI controls are set  so (0,0) is the top-left corner of the group. All controls are clipped  to the group. Groups can be nested - if they are, children are clipped to their  parents.

WISHMASTER35 24.12.2012 19:48

Ответ: Вопросы от новичка
 
Костян, ну я писал, что GUI.BeginGroup смещает начало координат. И что?
Я спрашивал как сделать, чтобы рисовать можно было координатами от 0 до 1.

cahekp 25.12.2012 14:17

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от WISHMASTER35 (Сообщение 247467)
Костян, ну я писал, что GUI.BeginGroup смещает начало координат. И что?
Я спрашивал как сделать, чтобы рисовать можно было координатами от 0 до 1.

Стандартными средствами - никак. Да это и не нужно. У тебя есть группа, ты знаешь ее размеры. Всё, этого достаточно.
Пример:
PHP код:

Rect groupRect = new Rect(1010100100);
GUI.BeginGroup(groupRect); 

И вот, захотел ты нарисовать картинку в координате (0.5, 0.5).. Пишешь:
PHP код:

GUI.DrawTexture(new Rect(0.5F groupRect.width0.5F groupRect.height4020), someTexture); 

Вот и всё. )

RegIon 25.12.2012 17:43

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от cahekp (Сообщение 247515)
Стандартными средствами - никак. Да это и не нужно. У тебя есть группа, ты знаешь ее размеры. Всё, этого достаточно.
Пример:
PHP код:

Rect groupRect = new Rect(1010100100);
GUI.BeginGroup(groupRect); 

И вот, захотел ты нарисовать картинку в координате (0.5, 0.5).. Пишешь:
PHP код:

GUI.DrawTexture(new Rect(0.5F groupRect.width0.5F groupRect.height4020), someTexture); 

Вот и всё. )


WISHMASTER35 25.12.2012 17:47

Ответ: Вопросы от новичка
 
cahekp, как перемножить два числа я и сам знаю. Я хотел свой код упростить.
Я рисуется в инспекторе атлас, а в атласе прямоугольник - спрайт(который задается координатами 0-1). Этот атлас еще можно двигать, масштабировать. Вообщем кода набралось не мало.
Я вот думал может можно изменить масштаб через Handlex.matrix(которая в GUI всегда единичная), но работать с этой матрицей невозможно т.к. набор методов в ней скудный.
Кстати, узнать размер группы похоже тоже нельзя.

pax 25.12.2012 18:01

Ответ: Вопросы от новичка
 
Размер группы groupRect из примера в 882 посте. Чтобы упростить - напиши свой класс и в нем сделай такие же функции, только принимающие единичные ректы. В чем проблема то (единственное лишний параметр - рект области)? И для GUI надо менять матрицу GUI.matrix, а не матрицу хэнлров.

WISHMASTER35 25.12.2012 19:12

Ответ: Вопросы от новичка
 
Цитата:

Размер группы groupRect из примера в 882 посте.
Там только задается размер области. Из GUI этот размер не достать.
Про GUI.matrix забыл)

pax 25.12.2012 20:23

Ответ: Вопросы от новичка
 
Зачем его доставать если ты его знаешь?

WISHMASTER35 25.12.2012 21:33

Ответ: Вопросы от новичка
 
Чтобы не передавать этот размер как параметр во всякие методы.

Okay 26.12.2012 23:28

Ответ: Вопросы от новичка
 
У меня есть плеер. В прыжке включается анимация jump, но когда плеер опускается на поверхность, то какое то время анимация прыжка все равно проигрывается. Как сделать проверку на столкновение плеера с поверхностью?

WISHMASTER35 27.12.2012 02:42

Ответ: Вопросы от новичка
 
В CharacterMotor есть такой метод.

Morganolla 27.12.2012 20:15

Ответ: Вопросы от новичка
 
Что-то у меня очень странный глюк проявился! Переношу на сцену спрайт из Прожекта ( где асеты все) и одеваю на него соответствующую текстуру. И в это же время на другой ( старой сцене ) на одном из спрайтов тоже меняется текстура ( с его старой на эту новую, которую я одеваю ). Все остальное не меняется!!! Какая может быть взаимосвязь между этими спрайтами??? Почему они влияют друг на друга??? Я пупею... :)

pax 27.12.2012 20:25

Ответ: Вопросы от новичка
 
ты меняешь текстуру у общего материала

Morganolla 27.12.2012 20:58

Ответ: Вопросы от новичка
 
Спасибо, рах. За твою оперативность и точность! С этим Юнити век живи- век учись :)))

Okay 27.12.2012 22:48

Ответ: Вопросы от новичка
 
можно ли как-то убрать окно, которое выскакивает при запуске приложения? Чтобы сразу приложение запускалось =)

cahekp 27.12.2012 23:02

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от Okay (Сообщение 247750)
можно ли как-то убрать окно, которое выскакивает при запуске приложения? Чтобы сразу приложение запускалось =)

Заходим в меню Edit -> Project Settings -> Player,
далее смотрим вкладку "Settings for PC and Mac Standalone",
а в ней тычем на "Display Resolution Dialog". Вместо "Enabled" ставим "Disabled".

pax 27.12.2012 23:03

Ответ: Вопросы от новичка
 
В настройках плеера есть опция
http://docs.unity3d.com/Documentatio...ettings40.html
DisplayResolution Dialog

Morganolla 28.12.2012 14:32

Ответ: Вопросы от новичка
 
Еще какой-то непонятный глюк:

ИЗВИНИТЕ Я ПЕРЕФОРМУЛИРУЮ ВОПРОС - РЕЧЬ ИДЕТ О МАССИВАХ !

К объекту прикреплен скрип где есть массив ссылок на другие объекты:
Код:

public class sScore : MonoBehaviour {

        public GameObject [] Ob;
        Transform [] Tr;

        // Use this for initialization


        void Start ()
        {
              for(int i=0;i<10;i++)  Tr[i]=Ob[i].GetComponent<Transform>();
       
        }

Соответственно в редакторе через инспектор я прикрепляю эти ссылки к другим объектам в окне Иерархий. Но при запуске сцены неизменно выдается ошибка нулевой ссылки -

NullReferenceException: Object reference not set to an instance of an object
(wrapper stelemref) object:stelemref (object,intptr,object)
sScore.Start () (at Assets/aScripts/sScore.cs:22)

Ранее я такой прием уже использовал несколько раз в частности к текстурам, а тут вдруг затык такой.. В чем может быть дело?


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot