Unity基础,Line Renderer 和射线的应用
来源:互联网 发布:如何在php中定义常量 编辑:程序博客网 时间:2024/05/24 05:38
Line Renderer (线渲染器):
通过鼠标或者手指在屏幕中画线:
1.声明,判断点击。
[SerializeField]private LineRenderer lineRenderer;private bool firstMouseDown=false;//第一次点击private bool mouseDown=false; //一直点击
private void Update() { if (Input.GetMouseButtonDown(0)) { firstMouseDown = true; mouseDown = true; } if (Input.GetMouseButtonUp(0)) { mouseDown = false; } OnDrawLine(); //调用画线方法 firstMouseDown = false; }
2. 画线
private Vector3[] positions = new Vector3[10];//所有坐标(10个点) private int posCount = 0;//当前第几个坐标 private Vector3 head;//头坐标 private Vector3 last;//上一次头坐标
画线:OnDrawLine();
private void OnDrawLine() { if (firstMouseDown){ posCount = 0; head = Camera.main.ScreenToWorldPoint(Input.mousePosition); last = head; } if (mouseDown) { head = Camera.main.ScreenToWorldPoint(Input.mousePosition); if (Vector3.Distance(head, last) > 0.01f) { SavePosition(head); posCount++; } OnRayCast(head); last = head; } else { this.positions = new Vector3[10]; } ChangePositions(positions); }
保存位置坐标:SavePosition( Vector3 pos );
private void SavePosition(Vector3 pos) { pos.z = 0; if (posCount <= 9) { for (int i = posCount; i < 10; i++) { positions[i] = pos; } } else { for (int i = 0; i < 9; i++) { positions[i] = positions[i + 1]; } positions[9] = pos; } }
设置线的位置方法:ChangePositions( Vector3[ ] position )
private void ChangePositions(Vector3[] positions) { lineRenderer.SetPositions(positions); }
发出射线 :OnRayCast(Vector3 worldPos)
private void OnRayCast(Vector3 worldPos) { Vector3 screenPos = Camera.main.WorldToScreenPoint(worldPos); Ray ray = Camera.main.ScreenPointToRay(screenPos); RaycastHit[] hits = Physics.RaycastAll(ray); for (int i = 0; i < hits.Length; i++) { //Destroy(hits[i].collider.gameObject); hits[i].collider.gameObject.SendMessage("OnCut",SendMessageOptions.DontRequireReceiver); } }
阅读全文
0 0
- Unity基础,Line Renderer 和射线的应用
- unity 射线的基础使用方法
- unity使用line renderer画线
- Unity Canvas UI line Renderer
- Unity基础的射线使用和坐标转换
- Unity基础—射线概念和API
- unity基础开发 1. 射线&碰撞器的原理和用法
- Unity 3D——射线的应用
- 【Unity】开发日志5——线性渲染 Line Renderer
- Unity 碰撞检测和射线
- [Unity]已知圆点和射线 求射线与圆相交的一点
- [Unity]Ray射线物理检测碰撞和LayerMask的使用
- Renderer.Material和Renderer.SharedMaterial的区别
- 射线的应用
- Unity射线基础技巧附加检测的小例子(Unity萌新的备忘录)
- Unity射线应用(第三人称Demo制作)
- Unity射线应用(第三人称Demo制作)
- unity基础开发----射线碰撞代码
- 重写Spring MVC WEB 简单入门-登录例子
- 常用 工具 类
- 欢迎使用CSDN-markdown编辑器
- c语言输出类型
- 淘宝“避冬锦囊”中存在的安全隐患
- Unity基础,Line Renderer 和射线的应用
- IDEA中Git的使用
- navicat for mysql破解/注册码
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- Solr’s query form query查询格式详解
- JAVA Spring MVC路由写法
- 第七次作业map集合
- 注解
- 混合使用Objective-C,C++和Objective-C++