位置: 编程技术 - 正文

【边玩边学Unity3d】实现可编辑网格(unity3drpg游戏教程)

编辑:rootadmin

推荐整理分享【边玩边学Unity3d】实现可编辑网格(unity3drpg游戏教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:unity 边玩边下,unity3d自学教程视频,unity游戏教程完整版,unity 边玩边下,unity玩游戏,unity游戏教程完整版,unity玩游戏,unity 边玩边下,内容如对您有帮助,希望把文章链接给更多的朋友!

转载: Prefab, 以供多次实例化调用。

【边玩边学Unity3d】实现可编辑网格(unity3drpg游戏教程)

脚本如下:

[csharp] view plaincopyusing UnityEngine; using System.Collections; public class Vertex : MonoBehaviour { private const float size = 0.f; private Vector3[] newVertices = { new Vector3(size, -size, 0), new Vector3(size, size, 0), new Vector3(-size, size, 0), new Vector3(-size, -size, 0) }; private Vector2[] newUV = { new Vector2(0, 0), new Vector2(0, 1), new Vector2(1, 1), new Vector2(1, 0) }; private int[] newTriangles = {0, 3, 2, 0, 2, 1}; private Vector3[] newNormals = {Vector3.forward, Vector3.forward, Vector3.forward, Vector3.forward};//forward private Vector4[] newTangents = { new Vector4(-1, 0, 0, -1), new Vector4(-1, 0, 0, -1), new Vector4(-1, 0, 0, -1), new Vector4(-1, 0, 0, -1) }; // Use this for initialization void Start () { Mesh mesh = new Mesh(); GetComponent<MeshFilter>().mesh = mesh; mesh.vertices = newVertices; mesh.uv = newUV; mesh.triangles = newTriangles; mesh.normals = newNormals; mesh.tangents = newTangents; } } 然后,是Edge Prefab预设,即实现两端顶点位置改变时可以更新自身网&#;顶点位置,且在鼠标长按后实现添加顶点的边对象。该对象组件与Vertex Prefab大致相同,其脚本“Edge”中多了起始和终止顶点属性,以及计算自己网&#;顶点的CalcuVertexPosition方法。

脚本如下:

[csharp] view plaincopyusing UnityEngine; using System.Collections; public class Edge : MonoBehaviour { private GameObject startVertex; private GameObject endVertex; private Vector3[] newVertices = new Vector3[4]; private const float size = 0.f; private Vector3[] basicVertices = { new Vector3(size, 0, 0), new Vector3(size, 0, 0), new Vector3(-size, 0, 0), new Vector3(-size, 0, 0) }; private Vector2[] newUV = { new Vector2(1, 1), new Vector2(0, 1), new Vector2(0, 0), new Vector2(1, 0) }; private int[] newTriangles = {0, 3, 2, 0, 2, 1}; private Vector3[] newNormals = {Vector3.forward, Vector3.forward, Vector3.forward, Vector3.forward}; private Vector4[] newTangents = { new Vector4(-1, 0, 0, -1), new Vector4(-1, 0, 0, -1), new Vector4(-1, 0, 0, -1), new Vector4(-1, 0, 0, -1) }; public GameObject StartVertex { get {return startVertex;} set {startVertex = value;} } public GameObject EndVertex { get {return endVertex;} set {endVertex = value;} } public void CalcuVertexPosition () { if(startVertex == null || endVertex == null){ return; } Vector3 startPosition = startVertex.transform.localPosition; Vector3 endPosition = endVertex.transform.localPosition; float length = Vector3.Distance(startPosition, endPosition) - 0.f; float halfLength = length * 0.5f; Vector3 position = (endPosition &#; startPosition)*0.5f; Quaternion rotation = Quaternion.FromToRotation(Vector3.up, startPosition - endPosition ); gameObject.transform.localPosition = position; gameObject.transform.localRotation = rotation; BoxCollider collider = GetComponent<BoxCollider>(); collider.size = new Vector3(0.f, length, 0.f); newVertices[0] = halfLength*Vector3.down &#; basicVertices[0]; newVertices[1] = halfLength*Vector3.up &#; basicVertices[1]; newVertices[2] = halfLength*Vector3.up &#; basicVertices[2]; newVertices[3] = halfLength*Vector3.down &#; basicVertices[3]; ResetMesh(); } public void ResetMesh(){ Mesh mesh = new Mesh(); GetComponent<MeshFilter>().mesh = mesh; mesh.vertices = newVertices; mesh.uv = newUV; mesh.triangles = newTriangles; mesh.normals = newNormals; mesh.tangents = newTangents; } } 先到这里,下一篇完成MeshObject对象,以及MeshBuilder、MeshEditor脚本。

Unity3D开发之Unity5版本自写Shader没有雾的效果问题 原本项目是Unity4.6版本的,升级到Unity5之后发现原本的雾不再看见了,然后查了一下相关资料,发现官方是改变了雾的渲染。这里有相关的官方方式:htt

Unity3D制作2D精灵动画 首先导入图片,我自己做了个简单的图片。图片导入unity3d,修改spritemodel,点击spriteeditor。如果,图片中的各个元素距离比较开,可以用Slice自动划分。

Unity3D教程宝典之Shader篇 基本知识 基础讲:基本知识以下内容不需要入门的时候立刻阅读和理解,建议逐渐深入学习后,不时回来看看即可。什么事GUP?GUP:GraphicProcessingUnit,中文翻译为

标签: unity3drpg游戏教程

本文链接地址:https://www.jiuchutong.com/biancheng/372802.html 转载请保留说明!

上一篇:【猫猫的Unity Shader之旅】之双面材质和多Pass渲染(猫的猫的视频)

下一篇:Unity3D开发之Unity5版本自写Shader没有雾的效果问题(unity3d官方教程)

  • 预缴税款如何做会计分录
  • 私车公用如何避税
  • 房屋契税缴纳比例
  • 免税农产品发票怎么做账
  • 增值税专用发票抵扣期限
  • 开民工工资专户
  • 设备配件定义
  • 独立核算分公司注销与总公司账务
  • 出口零退税率是什么意思
  • 过路费发票可以抵扣增值税吗
  • 房地产开发企业预收款预缴增值税
  • 应收账款处置损益
  • 给个人的返利如何交税
  • 农林牧渔业税务优惠
  • 企业案例描述
  • 对公银行转款备注重要吗
  • 转登记日下期指的是什么
  • 记账凭证中借方和贷方什么意思
  • 预存话费返还怎么操作
  • 事业单位转账支票管理
  • 公司注销对外投资股权有效吗
  • 差额增值税计算公式
  • 进项税额已经认证抵扣了怎么处理
  • 集团内部资金往来用什么科目核算
  • linux的pipe
  • 商会收到的会费要交企业所得税
  • 企业所得税法规定,企业购置并实际使用
  • 进项税大于销项税怎么结转
  • 携税宝续费
  • 费用发生了 没有发票该如何记账
  • 逾期未退保证金怎么办
  • 高新技术企业的申报条件包括以下哪些
  • 详解HTTP Cookie状态管理机制
  • 商品进销差价的作用
  • 奥尔梅克
  • 资产减值准则所规范的资产
  • php输入月份输出天数
  • Vue3:探讨一下mixin
  • php如何实现
  • mac apache php
  • 个人的无形资产
  • 代缴社保可以领住房补贴吗
  • iotop命令 监视磁盘I/O状态
  • 进口商品销售的会计分录
  • 合同 成本
  • 织梦设置的关键词看不到
  • phpcms文档
  • 政府补助 项目资本金
  • 一行的代码
  • mysql存储过程查看权限
  • 工伤鉴定费计入什么科目
  • 原材料的计划成本分录
  • 基建罚款支出计算方法
  • 建筑业 成本
  • 公司开出发票但未收到款如何写分录?
  • 政府对失业人员补贴
  • 发票 抬头个人
  • 可供出售金融资产是指什么
  • 汇率的差额如何处理
  • 新会计制度下五类是什么
  • cmd显示命令
  • windows7 设置
  • centos怎么设置
  • 电脑系统xp怎么样
  • raid主要使用三种技术
  • windows中alt+tab
  • windows开始按钮点了没用
  • windows7如何调节屏幕色彩
  • 教你如何使用玻璃胶
  • node.js中的http.response.getHeader方法使用说明
  • diskpart ntfs
  • shell脚本入门详解
  • 微信jssdk vue
  • js发送请求的几种方式
  • JavaScript onkeydown事件入门实例(键盘某个按键被按下)
  • android天气预报课程设计报告
  • 补充耕地指标费用能从储备中心支付吗
  • 国税网查发票真伪
  • 转让定价调查与调整实务问答
  • 支付宝交税查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设