006-2D文理Moive文理 srt字幕文件

来源:互联网 发布:江苏语音网络系统登录 编辑:程序博客网 时间:2024/05/02 02:07
1
00:00:00,000 --> 00:00:03,000
在上一节中

2
00:00:03,000 --> 00:00:09,000
我们的纹理是通过材质的方式显示在视图中

3
00:00:09,000 --> 00:00:15,000
在本节中我们主要介绍如何使用另一种方式

4
00:00:15,000 --> 00:00:18,000
也就是通过图形GUI的方式

5
00:00:18,000 --> 00:00:21,000
来显示2D纹理

6
00:00:21,000 --> 00:00:24,000
另外我们还要介绍一下

7
00:00:24,000 --> 00:00:26,000
movie纹理的使用

8
00:00:26,000 --> 00:00:31,000
创建一个新的场景

9
00:00:31,000 --> 00:00:35,000
然后对此场景进行保存

10
00:00:35,000 --> 00:00:43,000
例如我们可以保存场景名为Texture

11
00:00:43,000 --> 00:00:49,000
在工作过程中

12
00:00:49,000 --> 00:00:54,000
我们可以经常对场景进行保存

13
00:00:54,000 --> 00:00:57,000
来防止数据丢失

14
00:00:57,000 --> 00:01:06,000
我们可以继续使用地形文件夹中的纹理来进行演示

15
00:01:06,000 --> 00:01:09,000
在Terrain Grass文件夹中

16
00:01:09,000 --> 00:01:12,000
包含有两个Grass纹理

17
00:01:12,000 --> 00:01:17,000
接下来我们就使用GUI的方式

18
00:01:17,000 --> 00:01:20,000
来把纹理显示在视图中

19
00:01:20,000 --> 00:01:25,000
首先我们来创建一个脚本

20
00:01:25,000 --> 00:01:28,000
我们使用一个单独的文件夹

21
00:01:28,000 --> 00:01:31,000
来保存项目中的所有脚本

22
00:01:31,000 --> 00:01:37,000
选中此文件夹

23
00:01:37,000 --> 00:01:41,000
然后再单击创建脚本

24
00:01:41,000 --> 00:01:46,000
创建的脚本就会自动保存在选择的文件夹中

25
00:01:46,000 --> 00:01:53,000
重命名为showTexture

26
00:01:53,000 --> 00:01:59,000
此脚本在执行时

27
00:01:59,000 --> 00:02:01,000
主要用到了下面几个函数

28
00:02:01,000 --> 00:02:04,000
对于OnGUI函数

29
00:02:04,000 --> 00:02:10,000
我们只需要知道其是负责GUI图形元素的绘制

30
00:02:10,000 --> 00:02:17,000
对于其具体原理我们将在后面的GUI章节进行详细介绍

31
00:02:17,000 --> 00:02:21,000
Resources.Load和Resources.LoadAll方法

32
00:02:21,000 --> 00:02:25,000
主要用于加载资源

33
00:02:25,000 --> 00:02:29,000
而GUI.DrawTexture方法

34
00:02:29,000 --> 00:02:34,000
就是把纹理绘制在视图中的主要方法

35
00:02:34,000 --> 00:02:39,000
由于Resources.Load和Resources.LoadAll方法

36
00:02:39,000 --> 00:02:46,000
在使用时需要把文件保存在指定的文件夹中

37
00:02:46,000 --> 00:02:52,000
因此我们首先需要把加载的纹理

38
00:02:52,000 --> 00:02:54,000
保存在指定的文件夹中

39
00:02:54,000 --> 00:02:57,000
切换回Unity

40
00:02:57,000 --> 00:03:07,000
然后我们新建一个Resources文件夹

41
00:03:07,000 --> 00:03:11,000
我们继续创建文件夹

42
00:03:11,000 --> 00:03:19,000
可以命名为oneTexture

43
00:03:34,000 --> 00:03:48,000
以及allTexture

44
00:03:48,000 --> 00:03:52,000
我们可以拖动项目视图底部的滑块

45
00:03:52,000 --> 00:03:56,000
来改变图标的大小

46
00:03:56,000 --> 00:03:58,000
然后分别在此文件夹中

47
00:03:58,000 --> 00:04:01,000
拖入一个及多个纹理

48
00:04:01,000 --> 00:04:17,000
可以看到我们的文件夹中

49
00:04:17,000 --> 00:04:19,000
已经包含了需要的纹理

50
00:04:19,000 --> 00:04:25,000
接下来我们切换到Unity的脚本编辑器中

51
00:04:25,000 --> 00:04:27,000
来添加具体的脚本执行

