How can I fade player character when he goes inside or outside of the area? Planned...

What does '1 unit of lemon juice' mean in a grandma's drink recipe?

Why aren't air breathing engines used as small first stages

Do you forfeit tax refunds/credits if you aren't required to and don't file by April 15?

Does surprise arrest existing movement?

Why was the term "discrete" used in discrete logarithm?

What are the motives behind Cersei's orders given to Bronn?

The logistics of corpse disposal

Disable hyphenation for an entire paragraph

Storing hydrofluoric acid before the invention of plastics

What is a Meta algorithm?

How to recreate this effect in Photoshop?

I am not a queen, who am I?

How do I stop a creek from eroding my steep embankment?

When -s is used with third person singular. What's its use in this context?

do i need a schengen visa for a direct flight to amsterdam?

Is there a concise way to say "all of the X, one of each"?

Is above average number of years spent on PhD considered a red flag in future academia or industry positions?

Proof involving the spectral radius and the Jordan canonical form

What does the "x" in "x86" represent?

How to motivate offshore teams and trust them to deliver?

ListPlot join points by nearest neighbor rather than order

What LEGO pieces have "real-world" functionality?

Are my PIs rude or am I just being too sensitive?

How to deal with a team lead who never gives me credit?



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;
}







11












$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



photo_2019-04-15_07-21-39



when elephant is outside of green area his alpha should be 0



photo_2019-04-15_07-21-35










share|improve this question











$endgroup$



















    11












    $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



    photo_2019-04-15_07-21-39



    when elephant is outside of green area his alpha should be 0



    photo_2019-04-15_07-21-35










    share|improve this question











    $endgroup$















      11












      11








      11


      3



      $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



      photo_2019-04-15_07-21-39



      when elephant is outside of green area his alpha should be 0



      photo_2019-04-15_07-21-35










      share|improve this question











      $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



      photo_2019-04-15_07-21-39



      when elephant is outside of green area his alpha should be 0



      photo_2019-04-15_07-21-35







      unity shaders






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 13 mins ago









      Kromster

      8,75844059




      8,75844059










      asked yesterday









      Seyed Morteza KamaliSeyed Morteza Kamali

      5,31982459




      5,31982459






















          1 Answer
          1






          active

          oldest

          votes


















          24












          $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



          Record_2019_04_15_07_13_25_154



          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:



          Record_2019_04_15_07_14_24_876



          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"
          }





          share|improve this answer











          $endgroup$














            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
            });


            }
            });














            draft saved

            draft discarded


















            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









            24












            $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



            Record_2019_04_15_07_13_25_154



            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:



            Record_2019_04_15_07_14_24_876



            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"
            }





            share|improve this answer











            $endgroup$


















              24












              $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



              Record_2019_04_15_07_13_25_154



              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:



              Record_2019_04_15_07_14_24_876



              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"
              }





              share|improve this answer











              $endgroup$
















                24












                24








                24





                $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



                Record_2019_04_15_07_13_25_154



                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:



                Record_2019_04_15_07_14_24_876



                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"
                }





                share|improve this answer











                $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



                Record_2019_04_15_07_13_25_154



                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:



                Record_2019_04_15_07_14_24_876



                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"
                }






                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited 15 mins ago









                Kromster

                8,75844059




                8,75844059










                answered yesterday









                Seyed Morteza KamaliSeyed Morteza Kamali

                5,31982459




                5,31982459






























                    draft saved

                    draft discarded




















































                    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.




                    draft saved


                    draft discarded














                    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





















































                    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







                    Popular posts from this blog

                    Can't compile dgruyter and caption packagesLaTeX templates/packages for writing a patent specificationLatex...

                    Schneeberg (Smreczany) Bibliografia | Menu...

                    Hans Bellmer Spis treści Życiorys | Upamiętnienie | Przypisy | Bibliografia | Linki zewnętrzne |...