Страница 1 из 1

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

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

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

СообщениеДобавлено: 14 ноя 2017, 16:20
Valentinus
я купил себе такой ассет за 5 баксов https://www.assetstore.unity3d.com/en/#!/content/25478
удобнейшая штука.

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

СообщениеДобавлено: 14 ноя 2017, 20:24
Orcan
Странно что нету такого по дефолту

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

СообщениеДобавлено: 14 ноя 2017, 20:27
samana
Можно попробовать рисовать разноцветные объекты через Gizmos https://docs.unity3d.com/ScriptReference/Gizmos.html

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

СообщениеДобавлено: 14 ноя 2017, 20:39
Paul Siberdt
Если работаете в 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
                }
        }
    }
}

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

СообщениеДобавлено: 16 ноя 2017, 16:34
Orcan
Эх как много всего нужно((