52
00:04:27,000 --> 00:04:31,000
双击我们刚刚创建的脚本

53
00:04:31,000 --> 00:04:34,000
在Unity的脚本编辑器中打开它

54
00:04:34,000 --> 00:04:38,000
由于我们当前主要使用GUI的方式

55
00:04:38,000 --> 00:04:41,000
来进行图形的绘制

56
00:04:41,000 --> 00:04:47,000
因此我们并不需要脚本提供的默认函数

57
00:04:47,000 --> 00:04:51,000
此时我们可以将其注释掉

58
00:04:51,000 --> 00:04:55,000
或者我们可以直接把它们删除

59
00:04:55,000 --> 00:05:00,000
在脚本的顶部

60
00:05:00,000 --> 00:05:03,000
我们可以定义两个变量

61
00:05:03,000 --> 00:05:08,000
来保存我们要显示的纹理

62
00:05:08,000 --> 00:05:15,000
我们设置第一个变量的类型为Texture2D

63
00:05:15,000 --> 00:05:20,000
而第二个变量的类型为Object[]

64
00:05:20,000 --> 00:05:25,000
然后我们添加OnGUI函数

65
00:05:25,000 --> 00:05:30,000
在此函数中

66
00:05:30,000 --> 00:05:34,000
我们要添加按钮控件

67
00:05:34,000 --> 00:05:35,000
来载入资源

68
00:05:35,000 --> 00:05:39,000
然后使用DrawTexture方法

69
00:05:39,000 --> 00:05:43,000
来把载入的纹理显示在视图中

70
00:05:43,000 --> 00:05:47,000
首先我们来创建两个GUI按钮

71
00:05:47,000 --> 00:05:50,000
在OnGUI函数中

72
00:05:50,000 --> 00:05:53,000
我们添加了两个按钮

73
00:05:53,000 --> 00:05:58,000
第一个按钮的名称是loadOneTexture

74
00:05:58,000 --> 00:06:03,000
而第二个按钮的名称是loadAllTexture

75
00:06:03,000 --> 00:06:07,000
也就是当我们单击按钮时

76
00:06:07,000 --> 00:06:14,000
我们首先检测oneTexture变量的值是否为空

77
00:06:14,000 --> 00:06:19,000
如果当前此变量没有赋值

78
00:06:19,000 --> 00:06:22,000
则我们就使用Resources.Load方法

79
00:06:22,000 --> 00:06:28,000
把资源文件夹中的oneTexture下的Grass纹理

80
00:06:28,000 --> 00:06:31,000
分配到此变量中

81
00:06:31,000 --> 00:06:34,000
而在第二个按钮中

82
00:06:34,000 --> 00:06:37,000
我们命名为loadAllTexture

83
00:06:37,000 --> 00:06:47,000
也就是我们检测此处的allTexture数组是否为空

84
00:06:47,000 --> 00:06:49,000
如果为空的话

85
00:06:49,000 --> 00:06:53,000
我们使用Resources.LoadAll方法

86
00:06:53,000 --> 00:06:57,000
来把Resources文件夹下的

87
00:06:57,000 --> 00:07:02,000
所有纹理来复制到此数组中

88
00:07:02,000 --> 00:07:05,000
也就是此处的Object数组中

89
00:07:05,000 --> 00:07:10,000
接下来我们就使用DrawTexture方法

90
00:07:10,000 --> 00:07:14,000
把载入的纹理

91
00:07:14,000 --> 00:07:17,000
绘制到视图中

92
00:07:17,000 --> 00:07:20,000
我们来继续添加脚本的执行

93
00:07:20,000 --> 00:07:27,000
首先我们使用了一个if语句

94
00:07:27,000 --> 00:07:31,000
来检查oneTexture变量当前是否为空

95
00:07:31,000 --> 00:07:37,000
也就是我们是否已经为oneTexture变量赋值

96
00:07:37,000 --> 00:07:43,000
如果已经对oneTexture赋值

97
00:07:43,000 --> 00:07:48,000
那么我们就使用GUI.DrawTexture方法

98
00:07:48,000 --> 00:07:53,000
来对我们的纹理进行绘制

99
00:07:53,000 --> 00:07:55,000
在DrawTexture方法中

100
00:07:55,000 --> 00:08:01,000
它的第一个参数定义了纹理的位置

101
00:08:01,000 --> 00:08:05,000
此处我们使用了一个Rect结构

102
00:08:05,000 --> 00:08:10,000
第二个参数定义了要绘制的纹理

103
00:08:10,000 --> 00:08:13,000
也就是我们当前的oneTexture纹理

