Unity 利用射线实现弹孔效果
2019独角兽企业重金招聘Python工程师标准>>>
1、利用 Camera.main.ScreenPointToRay 从屏幕到鼠标点击位置生成一条射线。
2、利用 Physics.Raycast 发射射线,同时判断是否碰撞到目标物体。
3、通过 RaycastHit 获取射线所碰撞到的位置。
4、在目标位置生成一个弹孔预设体。
具体代码:
using UnityEngine;public class ShootDemo : MonoBehaviour
{public GameObject holePrefab;void Update(){//按下鼠标左键if (Input.GetMouseButtonDown(0)){//返回一条从摄像机到鼠标位置的射线Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//Debug.DrawRay(ray.origin, ray.direction, Color.red); //便于调试,可以在 Scene 试图中看到一条虚拟射线。RaycastHit hitInfo;//射线投射,如果碰撞到碰撞器则将碰撞信息存储在 RaycastHit 对象中,并且返回 true。if (Physics.Raycast(ray, out hitInfo, 100F)){//在射线碰撞位置生成一个弹孔预设体GameObject tempHole = Instantiate(holePrefab, hitInfo.point, Quaternion.identity);//让弹孔与射线碰撞体的法线垂直(让弹孔总是贴在物体的每一个面的表面)tempHole.transform.LookAt(hitInfo.point - hitInfo.normal);//让弹孔与碰撞体表面保持0.01距离(避免了弹孔与碰撞体表面完全叠加从而无法完整显示)。tempHole.transform.Translate(Vector3.back * 0.01f);}}}
}
代码特别说明:
//让弹孔与射线碰撞体的法线垂直(让弹孔总是贴在物体的每一个面的表面)
tempHole.transform.LookAt(hitInfo.point - hitInfo.normal);
最终效果:
转载于:https://my.oschina.net/bigxuan/blog/1833598
Unity 利用射线实现弹孔效果相关推荐
- unity 制作书本 翻页效果
unity 制作书籍翻页效果 unity C# 翻书效果 2D 真实翻页 不使用插件 自制 实现思路: 将书本分为两边,一边一个翻页实现: 下图为书本的右面,以OA为分界线,△OAB是下一面的如上图的 ...
- Unity从零开始实现一个全息效果Shader
Unity从零开始实现一个全息效果Shader 前言 开始捣鼓 一.准备阶段 二.先从透明效果开始 三.顶点故障效果 四.扫描线效果 五.菲尼尔反射效果 六.颗粒效果 七.颜色故障效果 CustomE ...
- Unity实现刮刮乐效果
Unity实现刮刮乐效果 本文转自:http://www.manew.com/thread-113128-1-1.html,请点击链接查看原文,尊重楼主版权. 网上看过了很多刮刮乐的文章,自己参考了一 ...
- Unity基础射线判定以及编辑自定义模型
Unity基础射线判定以及编辑自定义模型 Unity射线基础解析 Unity UI射线检测 射线判定生成自定义模型 代码很简单没有难度,自己看一下应该就能明白. OK 老规矩,直接上代码: Unity ...
- 直播笔记 | Unity中射线检测详解
本文首发于洪流学堂微信公众号. 洪流学堂,学Unity快人几步 你好,我是郑洪智,你的技术探路者. 这周三我们直播剖析了Unity中射线检测的功能,以下是直播内容精华部分笔记. 完整录播:https: ...
- html怎么做成3d正方体,利用CSS3的3D效果制作正方体
学会用CSS3的3D效果制作一个正方体,有助于增强我们对3D场景的旋转和位移属性的理解.下面的动态图就是利用3D旋转位移,结合动画效果制作的.感兴趣的同学可以在完成正方体的制作基础上,再去探究一下添加 ...
- 试着在unity实现阴阳师抽卡效果
试着在unity实现阴阳师抽卡效果 之前为了社团活动(DemoDay,一个展示社团成员游戏作品的社团展会)做了一个抽奖程序.因为是硬核游戏开发社团举办的游戏展,我为此特地做了一个阴阳师的抽卡系统如下 ...
- unity中射线碰撞检测总结
这阵子通过看视频,看书对unity中射线碰撞检测,有了一些了解,这里我把它总结一下写下来,希望能帮助到你们,也希望通过各位大神来指正不足之处: 射线碰撞检测,就是由某一物体发射出一道射线,射线碰撞到物 ...
- unity实现吸附功能的效果
unity实现吸附功能的效果随笔 物体移动到墙体一定距离会被吸附到墙体上面 这个一定的距离根据代码 Vector3 scale = boxCol.transform.localScale+ new V ...
- Unity 之 ShaderGraph 实现全息效果入门级教程
Unity 之 ShaderGraph 实现全息效果入门级教程 前言 一,效果展示 二,原理介绍 三,制作步骤 四,使用示例 五,资源分享 前言 若你的工程还没有进行基础配置,请查看我的博文Unity ...
最新文章
- html项目_学完html+css就可以做的前端项目实战
- [转]WebPack 常用功能介绍
- Windows Mobile 开发工具和资源
- Docker Machine 简介
- Matlab参考函数
- 通过调用门进行控制转移 ——《x86汇编语言:从实模式到保护模式》读书笔记29
- 2017 年全国大学生电子设计竞赛试题——四旋翼自主飞行器探测跟踪系统(C 题)【本科组】2
- android import找不到文件夹,android 音乐播放器找不到源文件
- 洛谷 P1400 塔
- 面向对象 阶段性总结
- 十年Smartbi项目经理:BI应用在银行业的发展历程和展望
- 怎么使用手机号申请邮箱,注册移动手机邮箱有哪些步骤?
- 什么是不简单?把每一件简单的事做好就是不简单;什么是不平凡?能把每一件平凡的事做好就是不平凡。
- 【小月电子】ALTERA FPGA开发板系统学习教程-LESSON9简易测试系统
- 3无重复字符的最长子串longest-substring-without-repeating-characters
- 小曾WRF自学日记(3)渐入佳境 ——WRF实例-数据下载与WPS前处理
- 10款开发常用的代码编辑器
- 数字电视标准ATSC,DVB的比较
- 【论文精读】Deep Rectangling for Image Stitching: A Learning Baseline
- 【源代码】Python制作的赛车小游戏,逆行飙车