20231030GJ遇见问题总结

1.关于刚体碰撞

刚体碰撞分为OnCollisionEnter()方法和OnTriggerEnter()方法,其中: 

  1. OnCollisionEnter()方法必须满足以下条件:
    - 碰撞双方都必须带有碰撞箱,而且碰撞主动方必须带有RigidBody组件
    - RigidBody组件必须不勾选Kinematic属性
    - 双方都不能勾选IsTrigger属性
  2. OnTriggerEnter()方法必须满足以下条件:
    - 碰撞双方都必须带有碰撞箱,而且碰撞主动方必须带有RIgidBody组件
    - RigidBody可以不勾选Kinematic属性
    - 被碰撞方必须带有Istrigger属性

2.关于协程

协程Coroutine的进程一般是一个返回值为IEnumerator的函数,在执行完一个循环后执行yield return 操作。需要调用一个协程时,不能直接调用该函数,而需要使用StartCoroutine()方法。当需要中断一个协程时,在协程内部使用yield break;

3.关于Input类

Input类含有许多关于处理鼠标和键盘输入的方法和属性,包括进入,退出,悬停,点击,松开等等。如果使用键盘输入,输入Input.Getkey查询相关方法。如果使用鼠标输入,使用Input.GetMouse查询相关方法。同时Monobehaviour类也提供了OnMouseDrag(),OnMouseDown()和OnMouseUp()等方法,这些方法都伴随FixedUpdate()进行。

4.关于git

本次版本管理使用Github Desktop管理,但是由于校园网等问题导致配置git花费了不少的的时间,比如处理分支冲突的问题花费了不少时间,一般遇到这种情况可以直接使用Stash changes或者直接Discard,或者直接手动删除(换到别的目录也可)冲突的文件然后git reset --soft(hard) HEAD~n也可。如果实在无可奈何了,可以使用最终大法删库然后重新git clone。

总而言之,在push之前可以先commit保存进度,然后必须pull一下获取进度,如果出现了冲突请在本地手动处理,不要把conflict带到git。

5.关于Transform类

Transform类描述了对象的平动和转动两类,其中关于旋转的描述,因为Rotation传入的是一个四元数,所以和场景里看到的三个参数不一样,在获取参数时应该使用.EulerAngle属性。同理,在更改rotation和position属性时修改单一坐标值是不应该的,应该传入一个新的Vector3类(Quaternion类)

6.总结

本次GJ未能达成既定要求是有原因的。没有实现单个物体的高内聚低耦合是一个很重要的原因,这使得代码拖沓而且可读性大大降低了,维护比较困难;另外,策划的需求相对过多也是一个原因,程序人数过少了,而且没有可以套用的写好的代码;最后则是和美术工作对接的不成功,应该尽早实现和美术的对接,应该是:美术画出的作品立刻套用到场景中,可以及时发现问题,减少后期修改代码的时间。

期待下次GJ能取得更好的成绩!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值