104
00:08:13,000 --> 00:08:18,000
第三个参数定义了纹理的缩放模式

105
00:08:18,000 --> 00:08:22,000
当我们选择StretchToFill选项时

106
00:08:22,000 --> 00:08:25,000
我们的纹理会自动进行拉伸

107
00:08:25,000 --> 00:08:33,000
使其适合此处Rect结构定义的

108
00:08:33,000 --> 00:08:38,000
120乘以120的矩形尺寸

109
00:08:38,000 --> 00:08:40,000
而第四个参数

110
00:08:40,000 --> 00:08:44,000
定义了是否打开alpha blend模式

111
00:08:44,000 --> 00:08:48,000
也就是当我们的纹理中含有alpha通道时

112
00:08:48,000 --> 00:08:52,000
我们的纹理就会变为透明模式

113
00:08:52,000 --> 00:08:57,000
第五个参数定义了纹理的宽高比例

114
00:08:57,000 --> 00:08:59,000
此处当我们使用0时

115
00:08:59,000 --> 00:09:03,000
我们将使用此纹理的默认宽高比例

116
00:09:03,000 --> 00:09:06,000
同样的在下面的if结构中

117
00:09:06,000 --> 00:09:13,000
我们首先检测allTexture数组是否为空

118
00:09:13,000 --> 00:09:15,000
若其不为空

119
00:09:15,000 --> 00:09:19,000
则我们使用一个for环循语句

120
00:09:19,000 --> 00:09:24,000
对数组中的内容进行循环

121
00:09:24,000 --> 00:09:31,000
也就是依次使用GUI.DrawTexture方法

122
00:09:31,000 --> 00:09:33,000
对它们进行绘制

123
00:09:33,000 --> 00:09:36,000
接下来我们切换回Unity中

124
00:09:36,000 --> 00:09:41,000
然后拖动脚本到当前场景的主摄像机物体上

125
00:09:41,000 --> 00:09:44,000
可以看到当我们添加脚本后

126
00:09:44,000 --> 00:09:52,000
我们的脚本就作为一个组件显示在摄像机的属性视窗中

127
00:09:52,000 --> 00:09:54,000
单击play按钮

128
00:09:54,000 --> 00:09:57,000
我们进行测试

129
00:09:57,000 --> 00:09:59,000
可以看到

130
00:09:59,000 --> 00:10:03,000
当前有两个按钮显示在视图中

131
00:10:03,000 --> 00:10:08,000
当我们单击第一个按钮时

132
00:10:08,000 --> 00:10:18,000
可以看到在Resources文件夹中的oneTexture纹理

133
00:10:18,000 --> 00:10:20,000
显示在视图中

134
00:10:20,000 --> 00:10:24,000
当我们单击第二个按钮

135
00:10:24,000 --> 00:10:26,000
loadAllTexture按钮时

136
00:10:26,000 --> 00:10:29,000
Resources文件夹中的第二个文件夹

137
00:10:29,000 --> 00:10:35,000
allTexture文件夹中的内容就显示在视图中

138
00:10:35,000 --> 00:10:37,000
其中我们可以看到

139
00:10:37,000 --> 00:10:41,000
对于带有alpha通道的纹理

140
00:10:41,000 --> 00:10:45,000
当我们打开alpha blend模式时

141
00:10:45,000 --> 00:10:52,000
也就是DrawTexture方法第四个选项选择true时

142
00:10:52,000 --> 00:10:57,000
纹理就会以透明的方式显示在视图中

143
00:10:57,000 --> 00:11:02,000
接下来我们来了解一下movie纹理

144
00:11:02,000 --> 00:11:04,000
也就是电影纹理的使用

145
00:11:04,000 --> 00:11:13,000
在Unity中movie纹理是从视频文件中产生的一系列动画纹理

146
00:11:13,000 --> 00:11:16,000
用户可以像平常资源一样

147
00:11:16,000 --> 00:11:20,000
将其放置在资源文件夹中进行导入

148
00:11:20,000 --> 00:11:24,000
当一个视频文件添加到项目中时

149
00:11:24,000 --> 00:11:30,000
它会被自动导入并被转换为ogg theora格式

150
00:11:30,000 --> 00:11:34,000
然后就可以像普通纹理那样使用

151
00:11:34,000 --> 00:11:41,000
movie纹理是通过apple quick time导入的

152
00:11:41,000 --> 00:11:43,000
因此凡是quick time支持的格式

153
00:11:43,000 --> 00:11:46,000
movie纹理都可以支持

154
00:11:46,000 --> 00:11:51,000
如.mov .mpg .mp4等

0 0
原创粉丝点击