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)

pie 02.10.2012 20:34

Ответ: Вопросы от новичка
 
Вложений: 1
Кто может сделать взрыв мины примерно (относительно) как на картинке. С Detonator'ом не могу разобраться. Частицы не поддаются.

Okay 02.10.2012 23:51

Ответ: Вопросы от новичка
 
Есть персонаж. В unity есть встроенная анимация ходьбы и так далее?
Скелет встроен через 3ds max.

pax 03.10.2012 06:29

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

Сообщение от Okay (Сообщение 239587)
В unity есть встроенная анимация ходьбы и так далее?

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

RegIon 03.10.2012 21:16

Ответ: Вопросы от новичка
 
Я бы сделал взрывание мин побыстрей и с места нажатия, а не радонмной мины

Lowlet 06.10.2012 16:39

Ответ: Вопросы от новичка
 
Ребяты, помогите.Как уменьшить разрешение _GrabTexture?

pax 06.10.2012 16:43

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

WISHMASTER35 08.10.2012 23:13

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

pax 08.10.2012 23:34

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

Сообщение от WISHMASTER35 (Сообщение 239911)
А с помощью кнопок нельзя поставить юнити на паузу?

А редакторе есть кнопка паузы там вверху по середине ;)

WISHMASTER35 08.10.2012 23:43

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

Wegox 08.10.2012 23:54

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

Сообщение от WISHMASTER35 (Сообщение 239914)
pax, я имел ввиду кнопку на клавиатуру. Пока до той кнопки дотянешься мышкой, то уже поздно будет.

Edit?
ctrl+shift+p;)

Код:

void UpdateKey()
{
    if(Input.GetKeyDown(Keycode.Tab))
    {
          Debug.Break();
    }
}


pax 08.10.2012 23:58

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

Сообщение от WISHMASTER35 (Сообщение 239914)
pax, я имел ввиду кнопку на клавиатуру. Пока до той кнопки дотянешься мышкой, то уже поздно будет.

Какой вопрос, такой и ответ ;) Учись задавать вопросы так, чтобы тебя не переспрашивали.

Okay 09.10.2012 01:15

Ответ: Вопросы от новичка
 
В unity возможно захват звука с микрофона. Как в CS или APB

Wegox 09.10.2012 01:24

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

Сообщение от Okay (Сообщение 239919)
В unity возможно захват звука с микрофона. Как в CS или APB

Класс Microphone о этом классе, смотри Scripting Reference.

WISHMASTER35 09.10.2012 15:28

Ответ: Вопросы от новичка
 
ctrl+shift+p не работает при нажатой мыши))
Вот чем мне реально нравится java script так это тем что не надо писать StartCoroutine)) В C# приходится учитывать то, что можно забыть о StartCoroutine и инкапсулировать эти корутины. Ну это так мысли в слух))

Мне вот интересно, если в сцене много пуль как сдесь

То на каждую пулю коллайдер-триггер с кинематическим RigidBody вешать? Или как-то быстрее можно сделать?

Wegox 09.10.2012 16:11

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

Сообщение от WISHMASTER35 (Сообщение 239934)
ctrl+shift+p не работает при нажатой мыши))

Используй Debug.Break(); на таймер поставь или на событие какое, ну как там в юнити я не знаю:-D

То на каждую пулю коллайдер-триггер с кинематическим RigidBody вешать? Или как-то быстрее можно сделать?
Я бы тут расширяющийся-цилиндр использовал и фейк-спрайты а на картинки, вообще нарисованные пули:)

WISHMASTER35 09.10.2012 18:05

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

WISHMASTER35 13.10.2012 01:14

Ответ: Вопросы от новичка
 
Почему веб-плеер просит все время обновления? По крайней мере в хроме.
Вот например если попытаться запустить мою демку https://dl.dropbox.com/u/55489242/Sh...WebPlayer.html

Okay 13.10.2012 02:06

Ответ: Вопросы от новичка
 
Не пойму. Искал в хелпе "ввод текста в GUI". Не нашел.
Плохо искал или такого нету?

WISHMASTER35 13.10.2012 02:20

Ответ: Вопросы от новичка
 
А TextField и TextArea чем не подходит?

Okay 13.10.2012 04:07

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

Сообщение от WISHMASTER35 (Сообщение 240194)
А TextField и TextArea чем не подходит?

Спасибо большое. А то сидел тупил

