Unity 子弹移动以及碰撞条件】的更多相关文章

一.子弹移动 游戏物体移动最主要的是获取一个刚体组件,再对这个刚体组件添加一个向前的力: 具体代码: public class BulletCtrl : MonoBehaviour { ; public float speed = 1000.0F; void Start() { GetComponent<Rigidbody>().AddForce(transform.forward * speed); } } 二.设置物理引擎属性 Edit--->Project Settings---&…
自制Unity小游戏TankHero-2D(4)关卡+小地图图标+碰撞条件分析 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的.仅为学习Unity之用.图片大部分是自己画的,少数是从网上搜来的.您可以到我的github页面(https://github.com/bitzhuwei/TankHero-2D)上得到工程源码. 本篇主要记录关卡解析器.小地图图标和对碰撞的原理的探索,需要耐心分析. 关卡解析器 在…
这几天为了准备面试,所以决定对平时学习中的盲点扫盲一下,首先想到的就是物理碰撞.以前没有好好研究过,一直模糊不清,到底什么条件下才可以产生物理碰撞呢?只要其中一个有Rigidbody就可以了吗?所以进行了下面的实验. 以下内容参考了Unity圣典的组件手册. ----------------------------------------------------------------------------分割线-----------------------------------------…
子弹系统和粒子系统比较类似,为了创建和五花八门的子弹,例如追踪,连续继承,散弹等,需要一个拥有众多参数的子弹生成器,这里叫它Shooter好了. Shooter负责把玩各类子弹造型和参数,创建出子弹,创建完了之后接下来就交给子弹自己来管理自己了. 所以,一个子弹系统包含: 1.ShooterSystem类 一个能生成各种类型子弹的发射器. 2.Bullet类 按照给定的初始参数不断向前飞行的子弹个体. 先思考每一个单独的子弹需要有哪些物理参数: //目标 public GameObject Ta…
上篇文章实现了坦克与地图碰撞的检测, 这篇我们继续完成子弹和地图的碰撞检测. 1.先设计一个子弹类Bullet,如下所示: class Bullet : public CCSprite { public: Bullet(); ~Bullet(); static Bullet* createBulletWithTank(Tank* tank); void initBulletWithTank(Tank* tank); bool fire(); virtual void update(float d…
物体A,物体B(都含有collider组件) collider触发条件:A和B至少一方是  未勾选is Kinematic的rigidbody,且都未勾选 is trigger.当只有一方是rigidbody时,必须含有rigidbody组件的一方主动触碰(一个没有rigidbody组件的物体去触碰有rigidbody组件的物体,是不会触发碰撞的). trigger触发条件:A和B至少一方是rigidbody,且至少一方有勾选 is trigger. 官方链接:http://docs.unity…
概念 静态碰撞体(Static Collider):物体勾选为静态Static,有Collider组件,无Rigidbody组件. 静态碰撞体的陷阱 Unity在游戏初始化时,会把所有的静态碰撞体合并为一个很大的Collider,Unity会认为这些物体在游戏中是不能移动的.但是若在游戏中不小心移动了这些静态碰撞体的位置(它们是可以被移动的),那么会导致一个严重的性能问题,所有那些与被移动的静态碰撞体合并到一起的其他静态碰撞体重新被计算. 所以在游戏中不要对静态碰撞体进行移动.禁用disable…
虽然最近Unity2018版本推出了自己的瓦片地图,但是这个瓦片地图有点BUG,在场景内把瓦片地图铺好做成预制体,动态生成的时候居然丢失了碰撞体,于是我决定还是使用Tiled软件绘制地图并使用Tiled2Unity插件导入项目 Tiled下载地址 Tiled2Unity下载地址 给瓦片地图添加碰撞体 打开一个已经画好的地图(画的丑别介意), 现在我需要给树根加上碰撞体,防止角色走到上面去(角色的碰撞体在脚掌) 打开图块编辑器 选择一个图块,可以看到图块碰撞编辑器有几种工具 这里我们选择矩形工具,…
在Unity中,玩家处于不同的状态,要求的碰撞框的 位置/大小/方向 会有所改变,怎么动态的修改碰撞框呢? 下面是Capsure Collider(胶囊体)的修改: CapsuleCollider.direction=0,1 or 2; 这里0,1,2,分别对应X,Y,Z方向 怎么将中心/半径/高度/方向一起修改呢?这里我设置了一个方法 /// <summary> /// 改变碰撞框的大小和位置 /// </summary> /// <param name="cen…
可以通过给对象指定layer,实现相同.不同layer之间碰撞的自由配置,比如我们想让怪物之间不碰撞,英雄和怪物之间碰撞,我们就可以这样指定,去掉enemies之间的勾选. 打开方式-edit->project setting->physics 根据项目属性,点击2D或者3D…