Objeto ficar contornado durante o play
3 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Objeto ficar contornado durante o play
oq quero tentar fazer e o seguinte
enquanto eu estiver em jogo
o objeto fique contornado...como se fosse em lapis...quando vc "circula" o desenho ou objeto
e que eu possa ver ele pelas paredes e tal....
da mesma forma quando vc ta no editor
ou para quem ja usou hacker em FPS's...e vc ver o inimigo atraves da parede...ele contornado..
entao..eu queria fazer isso em script mas nao sei como
alguem sabe como se faz isso?
enquanto eu estiver em jogo
o objeto fique contornado...como se fosse em lapis...quando vc "circula" o desenho ou objeto
e que eu possa ver ele pelas paredes e tal....
da mesma forma quando vc ta no editor
ou para quem ja usou hacker em FPS's...e vc ver o inimigo atraves da parede...ele contornado..
entao..eu queria fazer isso em script mas nao sei como
alguem sabe como se faz isso?
Re: Objeto ficar contornado durante o play
Cara, tem várias maneiras de fazer isto, mas geralmente usa-se shaders especiais...
Veja por exemplo os 3DText... eles atravessam tudo que é parede.
Veja por exemplo os 3DText... eles atravessam tudo que é parede.
Re: Objeto ficar contornado durante o play
Eu tenho esse shader mas esta com um problema e nao postei pois acho que ninguem aqui manja de shader.
Chilinger- MembroAvançado
- PONTOS : 4092
REPUTAÇÃO : 42
Idade : 30
Respeito as regras :
Re: Objeto ficar contornado durante o play
Na scena ele funciona normalmente mas quando dou play meu objeto somi.
Chilinger- MembroAvançado
- PONTOS : 4092
REPUTAÇÃO : 42
Idade : 30
Respeito as regras :
Re: Objeto ficar contornado durante o play
Some quando da play? isto pode acontecer se algum script está alterando algum valor do shader ou se o objeto ou o seu mesh é desativado
Re: Objeto ficar contornado durante o play
Se quiser te mando os dois shader.Voce que ?
Esta Funcionando.
Esta Funcionando.
- Código:
Shader "Outlined/Silhouetted Diffuse" {
Properties {
_Color ("Main Color", Color) = (.5,.5,.5,1)
_OutlineColor ("Outline Color", Color) = (0,0,0,1)
_Outline ("Outline width", Range (0.0, 0.03)) = .005
_MainTex ("Base (RGB)", 2D) = "white" { }
}
CGINCLUDE
#include "UnityCG.cginc"
struct appdata {
float4 vertex : POSITION;
float3 normal : NORMAL;
};
struct v2f {
float4 pos : POSITION;
float4 color : COLOR;
};
uniform float _Outline;
uniform float4 _OutlineColor;
v2f vert(appdata v) {
// just make a copy of incoming vertex data but scaled according to normal direction
v2f o;
o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
float3 norm = mul ((float3x3)UNITY_MATRIX_IT_MV, v.normal);
float2 offset = TransformViewToProjection(norm.xy);
o.pos.xy += offset * o.pos.z * _Outline;
o.color = _OutlineColor;
return o;
}
ENDCG
SubShader {
Tags { "Queue" = "Transparent" }
// note that a vertex shader is specified here but its using the one above
Pass {
Name "OUTLINE"
Tags { "LightMode" = "Always" }
Cull Off
ZWrite Off
ZTest Always
ColorMask RGB // alpha not used
// you can choose what kind of blending mode you want for the outline
Blend SrcAlpha OneMinusSrcAlpha // Normal
//Blend One One // Additive
//Blend One OneMinusDstColor // Soft Additive
//Blend DstColor Zero // Multiplicative
//Blend DstColor SrcColor // 2x Multiplicative
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
half4 frag(v2f i) :COLOR {
return i.color;
}
ENDCG
}
Pass {
Name "BASE"
ZWrite On
ZTest LEqual
Blend SrcAlpha OneMinusSrcAlpha
Material {
Diffuse [_Color]
Ambient [_Color]
}
Lighting On
SetTexture [_MainTex] {
ConstantColor [_Color]
Combine texture * constant
}
SetTexture [_MainTex] {
Combine previous * primary DOUBLE
}
}
}
SubShader {
Tags { "Queue" = "Transparent" }
Pass {
Name "OUTLINE"
Tags { "LightMode" = "Always" }
Cull Front
ZWrite Off
ZTest Always
ColorMask RGB
// you can choose what kind of blending mode you want for the outline
Blend SrcAlpha OneMinusSrcAlpha // Normal
//Blend One One // Additive
//Blend One OneMinusDstColor // Soft Additive
//Blend DstColor Zero // Multiplicative
//Blend DstColor SrcColor // 2x Multiplicative
CGPROGRAM
#pragma vertex vert
#pragma exclude_renderers gles xbox360 ps3
ENDCG
SetTexture [_MainTex] { combine primary }
}
Pass {
Name "BASE"
ZWrite On
ZTest LEqual
Blend SrcAlpha OneMinusSrcAlpha
Material {
Diffuse [_Color]
Ambient [_Color]
}
Lighting On
SetTexture [_MainTex] {
ConstantColor [_Color]
Combine texture * constant
}
SetTexture [_MainTex] {
Combine previous * primary DOUBLE
}
}
}
Fallback "Diffuse"
}
Última edição por Chilinger em Qui Jul 13, 2017 1:29 pm, editado 2 vez(es)
Chilinger- MembroAvançado
- PONTOS : 4092
REPUTAÇÃO : 42
Idade : 30
Respeito as regras :
Re: Objeto ficar contornado durante o play
Cara, nenhum deveria sumir, por que tem "Fallback Difuse"
Com outros shaders os objetos ficam normais ou somem também?
Com outros shaders os objetos ficam normais ou somem também?
Re: Objeto ficar contornado durante o play
Todos funcionam mas nao sei por que quando fui testa aqui antes estava do jeito que te disse agora nao.Todos funcionaram.
Chilinger- MembroAvançado
- PONTOS : 4092
REPUTAÇÃO : 42
Idade : 30
Respeito as regras :
Tópicos semelhantes
» [Resolvido] Como fazer o objeto colidir uma vez e tão ficar tremendo?
» [RESOLVIDO]Como faço um objeto ficar rotacionando no eixo Y do valor -35 até 35
» Como faço para um objeto ficar num tom de azul?
» [RESOLVIDO] Fazer position.x de um objeto ficar igual a de outro, sem transforma-lo em filho.
» [Duvida] Objeto ficar se movendo como se fosse elevador.
» [RESOLVIDO]Como faço um objeto ficar rotacionando no eixo Y do valor -35 até 35
» Como faço para um objeto ficar num tom de azul?
» [RESOLVIDO] Fazer position.x de um objeto ficar igual a de outro, sem transforma-lo em filho.
» [Duvida] Objeto ficar se movendo como se fosse elevador.
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos