Unity射线,角色控制器
2014-12-23 22:12
465 查看
欢迎大家来到我的博客http://unity.gopedu.com/home.php?mod=space&uid=3352&do=blog&view=me&from=space
射线
• 射线是3D世界中一个点向一个方向发射无终点的线。在unity3d中我们发射的射线一旦与其他的碰撞器发生碰撞,射线将停止发射。在游戏制作过程中我们可以通过判断射线是否发生了碰撞,并且可以判断射线和谁发生了碰撞。应用范围非常广泛,如射击类游戏中用它来判断是否射中目标。
• Ray.origin:射线起点
• Ray.direction:射线的方向
• 创建一条射线的方法Ray (origin
: Vector3, direction : Vector3)
• Origin是射线的起点,direction是射线的方向。
使用射线的小例子:
用鼠标点击地面,在我们点击地面的位置生成Prefab的实例
public Transform explosion;
void Update ()
{
//获取鼠标点击事件
if(Input.GetMouseButtonDown(0))
{
//定义一条射线
Ray ray=Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
//如果射线发生碰撞
if(Physics.Raycast (ray, out hit, 100))
{
Transform theClonedExplosion; //实例化物体
//hit.point为碰撞点的坐标
theClonedExplosion =Instantiate(explosion, hit.point, transform.rotation)as Transform;
}
}
}
忽略碰撞
• 有些时候我们不想让指定的两对象发生碰撞,即要忽略他们的碰撞
• public Transform ball;
• void Start() {
• Physics.IgnoreCollision(ball.collider, this.collider);
• }
添加角色控制器组件
• void Update{
• if (Input.GetKeyDown(KeyCode.W)) {
controller.SimpleMove(Vector3.forward*moveSpeed);
• }
• if (Input.GetKeyDown(KeyCode.S)) {
• controller.SimpleMove(Vector3.forward*-moveSpeed);
• }
• if (Input.GetKeyDown(KeyCode.A)) {
• controller.SimpleMove(Vector3.right*-moveSpeed);
• }
• if (Input.GetKeyDown(KeyCode.D)) {
• controller.SimpleMove(Vector3.right*moveSpeed);
• }
• }
请继续关注我的博客
http://unity.gopedu.com/home.php?mod=space&uid=3352&do=blog&view=me&from=space
射线
• 射线是3D世界中一个点向一个方向发射无终点的线。在unity3d中我们发射的射线一旦与其他的碰撞器发生碰撞,射线将停止发射。在游戏制作过程中我们可以通过判断射线是否发生了碰撞,并且可以判断射线和谁发生了碰撞。应用范围非常广泛,如射击类游戏中用它来判断是否射中目标。
• Ray.origin:射线起点
• Ray.direction:射线的方向
• 创建一条射线的方法Ray (origin
: Vector3, direction : Vector3)
• Origin是射线的起点,direction是射线的方向。
使用射线的小例子:
用鼠标点击地面,在我们点击地面的位置生成Prefab的实例
public Transform explosion;
void Update ()
{
//获取鼠标点击事件
if(Input.GetMouseButtonDown(0))
{
//定义一条射线
Ray ray=Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
//如果射线发生碰撞
if(Physics.Raycast (ray, out hit, 100))
{
Transform theClonedExplosion; //实例化物体
//hit.point为碰撞点的坐标
theClonedExplosion =Instantiate(explosion, hit.point, transform.rotation)as Transform;
}
}
}
忽略碰撞
• 有些时候我们不想让指定的两对象发生碰撞,即要忽略他们的碰撞
• public Transform ball;
• void Start() {
• Physics.IgnoreCollision(ball.collider, this.collider);
• }
添加角色控制器组件
• void Update{
• if (Input.GetKeyDown(KeyCode.W)) {
controller.SimpleMove(Vector3.forward*moveSpeed);
• }
• if (Input.GetKeyDown(KeyCode.S)) {
• controller.SimpleMove(Vector3.forward*-moveSpeed);
• }
• if (Input.GetKeyDown(KeyCode.A)) {
• controller.SimpleMove(Vector3.right*-moveSpeed);
• }
• if (Input.GetKeyDown(KeyCode.D)) {
• controller.SimpleMove(Vector3.right*moveSpeed);
• }
• }
请继续关注我的博客
http://unity.gopedu.com/home.php?mod=space&uid=3352&do=blog&view=me&from=space
相关文章推荐
- unity之角色控制器和射线
- unity学习之射线、角色控制器
- unity——使用角色控制器组件+射线移动
- Unity角色控制器
- unity学习之角色控制器
- u3d学习之忽略碰撞、射线、角色控制器
- 【Unity 3D】学习笔记三十八:角色控制器
- unity 使用角色控制器CharacterController移动对象造成模型动画的抖动
- Unity入门操作_ 角色控制器_015
- unity角色控制器修改(鼠标右键按住旋转视角)
- 射线和角色控制器
- unity 角色控制器
- Unity_如何实现游戏中角色多段跳的效果(射线实现)
- unity3d--角色控制器和射线
- 【截图整理官方教程】unity 2D角色控制器 2D Character Controller
- 【Unity】第11章 第三人称角色控制器和碰撞体
- Unity Manual之CharacterController 角色控制器
- unity官方demo学习之Stealth(九)角色动画控制器
- 【Unity】11.1 角色控制器 (Character Controller)
- Unity角色控制器CharacterController的简单介绍