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 05.01.2013 12:05

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

Сообщение от WISHMASTER35 (Сообщение 248336)
Делаю игру три в ряд. Хочу сделать более интересное падение диамантов. Т.е. чтобы при падении у нижнего диаманта скорость была выше, чем у верхних и он отрывался от верхних.

Начни перемещать каждого верхнего на долю секунды позже. Получится что-то типа обвала.

RegIon 05.01.2013 14:50

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

Сообщение от Okay (Сообщение 248352)
Не пойму вот как сделать, чтобы каждый объект тянул к себе персонажа. уже много чего перепробовал, получалось только, что персонаж спиной к объекту тянется

чет типо :
Код:

gameObject box;
var vect=(tansform.position-box.transform.position)*100000f;
rigidbody.addForce(vect);


WISHMASTER35 05.01.2013 18:09

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

Начни перемещать каждого верхнего на долю секунды позже. Получится что-то типа обвала.
А еще лучше каждому следующему падающему диаманту задавать меньшую начальную скорость.
Код:

                for(int x=0; x<Map.width; x++) {
                        float startSpeed = 4;
                        for(int y=0; y<Map.height; y++) {
                                Fruit fruit = map.Get(x, y);
                                if(fruit != null && fruit.IsCanFall()) {
                                        float floorY = GetFloorY(x, fruit.position.y);
                                        bool fall = fruit.Fall(floorY, startSpeed);
                                        if(fall) startSpeed *= 0.5f;
                                }
                        }
                }

Вот так http://dl.dropbox.com/u/55489242/Dia...WebPlayer.html

pie 06.01.2013 15:17

Ответ: Вопросы от новичка
 
Как перенести статистику которая отображается в редакторе (FPS, количество вертекстов, количество текстур и их размер и тд.) на экран в билде?

is.SarCasm 06.01.2013 18:17

Ответ: Вопросы от новичка
 
Почему Time.TimeScale не влияет на анимацию? (использую Меканим)

pax 06.01.2013 18:22

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

Сообщение от pie (Сообщение 248483)
Как перенести статистику которая отображается в редакторе (FPS, количество вертекстов, количество текстур и их размер и тд.) на экран в билде?

Никак, только FPS можешь посчитать.

pie 06.01.2013 19:03

Ответ: Вопросы от новичка
 
А я его правильно подсчитал (увидел на каком то форуме)?
Код:

var fps = 1.0f / Time.deltaTime;
И еще один вопрос. В скрипте я использовал UnityEditor;
При компиляции проекта пишет ошибку: The type or namespace name `UnityEditor' could not be found. Are you missing a using directive or an assembly reference?
Но все работает в редакторе.

pax 06.01.2013 19:32

Ответ: Вопросы от новичка
 
UnityEditor можно использовать, если поместить скрипт в папку Editor. Ну и собственно это скрипт только для редактора.

По поводу FPS - если ты не меняешь timescale, то правильно.

WISHMASTER35 07.01.2013 02:39

Ответ: Вопросы от новичка
 
Как в окнах иерархии сцены и проекта рисуются список? Можно такой нарисовать?
Сам список рисуется как лейбы. Но вот как синюю полоску но всю длину окна нарисовать не пойму. Т.е. не пойму как узнать размер текущей области.

pax 07.01.2013 02:53

Ответ: Вопросы от новичка
 
Имхо элементарно
PHP код:

GUILayout.BeginHorizontal(MyBlueStyle);
GUILayout.Label("MyLabelOnBlueBackground");
GUILayout.EndHorizontal(); 


WISHMASTER35 07.01.2013 03:03

Ответ: Вопросы от новичка
 
Тогда нужно будет текстурой фон задавать. Не хочу возится с текстурой.
Неужели нету способа узнать размер доступной области?

pax 07.01.2013 03:16

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

WISHMASTER35 07.01.2013 03:19

Ответ: Вопросы от новичка
 
Нарисовать прямоугольник можно так
Код:

        private static void FillRect(Rect rect, Color color) {
                if(Event.current.type != EventType.Repaint) return;
               
                Vector3 a = new Vector3(rect.xMin, rect.yMin, 0);
                Vector3 b = new Vector3(rect.xMax, rect.yMin, 0);
                Vector3 c = new Vector3(rect.xMax, rect.yMax, 0);
                Vector3 d = new Vector3(rect.xMin, rect.yMax, 0);
                Vector3[] verts = new Vector3[] {
                        a, b, c, d
                };
               
                Handles.DrawSolidRectangleWithOutline( verts, color, new Color(0,0,0,0));
        }

Хотя этот способ почему-то сейчас впервые странно себя повел. Задаю белый цвет, а он зеленым рисует. Остальные цвета вообще черным рисует.

Написал такую фигню
Код:

                        if( GUILayout.Button(name, GUI.skin.label, GUILayout.ExpandWidth(true)) ) {
                                if(selected != i) GUIUtility.keyboardControl = 0;
                                selected = i;
                        }
                        if(i == selected) {
                                Rect rect = GUILayoutUtility.GetLastRect();
                                FillRect(rect, Color.white);
                        }

Но прямоугольник рисуется после текста и закрашивает его(

Если все же свой стиль создавать для этого, то есть пару вопросов.
Нужно новый GUISkin создавать? В новом скине можно будет изменить только дефолтные стили(label, box, button и др) или можно свои добавить? Как потом в Editor этот скин загрузить?

pax 07.01.2013 03:30

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

WISHMASTER35 07.01.2013 03:35

Ответ: Вопросы от новичка
 
В твоем примере все равно надо создавать стиль. Я даже не знаю как в Editor загрузить свой стиль.


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

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