016-脚本及变量 srt字幕文件

1
00:00:00,000 --> 00:00:05,000
大家好 物迎大家来到英宝通unity学院

2
00:00:05,000 --> 00:00:08,000
今天的课程是unity4.0公开课的第四讲

3
00:00:08,000 --> 00:00:10,000
unity脚本的使用

4
00:00:10,000 --> 00:00:14,000
在这一讲中为大家讲述7方面的内容

5
00:00:14,000 --> 00:00:16,000
包括脚本及变量

6
00:00:16,000 --> 00:00:18,000
游戏对象组件访问

7
00:00:18,000 --> 00:00:21,000
游戏对象访问操作控制

8
00:00:21,000 --> 00:00:23,000
脚本时间控制

9
00:00:23,000 --> 00:00:24,000
随机数的使用

10
00:00:24,000 --> 00:00:26,000
C#脚本编写

11
00:00:26,000 --> 00:00:28,000
以及脚本通信及调试

12
00:00:28,000 --> 00:00:31,000
接下来开始今天的课程

13
00:00:31,000 --> 00:00:39,000
首先我们来看一下unity中脚本、变量的使用

14
00:00:39,000 --> 00:00:44,000
在unity中可以使用3种类型的脚本

15
00:00:44,000 --> 00:00:51,000
这三种类型依次是javascript、c#以及boo脚本

16
00:00:51,000 --> 00:00:56,000
一般地前面两种类型使用得要多一些

17
00:00:56,000 --> 00:01:02,000
对于脚本来说可以直接在unity的内部进行创建

18
00:01:02,000 --> 00:01:10,000
在创建新脚本时 直接在项目视窗中

19
00:01:10,000 --> 00:01:12,000
单击Create按钮

20
00:01:12,000 --> 00:01:16,000
在其中选择创建相应类型的脚本

21
00:01:16,000 --> 00:01:25,000
或者也可以在主菜单栏中选择Assets

22
00:01:25,000 --> 00:01:28,000
Create来创建相应类型的脚本

23
00:01:28,000 --> 00:01:34,000
此处我们首先创建一个javascript类型的脚本

24
00:01:34,000 --> 00:01:42,000
一般地在项目文件夹中指定新创建的脚本的保存位置

25
00:01:42,000 --> 00:01:48,000
例如可以先选择一个文件夹

26
00:01:48,000 --> 00:01:56,000
然后创建脚本 此时新创建的脚本就会保存在指定的文件夹中

27
00:01:56,000 --> 00:01:58,000
若我们没有指定文件夹

28
00:01:58,000 --> 00:02:05,000
则新创建的脚本会自动保存在项目的Assets根目录下

29
00:02:05,000 --> 00:02:10,000
其默认名称为NewBehaviourScript

30
00:02:10,000 --> 00:02:12,000
也就是新行为脚本

31
00:02:12,000 --> 00:02:15,000
在脚本中我们可以看到

32
00:02:15,000 --> 00:02:18,000
脚本中包含有两个函数

33
00:02:18,000 --> 00:02:22,000
一个是Start函数另一个是Update函数

34
00:02:22,000 --> 00:02:27,000
Start函数会在脚本激活时执行

35
00:02:27,000 --> 00:02:30,000
且只会执行一次

36
00:02:30,000 --> 00:02:34,000
常用于脚本变量的初始化操作

37
00:02:34,000 --> 00:02:43,000
而Update函数中则主要放置实际要处理的任务或逻辑等

38
00:02:43,000 --> 00:02:51,000
例如我们可以在Update函数中添加一个打印语句

39
00:02:51,000 --> 00:03:03,000
print("Hello World");

40
00:03:03,000 --> 00:03:12,000
在脚本执行时unity会在控制窗口显示脚本的执行结果

41
00:03:12,000 --> 00:03:15,000
也就是会在控制窗口中显示Hello World

42
00:03:15,000 --> 00:03:19,000
保存脚本然后回到unity中

43
00:03:19,000 --> 00:03:25,000
单击Play按钮

44
00:03:25,000 --> 00:03:33,000
我们并没有在控制视窗中看到执行结果

45
00:03:33,000 --> 00:03:39,000
这是因为在unity中要使一个脚本执行

46
00:03:39,000 --> 00:03:44,000
必须把脚本连接到场景中一个激活的物体中

47
00:03:44,000 --> 00:03:48,000
接下来我们创建一个立方体物体