WISHMASTER35 13.10.2012 17:43

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

Сообщение от WISHMASTER35 (Сообщение 240189)
Почему веб-плеер просит все время обновления? По крайней мере в хроме.
Вот например если попытаться запустить мою демку https://dl.dropbox.com/u/55489242/Sh...WebPlayer.html

Надо было https убрать.

Думаю как сделать несложный визуальный редактор gui.
Есть какой-то элемент (кнопка или др), которому задано смещение(влево, вправо, по центру).
И должна быть панель, которая отрисовывает эти элементы. Вот как сделать, чтобы эта панель смещала эти элементы туда, куда они хотят?
Сейчас написал так
Код:

GUILayout.BeginHorizontal();
                foreach(Transform child in transform) {
                        GUIButton button = child.GetComponent<GUIButton>();
                        if(button.anchor == Anchor.Center || button.anchor == Anchor.Right) GUILayout.FlexibleSpace();
                        button.DrawGUI();
                        if(button.anchor == Anchor.Center || button.anchor == Anchor.Left) GUILayout.FlexibleSpace();
                }
GUILayout.EndHorizontal();

Вот только, если первый элемент не смещен вправо, то после него будет FlexibleSpace, и следующий элемент слева уже никак не будет.
Вот как тут можно правильно сделать?

pax 13.10.2012 19:38

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

Код:

foreach(Transform child in transform) {
    GUILayout.BeginArea(new Rect(0,0,Screen.width, Screen.height));

                        GUIButton button = child.GetComponent<GUIButton>();
                        if(button.anchor == Anchor.Center || button.anchor == Anchor.Right) GUILayout.FlexibleSpace();
                        button.DrawGUI();
                        if(button.anchor == Anchor.Center || button.anchor == Anchor.Left) GUILayout.FlexibleSpace();
               
    GUILayout.EndArea();
}


WISHMASTER35 13.10.2012 19:57

Ответ: Вопросы от новичка
 
Думаю тогда элементы наложатся друг на друга.

pax 13.10.2012 20:22

Ответ: Вопросы от новичка
 
А как ты представляешь смещение? Нарисовал бы...

WISHMASTER35 13.10.2012 20:56

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

А ты gui пишешь полностью в скриптах? Не делал таких визуальных редакторов? Я как-то привык, что gui всегда визуально делается))

Okay 13.10.2012 21:43

Ответ: Вопросы от новичка
 
В blitz3d есть maskimage. Как это сделать в unity3d?

pax 13.10.2012 22:27

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

Сообщение от WISHMASTER35 (Сообщение 240233)
А ты gui пишешь полностью в скриптах? Не делал таких визуальных редакторов? Я как-то привык, что gui всегда визуально делается))

Всегда скрипты, только хардкор)

Цитата:

Сообщение от Okay (Сообщение 240237)
В blitz3d есть maskimage. Как это сделать в unity3d?

шейдер написать)
Например можно использовать шейдеры из группы Transparent/Cutout

Okay 13.10.2012 22:35

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

шейдер написать)
Например можно использовать шейдеры из группы Transparent/Cutout
Сильно сказано

pax 13.10.2012 22:38

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

Сообщение от Okay (Сообщение 240245)
Сильно сказано

Сложно использовать готовые шейдеры?
Там просто по альфе отрезается.

Okay 13.10.2012 22:53

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

Сообщение от pax (Сообщение 240247)
Сложно использовать готовые шейдеры?
Там просто по альфе отрезается.

Спасибо за ответ. Лучше уж в фотошопе сделать прозрачным

Okay 15.10.2012 03:29

Ответ: Вопросы от новичка
 
Вопрос по анимации. Анимация бега. Как сделать, чтобы воспроизводились кадры анимации только тогда, когда я жму кнопку допустим W. При сбрасывании кнопки, чтобы анимка сбивалась

pax 15.10.2012 07:32

Ответ: Вопросы от новичка
 
http://docs.unity3d.com/Documentatio...CrossFade.html
Там второй пример не подходит?

St_AnGer 22.10.2012 13:40

Ответ: Вопросы от новичка
 
Есть модель формата 3ds, не монолитная (состоит из нескольких объектов типа куб/сфера/цилиндр). Если кидать модель в проект из редактора - то всё впорядке, все части показываются. Если же прописываю меш в скрипте - то показывается всего один цилиндр из всех частей модели. Скрипт загрузки меша такой:
PHP код:

