(四)推箱子总结

推箱子游戏心得

①、如果两个碰撞器a、b的Z轴大小不同,b碰撞器的z轴大小太小则会发生该碰撞器飘起了的情况。
②、如果有1个3d箱子素材、1个2d人物图片素材,如何实现碰撞:都添加3d碰撞器,将图片上的碰撞器z轴拉大即可。
③、Physics.RayCast只能检测3d碰撞器,不能检测2d碰撞器。
Physics2D.RayCast只能检测2d碰撞器,不能检测3d碰撞器。
④、用SceneManager.LoadScene()加载场景,加载后新场景里同样的东西也会重新开始Start(),全局静态变量不会重新定义
⑤、系统定义的函数首字母都是大写
⑥、想在多个按钮上添加同一个脚本,脚本自动分析点击的是哪个按钮,可以在Start ()中加入
gameObject.GetComponent().onClick.AddListener(OnItemClick);按钮的处理事件不需要添加,当按钮被按下时监听到点击事件,调用OnItemClick().
⑦、unity中退出游戏有两种方法:
1、Application.Quit()–游戏发布后可以退出
2、UnityEditor.EditorApplication.isPlaying = false;
–编辑器中退出游戏
⑧、gameObject.GetComponentInChildren(),找到本物体和子对象中第一个Text组件。
⑨、Physics2D.Raycast(this.transform.position, target, 1f, 1 << LayerMask.NameToLayer(“Brick”))
只与“Brick”层发生射线检测
⑩、如果人物前有个箱子A,箱子前还有一个箱子B,两个箱子的LayerMask相同,人物通过射线怎么找到是否有箱子B?可以将射线起点移到箱子B箱子里,射线长度设置短一些,别射出箱子B的碰撞器外,这样可以判断。
11、Vector2、Vector3的变量都可以直接乘上一个数字,如(0.2f),生成一个新数组
12、2d的碰撞器不管z轴是否相同,只要x,y有重叠部分都发生碰撞.
13、有多个不同的终点,如何判断所有的终点上都有箱子?
先用一个脚本定义两个静态int变量,在Start()中用GameObject.FindGameObjectsWithTag(“endPoint”).Length;找出终点个数,在所有终点上加个触发器,再加个脚本(即胜利判定脚本),放在所有终点上,在OnTriggerEnter2D()中判断进入的是不是箱子,是箱子,则一个静态变量+1,OnTriggerExit2D()判断出去的是箱子,则-1,当两个静态变量相同则胜利(Update()中调用胜利判定函数).
14、按钮上添加的函数不能是静态函数,如果需要用静态函数,可以定义一个函数,在函数里调用该静态函数。

参考文档:
Unity native2d教程第四课:2D刚体和碰撞体介绍:
http://www.360doc.com/content/16/0805/14/12282510_580984960.shtml

Unity2D研究院之精灵Sprite之间的碰撞事件(三)
http://www.xuanyusong.com/archives/3262

unity 2d碰撞/ui组件碰撞
http://www.cnblogs.com/lanrenqilanming/p/6737998.html

Transform 变换
http://wiki.ceeger.com/script/unityengine/classes/transform/transform

【unity3d游戏开发之基础篇】unity3d射线的原理用法以及一个利用射线实现简单拾取的小例子
https://www.cnblogs.com/xuling/archive/2013/03/04/2943154.html

Raycast光线投射,Linecast,RaycastAll
http://blog.csdn.net/u013490128/article/details/53317996

Difference between Linecast and Raycast
https://answers.unity.com/questions/848189/difference-between-linecast-and-raycast.html

Raycast 射线投射
http://wiki.ceeger.com/script/unityengine/classes/navmesh/navmesh.raycast

unity3d问题集 <3> 对Physics.Raycast和Ray(射线)的理解
http://www.manew.com/blog-42778-2527.html

Unity3D中Layers和LayerMask解析
https://www.jianshu.com/p/89d5252a8b74

Physics2D.Linecast 线投射
http://wiki.ceeger.com/script/unityengine/classes/physics2d/physics2d.linecast

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值