48
00:03:48,000 --> 00:03:53,000
在创建之前我们再次单击Play按钮

49
00:03:53,000 --> 00:03:55,000
退出游戏执行

50
00:03:55,000 --> 00:04:02,000
然后在主菜单栏中创建立方体物体

51
00:04:02,000 --> 00:04:13,000
然后在项目视图中拖动脚本到立方体物体的属性编辑器中

52
00:04:13,000 --> 00:04:20,000
或者拖动到层次视图的立方体物体上

53
00:04:20,000 --> 00:04:25,000
也可以直接拖动到场景视图中的立方体物体上

54
00:04:25,000 --> 00:04:30,000
这样来完成脚本的添加

55
00:04:30,000 --> 00:04:40,000
在我们添加脚本后 脚本会显示在属性编辑器中的脚本组件中

56
00:04:40,000 --> 00:04:43,000
单击Play按钮进行测试

57
00:04:43,000 --> 00:04:50,000
可以在unity界面的底部看到语句的执行结果

58
00:04:50,000 --> 00:04:53,000
当我们打开控制视窗时

59
00:04:53,000 --> 00:05:01,000
可以看到控制视窗中会不停地显示语句的执行结果

60
00:05:01,000 --> 00:05:05,000
由此了解到

61
00:05:05,000 --> 00:05:08,000
Update函数的一个重要特性

62
00:05:08,000 --> 00:05:17,000
Update函数中的语句会在游戏的每一帧都执行

63
00:05:17,000 --> 00:05:23,000
因此它会不停地显示print语句的执行结果

64
00:05:23,000 --> 00:05:32,000
接下来在Update函数中添加一些操纵物体的代码

65
00:05:32,000 --> 00:05:36,000
来使我们更好地理解Update函数的这种特性

66
00:05:36,000 --> 00:05:40,000
切换到脚本编辑器中

67
00:05:40,000 --> 00:05:45,000
然后在Update函数中添加一个transform.Rotate语句

68
00:05:45,000 --> 00:05:54,000
在此语句中transform是对cube物体的transform的引用

69
00:05:54,000 --> 00:05:59,000
也就是此处的Transform组件

70
00:05:59,000 --> 00:06:05,000
而Rotate函数是Transform组件中的旋转函数

71
00:06:05,000 --> 00:06:14,000
而括号中的三个数值分别代表cube物体在x、y、z三个轴上的旋转量

72
00:06:14,000 --> 00:06:19,000
而deltaTime是时间类中的一个变量

73
00:06:19,000 --> 00:06:25,000
它代表了unity执行上一帧所花费的时间

74
00:06:25,000 --> 00:06:31,000
此处我们只需要知道在乘以了deltaTime变量以后

75
00:06:31,000 --> 00:06:38,000
我们的旋转速度与计算机的运行速度无关

76
00:06:38,000 --> 00:06:43,000
也就是无论用户的计算机每秒渲染多少帧

77
00:06:43,000 --> 00:06:49,000
旋转语句在不同渲染速度的用户机器上

78
00:06:49,000 --> 00:06:51,000
其执行效果都是相同的

79
00:06:51,000 --> 00:06:53,000
也就是每秒5度

80
00:06:53,000 --> 00:06:59,000
这样当我们的脚本在不同速度的计算机上运行时

81
00:06:59,000 --> 00:07:03,000
都可以确保具有相同的运行效果

82
00:07:03,000 --> 00:07:08,000
保存脚本然后回到unity中

83
00:07:08,000 --> 00:07:12,000
单击Play按钮进行测试

84
00:07:12,000 --> 00:07:18,000
可以看到立方体以每秒5度的速度进行旋转

85
00:07:18,000 --> 00:07:25,000
但如果我们想要改变立方体的旋转速度时

86
00:07:25,000 --> 00:07:35,000
我们可以回到脚本中 在语句中使用不同的速度值

87
00:07:35,000 --> 00:07:41,000
但这样不得不退出播放模式然后回到脚本

88
00:07:41,000 --> 00:07:45,000
在修改之后再重新进行播放

89
00:07:45,000 --> 00:07:49,000
来查看立方体的旋转速度

90
00:07:49,000 --> 00:07:56,000
此时可以使用另一种方法 也就是使用变量的方法

91
00:07:56,000 --> 00:08:04,000
这样我们可以在播放模式下来实时地修改立方体的旋转速度

