Unity 子弹移动以及碰撞条件
一、子弹移动
游戏物体移动最主要的是获取一个刚体组件,再对这个刚体组件添加一个向前的力;
具体代码:
public class BulletCtrl : MonoBehaviour
{
public int damage = ;
public float speed = 1000.0F; void Start()
{
GetComponent<Rigidbody>().AddForce(transform.forward * speed);
}
}
二、设置物理引擎属性
Edit--->Project Settings--->Physics--->Physics Manager。
三、Collider组件
Box Collider、Sphere Collider、Capsule Collider、Mesh Collider、Wheel Collider、Terrain Collider。
四、碰撞感知条件
1)两个碰撞物体必须都有Collider组件
2)其中移动物体还必须有Rigidboby组件
最后补充一点:触发器是碰撞体的一个属性,如果进行触发检测,就可以实现穿透。
五、Tag应用
Add Tag
具体代码:
public class WallCtrl : MonoBehaviour
{
void OnCollisionEnter(Collision coll)
{
if (coll.collider.tag == "BULLET")
{
Destroy(coll.gameObject);
}
}
}
如果检查到标签为bullet,则销毁游戏对象。
六、获取子弹位置
public class MyGizmo : MonoBehaviour
{
public Color _color = Color.yellow;
public float _radius = 0.1F; void OnDrawGizmos()
{
Gizmos.color = _color;
Gizmos.DrawSphere(transform.position, _radius);
}
}
七、子弹发射
public class FireCtrl : MonoBehaviour
{
public GameObject bullet;
public Transform firePos; void Update()
{
if (Input.GetMouseButtonDown())
{
Fire();
}
} void Fire()
{
CreateBullet();
} void CreateBullet()
{
Instantiate(bullet, firePos.position, firePos.rotation);
}
}
Unity 子弹移动以及碰撞条件的更多相关文章
- 自制Unity小游戏TankHero-2D(4)关卡+小地图图标+碰撞条件分析
自制Unity小游戏TankHero-2D(4)关卡+小地图图标+碰撞条件分析 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm ...
- 【Unity探究】物理碰撞实验
这几天为了准备面试,所以决定对平时学习中的盲点扫盲一下,首先想到的就是物理碰撞.以前没有好好研究过,一直模糊不清,到底什么条件下才可以产生物理碰撞呢?只要其中一个有Rigidbody就可以了吗?所以进 ...
- Unity子弹生成系统
子弹系统和粒子系统比较类似,为了创建和五花八门的子弹,例如追踪,连续继承,散弹等,需要一个拥有众多参数的子弹生成器,这里叫它Shooter好了. Shooter负责把玩各类子弹造型和参数,创建出子弹, ...
- cocos2d-x游戏开发系列教程-坦克大战游戏之子弹和地图碰撞
上篇文章实现了坦克与地图碰撞的检测, 这篇我们继续完成子弹和地图的碰撞检测. 1.先设计一个子弹类Bullet,如下所示: class Bullet : public CCSprite { publi ...
- unity collider 和 trigger 触发条件
物体A,物体B(都含有collider组件) collider触发条件:A和B至少一方是 未勾选is Kinematic的rigidbody,且都未勾选 is trigger.当只有一方是rigid ...
- 【Unity笔记】静态碰撞体的陷阱
概念 静态碰撞体(Static Collider):物体勾选为静态Static,有Collider组件,无Rigidbody组件. 静态碰撞体的陷阱 Unity在游戏初始化时,会把所有的静态碰撞体合并 ...
- 在Unity中使用带碰撞体的TiledMap
虽然最近Unity2018版本推出了自己的瓦片地图,但是这个瓦片地图有点BUG,在场景内把瓦片地图铺好做成预制体,动态生成的时候居然丢失了碰撞体,于是我决定还是使用Tiled软件绘制地图并使用Tile ...
- Unity 中动态修改碰撞框(位置,大小,方向)
在Unity中,玩家处于不同的状态,要求的碰撞框的 位置/大小/方向 会有所改变,怎么动态的修改碰撞框呢? 下面是Capsure Collider(胶囊体)的修改: CapsuleCollider.d ...
- Unity,基于layer的碰撞配置
可以通过给对象指定layer,实现相同.不同layer之间碰撞的自由配置,比如我们想让怪物之间不碰撞,英雄和怪物之间碰撞,我们就可以这样指定,去掉enemies之间的勾选. 打开方式-edit-> ...
随机推荐
- jsp内置对象-pageContext对象
1.概念:pageContext对象能够获取JSP页面中的request.response.session.application等其他内置对象.pageContext对象的创建和初始化由容器完成,可 ...
- 基于.net EF6 MVC5+WEB Api 的Web系统框架总结(1)-Web前端页面
本 Web 系统框架基于C# EF6+MVC+WebApi的快速应用开发平台.本节主要介绍Web前端页面设计与实现.Web前端页面主要分为普通列表页面.树状导航列表页面.普通编辑页面.数据导入页面.向 ...
- Git - git branch - 查看本地仓分支列表
索引: 目录索引 参看代码 GitHub: git.txt 一.示例: git branch 二.说明: 该命令将列出本地所有存在分支, 包括 本地独有分支与远端在本地签出的分支, 但是没有签出的远端 ...
- 微信小程序开发基础
前言: 微信小程序开入入门,如果你有html+css+javascript的基础,那么你就很快地上手掌握的.下面提供微信小程序官方地址:https://developers.weixin.qq.com ...
- Kafka单节点及集群配置安装
一.单节点 1.上传Kafka安装包到Linux系统[当前为Centos7]. 2.解压,配置conf/server.property. 2.1配置broker.id 2.2配置log.dirs 2. ...
- csrf漏洞实战演练
定义: 修改密码操作:
- 【数据库】+ powerdesigner
使用powerdesigner工具对现有数据库表 生成关系图:https://www.cnblogs.com/lusunqing/p/4128025.html 通过Excel生成PowerDesign ...
- ABP之模块系统
简介 ASP.NET Boilerplate提供了构建模块的基础结构,并将它们组合在一起以创建应用程序. 模块可以依赖于另一个模块. 通常,一个程序集被视为一个模块. 如果创建具有多个程序集的应用程序 ...
- 一、PHP概述 - PHP零基础快速入门
1) PHP 可以用来做什么? 我简单举几个例子: 网站建设: 微信公众号,微信小程序,小游戏的后端接口: 小工具类. 别着急,可能会觉得不知所云.简单来讲,PHP 可以编写计算机程序.程序的作用,简 ...
- 什么是CAS机制?(转)
围绕下面四个点展开叙述: 一:什么是CAS机制? 二:Java当中CAS的底层实现 三:CAS的ABA问题和解决方法 四:java8对CAS的优化 一:什么是CAS机制? 我们先看一段代码: 启动两个 ...