unity3d官方教学示例之SpaceShooter学习笔记

说明:
    目前已经参与制作了两个unity游戏项目,但是两次项目制作方法却很不一样,所以想了解一下官方是怎么样的制作方法。

1.FixedUpdate()

官方说明:FixedUpdate should be used instead of Update when dealing with Rigidbody。For example when adding a force to a rigidbody, you have to apply the force every fixed frame inside FixedUpdate instead of every frame inside Update.

2.public GameObject go拖拽到引用,不建议这样做,容易丢失引用

获取某个游戏对象的引用方法:
1.常用transform.Find(),不限
2.GameObject.Find(),只能获取active = true的物体
3.FindWihTag()

3.Rigibody设置

注意的选项:isTrigger是(触发的OnTriggerEnter()),use gravity否
遇到过的问题:use gravity是的时候,会让物体一直向下移动(容易被忽略,移动很小)

4.MeshCollider

IsTrigger是,Convex是(否时会报错),Mesh 模型的mesh拖拽到这里

5.功能的实现尽可能分成各个脚本文件

不要实现在一个文件里,方便复用组合,不要怕脚本创建太多

6.背景图片滚动的shader实现

关键代码:
    _Speed("Speed",Range(0,1)) = 0.1
    .
    half _Speed;
    .
    void surf (Input IN, inout SurfaceOutputStandard o) {
        .
        IN.uv_MainTex.y += _Time.y*_Speed;
        .
        .
        .
    }

7.游戏程序功能的设计思想

unity采用的是组件的设计思想,需要什么功能挂载什么脚本,将各个功能分散在各个脚本里实现。
所以游戏里分析各个物体需要什么功能,该分散在哪些脚本里实现,哪些功能是物体共有的,哪些功能是物体特有的,哪些物体挂在什么脚本,哪些功能没必要分开实现,都需要考量。如果程序功能设计的好,游戏做起来会特别容易。
游戏里的物体就像现实中的物体,这和对象的设计思想是一致的,物体都有自己的多个属性,有改变自己属性的方法(所谓的功能)。
当分不清两个物体的关系和功能实现划分时候,我都会思考现实中两个物体的关系该是什么样子的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值