Unity学习笔记二 - Survival Shooter Tutorial
2016-04-21 20:47
309 查看
与常见编译器相同的部分这里一律省略,我使用的Unity5.3.4
上传的工程里面_CompletedAssets里可能是个比这10课还要完整的游戏组成,不过我为了确认在我的工程中删除了 http://pan.baidu.com/s/1kVtmXy3
有问题可以给我留言
1.Prefabs 和 GameObject Instantiate
创建物体的时候Prefabs(预设体)会一个一个创建。 而连续创建一个GameObject会不断地把其加倍,可以自己实验,其机制似乎根据什么把Clone继续Clone
2.根据经验 工程中的Prefabs,Resources,Materials等文件夹名字都很重要
例如。Resources.load 是从Resources为顶级目录填写资源路径的,其他的Prefabs直接拖个建立好的物体到其中直接变成Prefab,其他也都有搜索上的意义等等。
不要乱放
3.简单拿一段PlayerMovement中的代码以注释的方式来分析下,部分提出,部分以注释的方式
(1)看到Horizontal,Vertical,到Edit-〉Project Setting-〉Input
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/05/f5a354ee5718cae18e0a24febf7e538d)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/05/fa120233ed131ff80236d61cecb84804)
打开InputManager,自己看Horizontal和Vertical下的内容,包括改变方式和敏感度等
(2)Update 和
FixedUpdate
Update根据实际帧,不稳定。
FixedUpdate跟据固定的时间间隔,不受帧波动等影响,在一些移动等和时间间隔稳定密切的地方常用。
void FixedUpdate()
{
float h = Input.GetAxisRaw ("Horizontal");
//取得Horizontal的值,其实是坐标系中x轴坐标
float v = Input.GetAxisRaw ("Vertical");
//取得Horizontal的值,其实是坐标系中在轴坐标
Move (h, v);
//向(h,0,v)方向移动,这个游戏y轴没有移动量
Turning ();
Animating (h, v);
}
void Move(float h,float v)
{
movement.Set (h, 0f, v);
//前面定义Vector3 movement;这里设置值
movement = movement.normalized * speed * Time.deltaTime;
// movement.normalized的含义应该是将向量单位化,乘上速度和每帧时间片是每帧时间段的移动距离
playerRigidbody.MovePosition (transform.position + movement);
//由于playerRigidbody = GetComponent<Rigidbody> ();本脚本绑定在物体Player上,所以取得其刚体移动到物体原位置+移动距离=帧后应到位置(transform没有类似的函数,刚体的移动方式我们后面再说,我觉得暂时这里只是记住这样好用)
}
af74
其他的我们下次再说明
上传的工程里面_CompletedAssets里可能是个比这10课还要完整的游戏组成,不过我为了确认在我的工程中删除了 http://pan.baidu.com/s/1kVtmXy3
有问题可以给我留言
1.Prefabs 和 GameObject Instantiate
创建物体的时候Prefabs(预设体)会一个一个创建。 而连续创建一个GameObject会不断地把其加倍,可以自己实验,其机制似乎根据什么把Clone继续Clone
2.根据经验 工程中的Prefabs,Resources,Materials等文件夹名字都很重要
例如。Resources.load 是从Resources为顶级目录填写资源路径的,其他的Prefabs直接拖个建立好的物体到其中直接变成Prefab,其他也都有搜索上的意义等等。
不要乱放
3.简单拿一段PlayerMovement中的代码以注释的方式来分析下,部分提出,部分以注释的方式
(1)看到Horizontal,Vertical,到Edit-〉Project Setting-〉Input
打开InputManager,自己看Horizontal和Vertical下的内容,包括改变方式和敏感度等
(2)Update 和
FixedUpdate
Update根据实际帧,不稳定。
FixedUpdate跟据固定的时间间隔,不受帧波动等影响,在一些移动等和时间间隔稳定密切的地方常用。
void FixedUpdate()
{
float h = Input.GetAxisRaw ("Horizontal");
//取得Horizontal的值,其实是坐标系中x轴坐标
float v = Input.GetAxisRaw ("Vertical");
//取得Horizontal的值,其实是坐标系中在轴坐标
Move (h, v);
//向(h,0,v)方向移动,这个游戏y轴没有移动量
Turning ();
Animating (h, v);
}
void Move(float h,float v)
{
movement.Set (h, 0f, v);
//前面定义Vector3 movement;这里设置值
movement = movement.normalized * speed * Time.deltaTime;
// movement.normalized的含义应该是将向量单位化,乘上速度和每帧时间片是每帧时间段的移动距离
playerRigidbody.MovePosition (transform.position + movement);
//由于playerRigidbody = GetComponent<Rigidbody> ();本脚本绑定在物体Player上,所以取得其刚体移动到物体原位置+移动距离=帧后应到位置(transform没有类似的函数,刚体的移动方式我们后面再说,我觉得暂时这里只是记住这样好用)
}
af74
其他的我们下次再说明
相关文章推荐
- 我是运营,我没有假期
- 肯特·贝克:改变人生的代码整理魔法
- 你应该学习哪种编程语言?
- 每个 Linux 游戏玩家都绝不想要的恼人体验
- 在 Fedora 上使用 Steam play 和 Proton 来玩 Windows 游戏
- [转]我们需要一种其他人能使用的编程语言
- Steam 让我们在 Linux 上玩 Windows 的游戏更加容易
- 如何使用 Steam Play 在 Linux 上玩仅限 Windows 的游戏
- 新一代iPad适配应用之游戏篇
- DB2编程序技巧(1)
- DB2编程序技巧 (四)
- 女人VS编程_国庆快乐
- DB2编程序技巧 (六)
- DB2编程序技巧 (三)
- DB2编程序技巧 (九)
- DB2编程序技巧 (七)
- DB2编程序小小技巧
- DB2编程序技巧 (五)
- VB实现的《QQ美女找茬游戏》作弊器实例
- DB2编程序技巧 (一)