How can I fade player character when he goes inside or outside of the area? Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?How can I replicate the color limitations of the NES with an HLSL pixel shader?Premultiplied Alpha And Alpha TestingHow can I create 2D shadows that let me detect when the player is inside them?How can i fix the problem when changing the objects scale some of them are out of terrain area?How can i keep the spawned cubes to be inside the given area?How can i make fade in/out of the alpha color of a material from black to none black?How to make a door stay open if the player is inside the trigger zone?How can I switch between two cameras with fading in/out when switching?Player area in navmesh?Dissolving fog of war when entering a room
Diagram with tikz
Why aren't air breathing engines used as small first stages
Is there a concise way to say "all of the X, one of each"?
Is it true that "carbohydrates are of no use for the basal metabolic need"?
What does '1 unit of lemon juice' mean in a grandma's drink recipe?
Are my PIs rude or am I just being too sensitive?
Is a manifold-with-boundary with given interior and non-empty boundary essentially unique?
What's the difference between `auto x = vector<int>()` and `vector<int> x`?
When is phishing education going too far?
List *all* the tuples!
Should I call the interviewer directly, if HR aren't responding?
Is there any avatar supposed to be born between the death of Krishna and the birth of Kalki?
Disable hyphenation for an entire paragraph
What's the purpose of writing one's academic bio in 3rd person?
I need to find the potential function of a vector field.
Do you forfeit tax refunds/credits if you aren't required to and don't file by April 15?
Is there a documented rationale why the House Ways and Means chairman can demand tax info?
What is the longest distance a 13th-level monk can jump while attacking on the same turn?
Sorting numerically
How discoverable are IPv6 addresses and AAAA names by potential attackers?
If 'B is more likely given A', then 'A is more likely given B'
Determinant is linear as a function of each of the rows of the matrix.
The logistics of corpse disposal
I am not a queen, who am I?
How can I fade player character when he goes inside or outside of the area?
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)
Announcing the arrival of Valued Associate #679: Cesar Manara
Unicorn Meta Zoo #1: Why another podcast?How can I replicate the color limitations of the NES with an HLSL pixel shader?Premultiplied Alpha And Alpha TestingHow can I create 2D shadows that let me detect when the player is inside them?How can i fix the problem when changing the objects scale some of them are out of terrain area?How can i keep the spawned cubes to be inside the given area?How can i make fade in/out of the alpha color of a material from black to none black?How to make a door stay open if the player is inside the trigger zone?How can I switch between two cameras with fading in/out when switching?Player area in navmesh?Dissolving fog of war when entering a room
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
$begingroup$
I want to fade the player when he goes out of the area.
For example, suppose a person enters a building. When a person is outside of the building, he shouldn't be seen, but when he enters he gradually becomes visible (using fading effect).
when elephant is inside green area his alpha should be 1
when elephant is outside of green area his alpha should be 0
unity shaders
$endgroup$
add a comment |
$begingroup$
I want to fade the player when he goes out of the area.
For example, suppose a person enters a building. When a person is outside of the building, he shouldn't be seen, but when he enters he gradually becomes visible (using fading effect).
when elephant is inside green area his alpha should be 1
when elephant is outside of green area his alpha should be 0
unity shaders
$endgroup$
add a comment |
$begingroup$
I want to fade the player when he goes out of the area.
For example, suppose a person enters a building. When a person is outside of the building, he shouldn't be seen, but when he enters he gradually becomes visible (using fading effect).
when elephant is inside green area his alpha should be 1
when elephant is outside of green area his alpha should be 0
unity shaders
$endgroup$
I want to fade the player when he goes out of the area.
For example, suppose a person enters a building. When a person is outside of the building, he shouldn't be seen, but when he enters he gradually becomes visible (using fading effect).
when elephant is inside green area his alpha should be 1
when elephant is outside of green area his alpha should be 0
unity shaders
unity shaders
edited 15 mins ago
Kromster
8,75844059
8,75844059
asked yesterday
Seyed Morteza KamaliSeyed Morteza Kamali
5,31982459
5,31982459
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
$begingroup$
You can use world space to fade your character.
The object space (or object coordinate system) is specific to each
game object; however, all game objects are transformed into one common
coordinate system — the world space.
If a game object is put directly into the world space, the
object-to-world transformation is specified by the Transform component
of the game object.
https://en.wikibooks.org/wiki/Cg_Programming/Unity/Shading_in_World_Space
Fading by world space
Shader "Smkgames/worldSpaceFade"
Properties
_Size("Size",Vector) = (2,2,0,0)
SubShader
Pass
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
struct vertexInput
float4 vertex : POSITION;
;
struct vertexOutput
float4 pos : SV_POSITION;
float4 position_in_world_space : TEXCOORD0;
;
vertexOutput vert(vertexInput input)
vertexOutput output;
output.pos = UnityObjectToClipPos(input.vertex);
output.position_in_world_space =
mul(unity_ObjectToWorld, input.vertex);
return output;
float2 _Size;
float4 frag(vertexOutput input) : COLOR
float3 world = input.position_in_world_space;
float4 equation = pow(world.x/_Size.x,8) + pow(world.z/_Size.y,8);
return smoothstep(1,0,equation);
ENDCG
Surface Shader
After understanding world space we can use it in our surface shader:
Shader "Smkgames/worldSpaceFade"
Properties
_Size("Size",Vector) = (2,2,0,0)
_Color ("Color", Color) = (1,1,1,1)
_MainTex ("Albedo (RGB)", 2D) = "white"
_Glossiness ("Smoothness", Range(0,1)) = 0.5
_Metallic ("Metallic", Range(0,1)) = 0.0
SubShader
Tags "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"
Pass
ZWrite On
ColorMask 0
LOD 200
CGPROGRAM
#pragma surface surf Standard fullforwardshadows alpha:fade
#pragma target 3.0
sampler2D _MainTex;
struct Input
float2 uv_MainTex;
float3 worldPos: TEXCOORD2;
;
half _Glossiness;
half _Metallic;
fixed4 _Color;
float2 _Size;
void vert (inout appdata_full v, out Input o)
UNITY_INITIALIZE_OUTPUT(Input,o);
o.worldPos = mul(unity_ObjectToWorld, v.vertex);
UNITY_INSTANCING_BUFFER_START(Props)
UNITY_INSTANCING_BUFFER_END(Props)
void surf (Input IN, inout SurfaceOutputStandard o)
fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
float4 equation = pow(IN.worldPos.x/_Size.x,8) + pow(IN.worldPos.z/_Size.y,8);
o.Albedo = c.rgb;
o.Metallic = _Metallic;
o.Smoothness = _Glossiness;
o.Alpha = smoothstep(1,0,equation);
ENDCG
FallBack "Diffuse"
$endgroup$
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "53"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgamedev.stackexchange.com%2fquestions%2f170041%2fhow-can-i-fade-player-character-when-he-goes-inside-or-outside-of-the-area%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
You can use world space to fade your character.
The object space (or object coordinate system) is specific to each
game object; however, all game objects are transformed into one common
coordinate system — the world space.
If a game object is put directly into the world space, the
object-to-world transformation is specified by the Transform component
of the game object.
https://en.wikibooks.org/wiki/Cg_Programming/Unity/Shading_in_World_Space
Fading by world space
Shader "Smkgames/worldSpaceFade"
Properties
_Size("Size",Vector) = (2,2,0,0)
SubShader
Pass
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
struct vertexInput
float4 vertex : POSITION;
;
struct vertexOutput
float4 pos : SV_POSITION;
float4 position_in_world_space : TEXCOORD0;
;
vertexOutput vert(vertexInput input)
vertexOutput output;
output.pos = UnityObjectToClipPos(input.vertex);
output.position_in_world_space =
mul(unity_ObjectToWorld, input.vertex);
return output;
float2 _Size;
float4 frag(vertexOutput input) : COLOR
float3 world = input.position_in_world_space;
float4 equation = pow(world.x/_Size.x,8) + pow(world.z/_Size.y,8);
return smoothstep(1,0,equation);
ENDCG
Surface Shader
After understanding world space we can use it in our surface shader:
Shader "Smkgames/worldSpaceFade"
Properties
_Size("Size",Vector) = (2,2,0,0)
_Color ("Color", Color) = (1,1,1,1)
_MainTex ("Albedo (RGB)", 2D) = "white"
_Glossiness ("Smoothness", Range(0,1)) = 0.5
_Metallic ("Metallic", Range(0,1)) = 0.0
SubShader
Tags "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"
Pass
ZWrite On
ColorMask 0
LOD 200
CGPROGRAM
#pragma surface surf Standard fullforwardshadows alpha:fade
#pragma target 3.0
sampler2D _MainTex;
struct Input
float2 uv_MainTex;
float3 worldPos: TEXCOORD2;
;
half _Glossiness;
half _Metallic;
fixed4 _Color;
float2 _Size;
void vert (inout appdata_full v, out Input o)
UNITY_INITIALIZE_OUTPUT(Input,o);
o.worldPos = mul(unity_ObjectToWorld, v.vertex);
UNITY_INSTANCING_BUFFER_START(Props)
UNITY_INSTANCING_BUFFER_END(Props)
void surf (Input IN, inout SurfaceOutputStandard o)
fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
float4 equation = pow(IN.worldPos.x/_Size.x,8) + pow(IN.worldPos.z/_Size.y,8);
o.Albedo = c.rgb;
o.Metallic = _Metallic;
o.Smoothness = _Glossiness;
o.Alpha = smoothstep(1,0,equation);
ENDCG
FallBack "Diffuse"
$endgroup$
add a comment |
$begingroup$
You can use world space to fade your character.
The object space (or object coordinate system) is specific to each
game object; however, all game objects are transformed into one common
coordinate system — the world space.
If a game object is put directly into the world space, the
object-to-world transformation is specified by the Transform component
of the game object.
https://en.wikibooks.org/wiki/Cg_Programming/Unity/Shading_in_World_Space
Fading by world space
Shader "Smkgames/worldSpaceFade"
Properties
_Size("Size",Vector) = (2,2,0,0)
SubShader
Pass
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
struct vertexInput
float4 vertex : POSITION;
;
struct vertexOutput
float4 pos : SV_POSITION;
float4 position_in_world_space : TEXCOORD0;
;
vertexOutput vert(vertexInput input)
vertexOutput output;
output.pos = UnityObjectToClipPos(input.vertex);
output.position_in_world_space =
mul(unity_ObjectToWorld, input.vertex);
return output;
float2 _Size;
float4 frag(vertexOutput input) : COLOR
float3 world = input.position_in_world_space;
float4 equation = pow(world.x/_Size.x,8) + pow(world.z/_Size.y,8);
return smoothstep(1,0,equation);
ENDCG
Surface Shader
After understanding world space we can use it in our surface shader:
Shader "Smkgames/worldSpaceFade"
Properties
_Size("Size",Vector) = (2,2,0,0)
_Color ("Color", Color) = (1,1,1,1)
_MainTex ("Albedo (RGB)", 2D) = "white"
_Glossiness ("Smoothness", Range(0,1)) = 0.5
_Metallic ("Metallic", Range(0,1)) = 0.0
SubShader
Tags "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"
Pass
ZWrite On
ColorMask 0
LOD 200
CGPROGRAM
#pragma surface surf Standard fullforwardshadows alpha:fade
#pragma target 3.0
sampler2D _MainTex;
struct Input
float2 uv_MainTex;
float3 worldPos: TEXCOORD2;
;
half _Glossiness;
half _Metallic;
fixed4 _Color;
float2 _Size;
void vert (inout appdata_full v, out Input o)
UNITY_INITIALIZE_OUTPUT(Input,o);
o.worldPos = mul(unity_ObjectToWorld, v.vertex);
UNITY_INSTANCING_BUFFER_START(Props)
UNITY_INSTANCING_BUFFER_END(Props)
void surf (Input IN, inout SurfaceOutputStandard o)
fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
float4 equation = pow(IN.worldPos.x/_Size.x,8) + pow(IN.worldPos.z/_Size.y,8);
o.Albedo = c.rgb;
o.Metallic = _Metallic;
o.Smoothness = _Glossiness;
o.Alpha = smoothstep(1,0,equation);
ENDCG
FallBack "Diffuse"
$endgroup$
add a comment |
$begingroup$
You can use world space to fade your character.
The object space (or object coordinate system) is specific to each
game object; however, all game objects are transformed into one common
coordinate system — the world space.
If a game object is put directly into the world space, the
object-to-world transformation is specified by the Transform component
of the game object.
https://en.wikibooks.org/wiki/Cg_Programming/Unity/Shading_in_World_Space
Fading by world space
Shader "Smkgames/worldSpaceFade"
Properties
_Size("Size",Vector) = (2,2,0,0)
SubShader
Pass
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
struct vertexInput
float4 vertex : POSITION;
;
struct vertexOutput
float4 pos : SV_POSITION;
float4 position_in_world_space : TEXCOORD0;
;
vertexOutput vert(vertexInput input)
vertexOutput output;
output.pos = UnityObjectToClipPos(input.vertex);
output.position_in_world_space =
mul(unity_ObjectToWorld, input.vertex);
return output;
float2 _Size;
float4 frag(vertexOutput input) : COLOR
float3 world = input.position_in_world_space;
float4 equation = pow(world.x/_Size.x,8) + pow(world.z/_Size.y,8);
return smoothstep(1,0,equation);
ENDCG
Surface Shader
After understanding world space we can use it in our surface shader:
Shader "Smkgames/worldSpaceFade"
Properties
_Size("Size",Vector) = (2,2,0,0)
_Color ("Color", Color) = (1,1,1,1)
_MainTex ("Albedo (RGB)", 2D) = "white"
_Glossiness ("Smoothness", Range(0,1)) = 0.5
_Metallic ("Metallic", Range(0,1)) = 0.0
SubShader
Tags "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"
Pass
ZWrite On
ColorMask 0
LOD 200
CGPROGRAM
#pragma surface surf Standard fullforwardshadows alpha:fade
#pragma target 3.0
sampler2D _MainTex;
struct Input
float2 uv_MainTex;
float3 worldPos: TEXCOORD2;
;
half _Glossiness;
half _Metallic;
fixed4 _Color;
float2 _Size;
void vert (inout appdata_full v, out Input o)
UNITY_INITIALIZE_OUTPUT(Input,o);
o.worldPos = mul(unity_ObjectToWorld, v.vertex);
UNITY_INSTANCING_BUFFER_START(Props)
UNITY_INSTANCING_BUFFER_END(Props)
void surf (Input IN, inout SurfaceOutputStandard o)
fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
float4 equation = pow(IN.worldPos.x/_Size.x,8) + pow(IN.worldPos.z/_Size.y,8);
o.Albedo = c.rgb;
o.Metallic = _Metallic;
o.Smoothness = _Glossiness;
o.Alpha = smoothstep(1,0,equation);
ENDCG
FallBack "Diffuse"
$endgroup$
You can use world space to fade your character.
The object space (or object coordinate system) is specific to each
game object; however, all game objects are transformed into one common
coordinate system — the world space.
If a game object is put directly into the world space, the
object-to-world transformation is specified by the Transform component
of the game object.
https://en.wikibooks.org/wiki/Cg_Programming/Unity/Shading_in_World_Space
Fading by world space
Shader "Smkgames/worldSpaceFade"
Properties
_Size("Size",Vector) = (2,2,0,0)
SubShader
Pass
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
struct vertexInput
float4 vertex : POSITION;
;
struct vertexOutput
float4 pos : SV_POSITION;
float4 position_in_world_space : TEXCOORD0;
;
vertexOutput vert(vertexInput input)
vertexOutput output;
output.pos = UnityObjectToClipPos(input.vertex);
output.position_in_world_space =
mul(unity_ObjectToWorld, input.vertex);
return output;
float2 _Size;
float4 frag(vertexOutput input) : COLOR
float3 world = input.position_in_world_space;
float4 equation = pow(world.x/_Size.x,8) + pow(world.z/_Size.y,8);
return smoothstep(1,0,equation);
ENDCG
Surface Shader
After understanding world space we can use it in our surface shader:
Shader "Smkgames/worldSpaceFade"
Properties
_Size("Size",Vector) = (2,2,0,0)
_Color ("Color", Color) = (1,1,1,1)
_MainTex ("Albedo (RGB)", 2D) = "white"
_Glossiness ("Smoothness", Range(0,1)) = 0.5
_Metallic ("Metallic", Range(0,1)) = 0.0
SubShader
Tags "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"
Pass
ZWrite On
ColorMask 0
LOD 200
CGPROGRAM
#pragma surface surf Standard fullforwardshadows alpha:fade
#pragma target 3.0
sampler2D _MainTex;
struct Input
float2 uv_MainTex;
float3 worldPos: TEXCOORD2;
;
half _Glossiness;
half _Metallic;
fixed4 _Color;
float2 _Size;
void vert (inout appdata_full v, out Input o)
UNITY_INITIALIZE_OUTPUT(Input,o);
o.worldPos = mul(unity_ObjectToWorld, v.vertex);
UNITY_INSTANCING_BUFFER_START(Props)
UNITY_INSTANCING_BUFFER_END(Props)
void surf (Input IN, inout SurfaceOutputStandard o)
fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
float4 equation = pow(IN.worldPos.x/_Size.x,8) + pow(IN.worldPos.z/_Size.y,8);
o.Albedo = c.rgb;
o.Metallic = _Metallic;
o.Smoothness = _Glossiness;
o.Alpha = smoothstep(1,0,equation);
ENDCG
FallBack "Diffuse"
edited 17 mins ago
Kromster
8,75844059
8,75844059
answered yesterday
Seyed Morteza KamaliSeyed Morteza Kamali
5,31982459
5,31982459
add a comment |
add a comment |
Thanks for contributing an answer to Game Development Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgamedev.stackexchange.com%2fquestions%2f170041%2fhow-can-i-fade-player-character-when-he-goes-inside-or-outside-of-the-area%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown