Я тоже так Хочу

Общие вопросы о Unity3D

Я тоже так Хочу

Сообщение Orcan 14 ноя 2017, 14:37

Увидел в одном видео что коллайдер можно перекрасить в красный Цвет. Хотелось бы тоже так же, ото иногда не понятно к чему относится коллайдер как можно это сделать? Как тут http://www.gamedev.ru/files/images/?id=129203
Orcan
UNITрон
 
Сообщения: 191
Зарегистрирован: 25 сен 2016, 04:22

Re: Я тоже так Хочу

Сообщение Valentinus 14 ноя 2017, 16:20

я купил себе такой ассет за 5 баксов https://www.assetstore.unity3d.com/en/#!/content/25478
удобнейшая штука.
другое мое творчество: samlib.ru/u/us_w/
Аватара пользователя
Valentinus
Старожил
 
Сообщения: 889
Зарегистрирован: 24 мар 2017, 18:33

Re: Я тоже так Хочу

Сообщение Orcan 14 ноя 2017, 20:24

Странно что нету такого по дефолту
Orcan
UNITрон
 
Сообщения: 191
Зарегистрирован: 25 сен 2016, 04:22

Re: Я тоже так Хочу

Сообщение samana 14 ноя 2017, 20:27

Можно попробовать рисовать разноцветные объекты через Gizmos https://docs.unity3d.com/ScriptReference/Gizmos.html
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Я тоже так Хочу

Сообщение Paul Siberdt 14 ноя 2017, 20:39

Если работаете в VR, гизмы не будут рисоваться. Тогда, поскольку ваши триггеры будут в большинстве случаев боксами или сферами, можно добавить на старте нужного объекта генерацию дебажной модельки:

Синтаксис:
Используется csharp
        public bool debugCollider;
        public Color debugColliderColor;
-----
        if (debugCollider) CreateDebugCollider();
-----
        private void CreateDebugCollider()
        {
            Transform debugCollider = null;

            if (c is BoxCollider) //c - ссылка на коллайдер трансформа
            {
                debugCollider = GameObject.CreatePrimitive(PrimitiveType.Cube).transform;
                debugCollider.localScale = c.bounds.size;
            }
            else if (c is SphereCollider)
            {
                debugCollider = GameObject.CreatePrimitive(PrimitiveType.Sphere).transform;
                debugCollider.localScale = Vector3.one * ((SphereCollider) c).radius * 2f;
            }
            else return;

            debugCollider.parent = t; //t - ссылка на трансформ
            debugCollider.localRotation = Quaternion.Identity;
            debugCollider.position = c.bounds.center;
            debugCollider.name = t.name + "_debugCollider";
           
            Renderer debugRenderer = debugCollider.GetComponent<Renderer>();
            debugRenderer.material = Resources.Load<Material>("debugCollider");
            debugRenderer.material.SetColor("_Color", debugColliderColor);

       
}

Теперь добавляете, согласно коду выше - в ресурсную папку, простой материал debugCollider и вешаете на него простой аддитивный шейдер, например:

Синтаксис:
Используется glsl
Shader "[Debug]/AdditiveColor(No Texture)" {
    Properties {
        _Color ("Main Color, Alpha", Color) = (1,1,1,1)
    }
    Category {

        Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
        Blend SrcAlpha One
        Cull Back Lighting Off ZWrite Off

        Fog { Color (0.5,0.5,0,1.0) }
        Color [_Color]
        SubShader {
                Pass {
                        Cull Back
                }
        }
    }
}
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Я тоже так Хочу

Сообщение Orcan 16 ноя 2017, 16:34

Эх как много всего нужно((
Orcan
UNITрон
 
Сообщения: 191
Зарегистрирован: 25 сен 2016, 04:22


Вернуться в Общие вопросы

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

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