Mesh bodyM = (Mesh)Resources.Load("Models/Player/Korpus1"typeof(Mesh));
if (
bodyM != nullbody.GetComponent<MeshFilter>().mesh bodyM

body - GameObject, на который и вешаю меш. Меш нужно повесить именно из скрипта. В unity новичок, в чём проблема не пойму. Эту тему перерыл уже всю, ответа не нашёл.

pax 22.10.2012 13:58

Ответ: Вопросы от новичка
 
Если на объекте 3 материала, то рендереру надо три материала назначить.

PHP код:

renderer.materials = new Material[]{mat1,mat2,mat3}; 


St_AnGer 22.10.2012 14:48

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

body = (GameObject)Instantiate(main.Korpus1, new Vector3(x0z), Quaternion.EulerRotation(000)); 

апд
Сделал ещё проще - сразу через Instantiate загрузил модель, работает!
PHP код:

body = (GameObject)Instantiate(Resources.Load("Models/Player/Korpus1"), new Vector3(x0z), Quaternion.EulerRotation(000)); 


Lestar 22.10.2012 15:05

Ответ: Вопросы от новичка
 
Можно было и из ресурсов ГО загрузить.

St_AnGer 24.10.2012 20:22

Ответ: Вопросы от новичка
 
Имею два класса(файла скрипта):
main.cs :
Код:

using UnityEngine;
using System.Collections;

public class main : MonoBehaviour {

        // Use this for initialization
    public player[] pl = new player[2];

    public void Position(GameObject go, float x, float y, float z){go.transform.position = new Vector3(x, y, z);}
    public void Move(GameObject go, float x, float y, float z){go.transform.Translate(x, y, z);}

        void Start () {
        Camera cam = new GameObject("cam").AddComponent<Camera>();
        cam.transform.position = new Vector3(0, 0, -5);

        pl[0] = new GameObject("player1").AddComponent<player>();
        pl[0].CreatePlayer(0, 0, "asd");
        }
       
        // Update is called once per frame
        void Update () {

        }
}



player.cs :
Код:

using UnityEngine;
using System.Collections;

public class player : MonoBehaviour
{
    public main m;
    void Awake() { m = GetComponent<main>(); }

    public GameObject body, turret;
    public string name;

        void Start ()
    {
        }

    public void CreatePlayer(int x, int z, string type)
    {
        body = GameObject.CreatePrimitive(PrimitiveType.Cube);
        body.name = "body";
        body.transform.parent = gameObject.transform;
        m.Position(body, 0, -1.0f, 0);
        body.transform.position = new Vector3(x, 0, z);
        body.transform.localScale = new Vector3(1, 0.5f, 1);
   
        turret = GameObject.CreatePrimitive(PrimitiveType.Sphere);
        turret.name = "turret";
        turret.transform.position = new Vector3(x, 0.5f, z);
        turret.transform.localScale = new Vector3(0.5f, 0.5f, 0.5f);
        turret.transform.parent = body.transform;
   
        name = type;
    }
       
    void Update()
    {
        if (m)
        {
            if (Input.GetKey(KeyCode.LeftArrow))
                m.Move(body, -0.1f, 0, 0);
            else if (Input.GetKey(KeyCode.RightArrow))
                m.Move(body, 0.1f, 0, 0);
        }
        }
}



ну соответственно в сцене имею main (GameObject на котором висит main.cs). В результате при запуске имею следующую ошибку:
Код:

NullReferenceException: Object reference not set to an instance of an object
player.CreatePlayer (Int32 x, Int32 z, System.String type) (at Assets/player.cs:21)
main.Start () (at Assets/main.cs:17)

Двойной клик по ошибке отправляет в файо player.cs на строку:
Код:

        m.Position(body, 0, -1.0f, 0);
вопрос1 - почему?
вопрос2 - как исправить?

Можно конечно просто писать body.transform.position... и т.д., тогда всё как надо работает. Но хочется как то упростить себе жизнь, подготовив основные функции для работы с движением/позицией/ротацией и т.д. (отходить от блица конечно надо скорее, но пока хочется печатать поменьше, точнее написать один раз много и потом писать по малу). Или надо эти мои общие функции писать не в классе main, а где то в другом месте?



UPD
решено:
добавил отдельный скрипт functions.cs
Код:

using UnityEngine;
using System.Collections;

public class functions : MonoBehaviour
{
    public void Position(GameObject go, float x, float y, float z) { go.transform.position = new Vector3(x, y, z); }
    public void Move(GameObject go, float x, float y, float z) { go.transform.Translate(x, y, z); }
}



и в нужных скриптах прописал
PHP код:

private functions m;
    
void Awake() {gameObject.AddComponent<functions>(); } 

ну и далее m.Move...

наверное тоже очень некорректно, но работает.

pie 25.10.2012 11:04

Ответ: Вопросы от новичка
 
Кто работал с VK.Api помогите. Размещаю на стене пользователя запись. Для того чтобы сообщение было видно делаю размер игрового окна 1x1. Как мне вернуть первоначальное значение после размещения записи на стене?
VK.callMethod("resizeWindow", 1, 1);
VK.api('wall.post', {message: "текс"});

pax 25.10.2012 14:28

Ответ: Вопросы от новичка
 
Думаю так у тебя заработает:
PHP код:

void Awake() { main = (main)FindObjectOfType(typeof(main)); } 


St_AnGer 25.10.2012 14:30

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

Сообщение от pax (Сообщение 241085)
Думаю так у тебя заработает:
PHP код:

void Awake() { main = (main)FindObjectOfType(typeof(main)); } 


Пост свой уже удалил, т.к. дошёл до этого на минуту раньше чем получил ответ. Но всё равно спасибо! Тем более, что этот же ответ подойдёт и в предыдущий мой пост. Только там я проблему решил очень корявым способом, сейчас заодно и исправлю.
Вообще заметил за собой такую вещь в большинстве случаев - думаю над чем то, думаю, никак не додумаюсь. Только спрошу на форуме как сделать то, над чем думал - сразу сам до решения дохожу. Волшебство Булочки, не иначе! :)

