这里是一个简单的跳跃,5.0和其他版本貌似不一样,并且,再起跳功能做的不完全。

不过一个基本的思路在这里。

1.首先,射线检测,这里是利用一个空对象,放到主角对象的下面

2.然后调节射线的位置,在主角对象的下面一点(这点很重要,差不多放在脚下,这样才能和地面接触,不然就永远也和地面接触不了)

LineCast 两点之间产生射线,去和某个碰撞器发生碰撞,触发了碰撞器,返回一个真

先定义要碰撞的碰撞器的层

然后,在绑定主角的脚本文件上开始写脚本:

using UnityEngine;
using System.Collections; public class move : MonoBehaviour { // Use this for initialization
private bool grounded = false;
private Transform groundcheck;
private bool jump = false; //角色的跳起
private Rigidbody2D hero;
public float jumpy = 360f;
public AudioClip jumpclips; //跳跃音频
void Start () {
groundcheck = transform.Find ("groundcheck");
//hero = transform.Find ("pk_0"); } // Update is called once per frame
void Update () {
if(Input.GetKey(KeyCode.W)){ gameObject.transform.Translate(Vector3.up*5*Time.deltaTime);
}
if(Input.GetKey(KeyCode.S)){
gameObject.transform.Translate(Vector3.down*5*Time.deltaTime);
}
if(Input.GetKey(KeyCode.A)){
gameObject.transform.Translate(Vector3.left*5*Time.deltaTime);
}
if(Input.GetKey(KeyCode.D)){
gameObject.transform.Translate(Vector3.right*5*Time.deltaTime);
}
//与地面接触为真,太能够进行跳跃
grounded = Physics2D.Linecast (transform.position, groundcheck.transform.position,1 << LayerMask.NameToLayer("Ground"));
if(grounded && Input.GetKeyDown(KeyCode.J)){
jump = true; //设置角色的起跳功能
if(jump == true){
AudioSource.PlayClipAtPoint(jumpclips,gameObject.transform.position);
gameObject.GetComponent<Rigidbody2D>().AddForce(new Vector2(0f,jumpy));
//hero.AddForce(new Vector2(0f,1000f));
jump = false;
grounded = false;
} }
Debug.DrawLine (transform.position, groundcheck.transform.position,Color.red,1f);
} }

  

Unity3D 5.0简单的射线检测实现跳跃功能的更多相关文章

  1. [Unity3D]unity3d5.0简单的调用摄像头

    Unity3D中新建一个工程,加一个Plane,新建一个C# 脚本,将这个脚本添加到Plane上,调用摄像头.(如果显示的图片居然是翻转的,Plane的Rotation 值就可以了) 以下是脚本内容: ...

  2. Unity3D 之射线检测

    这里来记录下射线检测的相关内容: 射线检测故名就是通过射线去检测是否和碰撞器产生了交集,和碰撞器与碰撞器发生交集一样,会返回一个真. 射线的用法很多:比如检测是否跳跃,通过向地面投射射线控制在地面时候 ...

  3. 【Unity3D】枪战游戏—发射子弹、射线检测

    一.子弹的碰撞检测: 因为子弹的移动速度非常的快,那么如果为子弹添加一个collider,就有可能检测不到了. 因为collider是每一帧在执行,第一帧子弹可能在100米处,那么下一帧就在900米处 ...

  4. Unity射线检测的用法总结

    RayCast 射线检测 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心 ...

  5. 反复横跳的瞄准线!从向量计算说起!基于射线检测的实现!Cocos Creator!

    最近有小伙伴问我瞄准线遇到各种形状该怎么处理?如何实现反复横跳的瞄准线?最近刚好在<Cocos Creator游戏开发实战>中看到物理系统有一个射线检测,于是,基于这个射线检测,写了一个反 ...

  6. Unity——射线检测(鼠标点击开关门效果)

    Unity射线检测--实现简单的开关门效果 简要:通过鼠标点击来发射一条射线,来获得射线所碰到的物体名称,再通过改变门的Rotation值来实现开关门的效果. 一.代码实现 1.1 简易的场景搭建 注 ...

  7. Layabox 3D游戏开发学习笔记---射线检测,鼠标控制物体运动

    核心要点:3D物体碰撞是靠射线检测,射线与碰撞器相撞获取对应的碰撞点信息. class RayPicking03 { private ray: Laya.Ray; private point: Lay ...

  8. [Unity3D] 5.0 图集合并扩展工具,用于解决UGUI与AssetBundle打包造成资源包过大的问题

    [Unity3D] 5.0 图集合并扩展工具,用于解决UGUI与AssetBundle打包造成资源包过大的问题 2017年07月05日 15:57:44 阅读数:1494 http://www.cpp ...

  9. 【转】 [UnityUI]UGUI射线检测

    http://blog.csdn.net/lyh916/article/details/50947026 1.Graphic Raycaster 主要用于UI上的射线检测,挂有这个组件的物体,必须要挂 ...

随机推荐

  1. bzoj 1079: [SCOI2008]着色方案 DP

    1079: [SCOI2008]着色方案 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 803  Solved: 512[Submit][Status ...

  2. Android UI基础教程 目录

    从csdn下载了这本英文版的书之后,又去京东搞了一个中文目录下来.对照着看. 话说,这本书绝对超值.有money的童鞋看完英文版记得去买中文版的~~ Android UI基础教程完整英文版 pdf+源 ...

  3. jsp页面传参到action出现乱码

    jsp页面以连接方式传参到后台action时( <a href="http://localhost:8080/SocialBook/pages/bookdetail?book.id=& ...

  4. Linux iconv使用

    iconv [选项]文件 输入/输出格式规范:-f, --from-code=名称 原始文本编码-t, --to-code=名称 输出编码 信息:-l, --list 列举所有已知的字符集 输出控制: ...

  5. 14.6.2 Configuring InnoDB for Read-Only Operation

    14.6.2 Configuring InnoDB for Read-Only Operation 配置InnoDB只读操作 你可以查询InnoDB 表MySQL 数据目录是一个只读介质,通过启用 - ...

  6. Linq to SQL 类型的对象图包含循环,如果禁用引用跟踪,择无法对其进行序列化。

    在使用Linq to SQL并序列化一个数据对象的时候报System.InvalidOperationException异常,序列化类型 的对象时检测到循环引用. 异常信息(部分): ---> ...

  7. 用Delphi直接获取bmp图片的像素

    用Delphi直接获取bmp图片的像素,并存储显示出.(此像素主要用在LED上显示).希望高手能给出代码啊!! function getImagePixels(f: string): Integer; ...

  8. Codeforces 350B Resort

    题目链接:http://codeforces.com/problemset/problem/350/B 一开始想复杂了,建了张图,结果效率太低T了.其实用数组存可以了,结果发现的时候快没时间了,修改好 ...

  9. linux mono

    linux下.net环境; rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm &am ...

  10. Google邮箱:Gmail国际顶级邮箱

    本博文的主要内容有 .Google邮箱的介绍   1.Google邮箱的介绍 https://zh.wikipedia.org/wiki/Gmail http://mail/google.com/ h ...