92
00:08:04,000 --> 00:08:08,000
此时我们可以在脚本中添加一个变量

93
00:08:08,000 --> 00:08:20,000
var speed = 5.0;

94
00:08:20,000 --> 00:08:28,000
然后在语句中使用此变量

95
00:08:28,000 --> 00:08:33,000
保存脚本回到unity中

96
00:08:33,000 --> 00:08:37,000
选择此立方体

97
00:08:37,000 --> 00:08:43,000
可以看到在脚本组件中我们的变量也显示在其中

98
00:08:43,000 --> 00:08:53,000
进入播放模式 我们可以在属性编辑器中来实时地改变数值

99
00:08:53,000 --> 00:09:04,000
可以使用拖动的方式也可以直接在输入栏中输入数值然后回车确认

100
00:09:04,000 --> 00:09:07,000
此时可以明显地看出

101
00:09:07,000 --> 00:09:11,000
立方体的旋转速度变快

102
00:09:11,000 --> 00:09:19,000
通过变量的使用我们可以实时地测试不同的变量数值

103
00:09:19,000 --> 00:09:21,000
语句的运行效果

104
00:09:21,000 --> 00:09:24,000
当我们退出播放模式时

105
00:09:24,000 --> 00:09:30,000
可以看到变量数值仍然保持原数值

106
00:09:30,000 --> 00:09:35,000
此时如果对测试的数值满意

107
00:09:35,000 --> 00:09:40,000
可以修改原数值为测试的数值

108
00:09:40,000 --> 00:09:44,000
这样在我们再次进入播放模式时

109
00:09:44,000 --> 00:09:49,000
就会使用此处的新数值

110
00:09:49,000 --> 00:09:53,000
另外通过变量的使用

111
00:09:53,000 --> 00:09:57,000
可以在多个物体中使用相同的脚本

112
00:09:57,000 --> 00:10:02,000
而每个脚本又具有不同的运行效果

113
00:10:02,000 --> 00:10:08,000
例如我们可以创建另一个立方体物体

114
00:10:08,000 --> 00:10:17,000
然后在此物体中使用相同的脚本

115
00:10:17,000 --> 00:10:24,000
但是通过变量的使用我们可以使此立方体具有不同的旋转速度

116
00:10:24,000 --> 00:10:31,000
这样我们就可以在多个物体中重用脚本

117
00:10:31,000 --> 00:10:36,000
而通过变量的使用每个脚本又都具有不同的执行效果

118
00:10:36,000 --> 00:10:41,000
另外如果物体中存在有其他组件

119
00:10:41,000 --> 00:10:46,000
我们也可以像引用Transform组件一样

120
00:10:46,000 --> 00:10:51,000
直接在脚本中引用相应的组件

121
00:10:51,000 --> 00:10:55,000
但前提是此组件必须存在

122
00:10:55,000 --> 00:11:01,000
例如我们在立方体物体中添加一个刚体组件

123
00:11:01,000 --> 00:11:14,000
添后我们可以在脚本中使用下面的语句来直接引用刚体组件

124
00:11:14,000 --> 00:11:19,000
并修改刚体组件中的质量属性

125
00:11:19,000 --> 00:11:24,000
使质量属性在0到2之间发生变化

126
00:11:24,000 --> 00:11:33,000
然后通过Debug.Log语句把刚体的质量显示在控制视窗中

127
00:11:33,000 --> 00:11:38,000
回到unity中 我们可以看到

128
00:11:38,000 --> 00:11:49,000
随着程序的执行 刚体的质量会不断地发生变化

129
00:11:49,000 --> 00:11:56,000
而在控制视窗中也显示出当前刚体的质量值

130
00:11:56,000 --> 00:12:01,000
而游戏视窗中的立方体由于重力的作用

131
00:12:01,000 --> 00:12:04,000
它会一直坠落

132
00:12:04,000 --> 00:12:09,000
在本节中我们主要介绍了脚本的使用

133
00:12:09,000 --> 00:12:17,000
在使用脚本时 我们要记得把脚本连接到一个物体中

134
00:12:17,000 --> 00:12:20,000
另外我们可以通过变量的使用

135
00:12:20,000 --> 00:12:23,000
来提高脚本的重用性

136
00:12:23,000 --> 00:12:27,000
以及测试脚本的运行效果

137
00:12:27,000 --> 00:12:34,000
在下一节中主要了解如何通过脚本来操纵游戏物体

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值