pax 25.10.2012 14:55

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

Сообщение от St_AnGer (Сообщение 241086)
Вообще заметил за собой такую вещь в большинстве случаев - думаю над чем то, думаю, никак не додумаюсь. Только спрошу на форуме как сделать то, над чем думал - сразу сам до решения дохожу. Волшебство Булочки, не иначе! :)

Нет это закономерно, потому что правильно задав вопрос ты уже на половину знаешь ответ ;)

Okay 27.10.2012 15:34

Ответ: Вопросы от новичка
 
Как убрать слайдинг в стандартном Input Platform Controller?
визуально не получается. Слайдинг все равно есть. Что не есть хорошо

WISHMASTER35 27.10.2012 18:58

Ответ: Вопросы от новичка
 
Кто-нибудь знает, если в Surface шейдере задать параметр noambient, т.е. выключить окружающий свет, то как сделать финальный цвет не черный?

pax 27.10.2012 19:14

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

Сообщение от WISHMASTER35 (Сообщение 241292)
Кто-нибудь знает, если в Surface шейдере задать параметр noambient, т.е. выключить окружающий свет, то как сделать финальный цвет не черный?

Пример хоть шейдера покажи

ARA 27.10.2012 19:39

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

Кто-нибудь знает, если в Surface шейдере задать параметр noambient, т.е. выключить окружающий свет, то как сделать финальный цвет не черный?
По логике если финальный цвет получается чёрный без амбиента, то можно его чорным сделать и с включённым амбиентом, тупо придав амбиенту чёрный цвет в Edit -> Render Settings. Тамже можно его и белым сделать и каким угодно.

WISHMASTER35 27.10.2012 21:52

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

void MyFinalColor(Input IN, SurfaceOutput o, inout fixed4 color) {
color.rgb = o.Albedo.rgb * UNITY_LIGHTMODEL_AMBIENT * 2;
color.a = o.Alpha;
}

Вот только не пойму зачем на 2 умножать? Почему UNITY_LIGHTMODEL_AMBIENT сразу не содержит финальное значение?

pax 28.10.2012 00:38

Ответ: Вопросы от новичка
 
я как-то опытным путем домножал на 2.6...

jimon 28.10.2012 00:40

Ответ: Вопросы от новичка
 
может оно в sRGB, а видеокарте надо RGB, тогда гамма-коррекцию надо делать

Okay 28.10.2012 00:42

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

Как убрать слайдинг в стандартном Input Platform Controller?
визуально не получается. Слайдинг все равно есть. Что не есть хорошо
Очень нужно

