学习Unity3D之Unity基本操作。
来源:互联网 发布:御马脚垫 知乎 编辑:程序博客网 时间:2024/05/20 15:41
欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌。
一、键盘判断。
GetKey:当通过名称指定的按键被用户按住时返回true
GetKeyDown:当用户按下指定名称的按键时的那一帧返回true。
GetKeyUp:在用户释放给定名字的按键的那一帧返回true。
GetAxis(“Horizontal")和GetAxis(“Verical”) :用方向键或WASD键来模拟-1到1的平滑输入
代码:
if (Input.GetKey(“up”)) {
print("up arrow key is held down");
}
if (Input.GetKey(“down”)) {
print("down arrow key is held down");
}
If(Input.GetKeyDown(KeyCode.Escape)){
print(“按下Esc键”);
}
If(Input.GetKeyDown(KeyCode.A)){
print(“按下A键”);
}
If(Input.GetKeyUp(KeyCode.Escape)){
print(“松开Esc键”);
}
If(Input.GetKeyUp(KeyCode.D)){
print(“松开D键”);
}
GetAxis是float型,不能用if判断
print (Input .GetAxis ("Horizontal"));
print (Input.GetAxis ("Vertical"));
二、鼠标判断。
GetKey:当通过名称指定的按键被用户按住时返回true
GetKeyDown:当用户按下指定名称的按键时的那一帧返回true。
GetKeyUp:在用户释放给定名字的按键的那一帧返回true。
GetAxis(“Horizontal")和GetAxis(“Verical”) :用方向键或WASD键来模拟-1到1的平滑输入
代码:
if (Input.GetKey(“up”)) {
print("up arrow key is held down");
}
if (Input.GetKey(“down”)) {
print("down arrow key is held down");
}
If(Input.GetKeyDown(KeyCode.Escape)){
print(“按下Esc键”);
}
If(Input.GetKeyDown(KeyCode.A)){
print(“按下A键”);
}
If(Input.GetKeyUp(KeyCode.Escape)){
print(“松开Esc键”);
}
If(Input.GetKeyUp(KeyCode.D)){
print(“松开D键”);
}
GetAxis是float型,不能用if判断
print (Input .GetAxis ("Horizontal"));
print (Input.GetAxis ("Vertical"));
二、鼠标判断。
GetButton:根据按钮名称返回true当对应的虚拟按钮被按住时。
GetButtonDown:在给定名称的虚拟按钮被按下的那一帧返回true。
GetButtonUp:在用户释放指定名称的虚拟按钮时返回true。
if(Input.GetButton("Fire1")){
print(“按下鼠标左键”);
}
if (Input.GetMouseButton(0)) {
Debug.Log("按下鼠标左键");
}
if (Input.GetMouseButton(1)) {
Debug.Log("按下鼠标右键");
}
if (Input.GetMouseButton(2)) {
Debug.Log("按下鼠标中键");
}
三、项目工程分层设计。
Scenes—— 存放场景
Scripts—— 存放脚本
Resources—— 资源包
Textures—— 贴图
Materials—— 材质(主要为.mat文件)
Audios—— 声音
Models—— 模型(存放FBX等文件)
四、Mono Develop脚本编辑器介绍。
(Unity 自带脚本编辑器)
1、Unity3d目前支持三种语言的脚本程序,包括c#,JavaScript,boo;其中使用最多为c#。
注意:
(1)项目运行过程中的修改不会保存
(2)脚本只能依附于游戏对象或由其他脚本调用才能运行
(3)一个脚本可以放在多个游戏对象上面,是多个实例
(4)一个脚本的多个实例和其他脚本之间互不干扰
2、初始化不要放在构造函数中,而是放在start()方法中。
3、放到游戏对象中的脚本(实例化)可以在Inspector中修改属性,gett写法属性不被识别,直接public字段就能当属性用,不写修饰符就是私有private
五、创建、克隆、销毁游戏对象。
程序(动态)创建游戏对象
eg:
GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
cube.name = "cube1";//设定名字
cube.renderer.material.color = Color.red;
程序(动态)克隆对象
eg:
GameObject obj = (GameObject)Instantiate(cube);
程序(动态)销毁对象
eg:
Destroy(obj,1);
特点:
1、动态创建出来的对象运行时在Hierarchy中可以看到。
2、克隆游戏对象产生复制对象的效率高,调用instantiate来生成对象,Destroy(obj)是立即销毁游戏对象。
3、动态添加脚本的方法:只要把脚本名称传给AddComponen即可
六、给游戏对象添加名称、刚体、碰撞器。
1、给游戏物体添加名为FoobarScript的脚本
GameObject.AddComponent ("FoobarScript");
2、给游戏物体添加刚体
Rigidbody rb = GameObject.AddComponent ("Rigidbody");
3、给游戏物体添加球体碰撞器
SphereCollider sc = GameObject.AddComponent ("SphereCollider");
七、常用核心类。
(1)通过名称来查找:
GameObject player = new GameObject("Player");
GameObject go=GameObject.Find(“Player”);
(2)通过tag标签获取单个游戏对象:
GameObject go=GameObject.FindWithTag(“Player”);
GameObject go=GameObject..FindGameObjectWithTag (“Player”);
(3)通过游戏标签获取多组游戏对象:
GameObject[] go=GameObject.FindGameObjectsWithTag (“Player”);
八、Time类。
属性: deltaTime
说明:
方法Update(): 受当前渲染效率的影响,有时快有时慢,帧率会变化,Update被调用的时间间隔就发生变化,Time. deltaTime获得自上次Update一来经历的时间,只应该在Update()中使用deltaTime ,OnGUI、FiexedUpdate等里面不要用。
按下A键,游戏物体向左移动;按下D键,游戏物体向右移动
float move_h=0;
if (Input.GetKey (KeyCode.A)) {
move_h-=Time.deltaTime;
}
if (Input.GetKey (KeyCode.D)) {
move_h+=Time.deltaTime;
}
transform.Translate(new Vector3(move_h,0,move_v));
九、Random类(随机数)。
float a=Random.value;
int b=Random.Range(0,100) 包括最大和最小
float c=Random.Range(0.0f,1.0f); 包括最小但不包括最大
十、Yield。
Yield语句是一种特殊类型的Return(返回)语句,它可以确保函数在下一次被执行时,不是从头开始,而是从Yield语句处开始。
可以实现将一段程序延迟执行或者将其各个部分分布在一个时间段内连续执行。
eg:
void Start () {
print("Start开始");
StartCoroutine(Do());
print("Do调用后");
}
IEnumerator Do()
{
print("Do开始");
yield return new WaitForSeconds(3.0f);
print("暂停3秒后");
}
十一、消息传递函数。
Message相关有3条指令:
SendMessage ("函数名",参数,SendMessageOptions) //GameObject自身的Script
BroadcastMessage ("函数名",参数,SendMessageOptions) //自身和子Object的Script
SendMessageUpwards ("函数名",参数,SendMessageOptions) //自身和父Object的Script
GetButtonDown:在给定名称的虚拟按钮被按下的那一帧返回true。
GetButtonUp:在用户释放指定名称的虚拟按钮时返回true。
if(Input.GetButton("Fire1")){
print(“按下鼠标左键”);
}
if (Input.GetMouseButton(0)) {
Debug.Log("按下鼠标左键");
}
if (Input.GetMouseButton(1)) {
Debug.Log("按下鼠标右键");
}
if (Input.GetMouseButton(2)) {
Debug.Log("按下鼠标中键");
}
三、项目工程分层设计。
Scenes—— 存放场景
Scripts—— 存放脚本
Resources—— 资源包
Textures—— 贴图
Materials—— 材质(主要为.mat文件)
Audios—— 声音
Models—— 模型(存放FBX等文件)
四、Mono Develop脚本编辑器介绍。
(Unity 自带脚本编辑器)
1、Unity3d目前支持三种语言的脚本程序,包括c#,JavaScript,boo;其中使用最多为c#。
注意:
(1)项目运行过程中的修改不会保存
(2)脚本只能依附于游戏对象或由其他脚本调用才能运行
(3)一个脚本可以放在多个游戏对象上面,是多个实例
(4)一个脚本的多个实例和其他脚本之间互不干扰
2、初始化不要放在构造函数中,而是放在start()方法中。
3、放到游戏对象中的脚本(实例化)可以在Inspector中修改属性,gett写法属性不被识别,直接public字段就能当属性用,不写修饰符就是私有private
五、创建、克隆、销毁游戏对象。
程序(动态)创建游戏对象
eg:
GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
cube.name = "cube1";//设定名字
cube.renderer.material.color = Color.red;
程序(动态)克隆对象
eg:
GameObject obj = (GameObject)Instantiate(cube);
程序(动态)销毁对象
eg:
Destroy(obj,1);
特点:
1、动态创建出来的对象运行时在Hierarchy中可以看到。
2、克隆游戏对象产生复制对象的效率高,调用instantiate来生成对象,Destroy(obj)是立即销毁游戏对象。
3、动态添加脚本的方法:只要把脚本名称传给AddComponen即可
六、给游戏对象添加名称、刚体、碰撞器。
1、给游戏物体添加名为FoobarScript的脚本
GameObject.AddComponent ("FoobarScript");
2、给游戏物体添加刚体
Rigidbody rb = GameObject.AddComponent ("Rigidbody");
3、给游戏物体添加球体碰撞器
SphereCollider sc = GameObject.AddComponent ("SphereCollider");
七、常用核心类。
(1)通过名称来查找:
GameObject player = new GameObject("Player");
GameObject go=GameObject.Find(“Player”);
(2)通过tag标签获取单个游戏对象:
GameObject go=GameObject.FindWithTag(“Player”);
GameObject go=GameObject..FindGameObjectWithTag (“Player”);
(3)通过游戏标签获取多组游戏对象:
GameObject[] go=GameObject.FindGameObjectsWithTag (“Player”);
八、Time类。
属性: deltaTime
说明:
方法Update(): 受当前渲染效率的影响,有时快有时慢,帧率会变化,Update被调用的时间间隔就发生变化,Time. deltaTime获得自上次Update一来经历的时间,只应该在Update()中使用deltaTime ,OnGUI、FiexedUpdate等里面不要用。
按下A键,游戏物体向左移动;按下D键,游戏物体向右移动
float move_h=0;
if (Input.GetKey (KeyCode.A)) {
move_h-=Time.deltaTime;
}
if (Input.GetKey (KeyCode.D)) {
move_h+=Time.deltaTime;
}
transform.Translate(new Vector3(move_h,0,move_v));
九、Random类(随机数)。
float a=Random.value;
int b=Random.Range(0,100) 包括最大和最小
float c=Random.Range(0.0f,1.0f); 包括最小但不包括最大
十、Yield。
Yield语句是一种特殊类型的Return(返回)语句,它可以确保函数在下一次被执行时,不是从头开始,而是从Yield语句处开始。
可以实现将一段程序延迟执行或者将其各个部分分布在一个时间段内连续执行。
eg:
void Start () {
print("Start开始");
StartCoroutine(Do());
print("Do调用后");
}
IEnumerator Do()
{
print("Do开始");
yield return new WaitForSeconds(3.0f);
print("暂停3秒后");
}
十一、消息传递函数。
Message相关有3条指令:
SendMessage ("函数名",参数,SendMessageOptions) //GameObject自身的Script
BroadcastMessage ("函数名",参数,SendMessageOptions) //自身和子Object的Script
SendMessageUpwards ("函数名",参数,SendMessageOptions) //自身和父Object的Script
0 0
- 学习Unity3D之Unity基本操作。
- Unity学习之数据库基本操作
- Unity之Unity基本操作
- Unity3D学习之------------------------初探Unity
- Unity3D学习之(数据库的基本操作)
- unity学习之列的基本操作和集合
- 蓝鸥Unity开发学习路线之Unity3D的基本界面介绍
- Unity3D 学习笔记(一) 基本操作
- Unity3D 学习教程 6 基本操作
- unity之数据库的基本操作
- Unity3D学习之(列的基本操作和约束以及泛型集合)
- 学习Unity3D之列的基本操作、约束和ArrayList类。
- [unity基础知识]之Unity3d之Vector3 学习与应用
- unity学习之数据类型和基本运算
- Unity学习基本脚本之接口
- unity3d---数据库基本操作
- Unity3D学习之 ------------------------ "Hello Unity"控制角色移动
- unity学习之Unity3D 脚本常用方法快速参考
- 使用Drawable资源之使用LayerDrawable资源
- gdb调试stl
- Spring中数据源和数据库连接池配置的几种方法
- MP4V2 录制mp4(h264+aac) 接口介绍
- 关于定制的viewpagerindicator,实现特殊效果
- 学习Unity3D之Unity基本操作。
- jQueryEasyUI Messager基本使用
- iOS 之Core Data持久化存储
- MySql按周,按月,按日分组统计数据
- 逻辑表达式化为真值表
- iOS 开发学习路径的一些建议
- SQL储存过程学习
- Request和Response
- Linux下PHP开启Oracle支持(oci8)