复制粘贴不了是怎么回事?(有时候复制粘贴不了怎么回事)
1484
2022-05-29
推荐阅读
CSDN主页
GitHub开源地址
Unity3D插件分享
简书地址
我的个人博客
QQ群:1040082875
大家好,我是佛系工程师
☆恬静的小魔龙☆
,不定时更新Unity开发技巧,觉得有用记得一键三连哦。
一、前言
最近开发的时候遇到了箭头指向的需求,本来想用我这篇文章中的代码来着:
【Unity3D日常开发】Unity中实现箭头指向效果实现
但是想到这个代码是在Update里面运行,对效率影响比较大,正好看到这个同学给我留言:
我看了一下他这个是通过Shader和MeshRenderer进行实现的,效率应该会更好。但是文章的步骤就我来说有点简单了,可能不知道怎么用,所以就将他的内容再细分一下。
效果图:
二、正文
2-1、制作Shader
(1)首先,将我们的图片导入:
右键另存为,保存到项目中。
(2)新建Shader,在Project视图中选择Create→Shader→Standard Surface Shader
将代码复制粘贴进去:
Shader "Custom/NavPathArrow" { Properties { _MainTex("Texture", 2D) = "white" {} _ScrollYSpeed("Y Scroll Speed", Range(-20, 20)) = 2 } SubShader { Tags { "Queue" = "Transparent" "RenderType" = "Transparent" } LOD 100 //双面渲染 Cull Off //Alpha混合 Blend SrcAlpha OneMinusSrcAlpha Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; }; struct v2f { float2 uv : TEXCOORD0; float4 vertex : SV_POSITION; }; sampler2D _MainTex; float4 _MainTex_ST; fixed _ScrollYSpeed; v2f vert(appdata v) { v2f o; o.vertex = UnityObjectToClipPos(v.vertex); o.uv = TRANSFORM_TEX(v.uv, _MainTex); return o; } fixed4 frag(v2f i) : SV_Target { fixed2 uv = i.uv; uv.y += _ScrollYSpeed * _Time; fixed4 col = tex2D(_MainTex, uv); return col; } ENDCG } } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
2-2、制作材质球
新建材质球,在Project视图中选择Create→Material,命名为NavPathArrow:
设置材质球的属性,将Shader设置为Custom/NavPathArrow,将贴图拖进去:
2-3、制作预制体
(1)新建一个Quad对象,在Hierarchy视图,右击选择Create→Quad:
将它的材质球换成刚才我们制作的材质球:
拖到Project视图,做成预制体:
2-4、实现代码
新建脚本NavPathArrow.cs,双击打开脚本,编写代码:
using System.Collections; using System.Collections.Generic; using UnityEngine; ///
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
2-5、实现功能
新建三个Cube作为路径点,一个Plane作为地板,摄像机直接使用命令Ctrl+Shift+F对齐到窗口就行:
把脚本附给Plane,然后把路径点也就是三个Cube,然后预制体Quad拖进去:
运行程序:
三、后记
你的就是对博主的支持,有问题记得留言:
博主还有跟多宝藏文章等待你的发掘哦:
5G游戏 unity
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。