pax 28.10.2012 00:44

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

Сообщение от Okay (Сообщение 241325)
Очень нужно

Код бы сюда запостил посмотреть, лень проект создавать для этого...

Okay 28.10.2012 00:47

Ответ: Вопросы от новичка
 
http://pastebin.com/HzK8fXgH

Стандартный Character Motor

WISHMASTER35 28.10.2012 00:50

Ответ: Вопросы от новичка
 
Если верить этому http://ru.wikipedia.org/wiki/SRGB то домножать надо от 1 до 2.3.
Какой цвет лучше всего задавать для дневного света? Стоит ли его делать немного желтым или может голубоватым? Игра типа Minecraft. При максимально белом свете, ну слишком ярко.
Okay, Input Platform Controller это чтобы вместе с движущимися платформами двигаться?
Т.е. после остановки платформы у тебя персонаж еще движется? Это сильно мешает? Я бы после резкой остановке платформы вообще бы упал))

Okay 28.10.2012 00:52

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

Сообщение от WISHMASTER35 (Сообщение 241328)
Если верить этому http://ru.wikipedia.org/wiki/SRGB то домножать надо от 1 до 2.3.
Какой цвет лучше всего задавать для дневного света? Стоит ли его делать немного желтым или может голубоватым? Игра типа Minecraft. При максимально белом свете, ну слишком ярко.
Okay, Input Platform Controller это чтобы вместе с движущимися платформами двигаться?
Т.е. после остановки платформы у тебя персонаж еще движется? Это сильно мешает? Я бы после резкой остановке платформы вообще бы упал))

это очень не красиво выглядит в моем случае

Lestar 28.10.2012 01:03

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

Стандартный Character Motor
Я бы такие простыни на pastebin постил бы.

pax 28.10.2012 01:17

Ответ: Вопросы от новичка
 
2 Okay
там же есть CharacterMotorSliding, и sliding переменная. Найди ее применение и исключи из кода...

WISHMASTER35 28.10.2012 01:18

Ответ: Вопросы от новичка
 
Okay, может лучше не надо платформу резко останавливать? CharacterMotor не может резко сильно менять скорость.

Okay 28.10.2012 01:39

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

Сообщение от WISHMASTER35 (Сообщение 241337)
Okay, может лучше не надо платформу резко останавливать? CharacterMotor не может резко сильно менять скорость.

Почему это не может?

WISHMASTER35 28.10.2012 03:09

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

Okay 28.10.2012 12:53

Ответ: Вопросы от новичка
 
Проблема с физикой. При анимации "Бег" - голова заходит в объект. Что очень плохо

Lestar 28.10.2012 13:10

Ответ: Вопросы от новичка
 
Это проблемы с экспортом/ импортом анимированной модели.

WISHMASTER35 28.10.2012 13:15

Ответ: Вопросы от новичка
 
Lestar, причем тут экспорт и импорт? Если в анимации бега персонаж вытягивает голову из коллайдера, то так оно и будет.
Не помню в каких играх персонаж так же вытягивал голову вперед при беге.
Но чтобы оружие не проваливалось в стены используют инверсную кинематику. Хотя помнится кажется в Алане Уейке фигово это выглядело, оружие как-то дрожало.
Для головы можно тоже сделать, только отключать анимацию бега, когда игрок уперся в стену.

Lestar 28.10.2012 14:19

Ответ: Вопросы от новичка
 
Исходя из логики у человека только в Unity проблемы с анимацией. В 3D редакторе его все устраивает. Не вижу каким образом проблемы ты привязал к стенам. Каким боком тут инверсная кинематика, если написано
Цитата:

При анимации "Бег" - голова заходит в объект.
Эли я что то читаю задом наперед?

pax 28.10.2012 14:37

Ответ: Вопросы от новичка
 
Увеличивайте радиус CharacterController

Okay 28.10.2012 15:26

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

Сообщение от Lestar (Сообщение 241365)
Исходя из логики у человека только в Unity проблемы с анимацией. В 3D редакторе его все устраивает. Не вижу каким образом проблемы ты привязал к стенам. Каким боком тут инверсная кинематика, если написано

Эли я что то читаю задом наперед?

Читаешь слово через два.
На картинке видно, что если подбежать к дому, то голова зайдет в объект.
Коллайдер убогий.
Сам исправил. Увеличил коллайдер у дома


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

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