位置: 编程技术 - 正文

【边玩边学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官方教程)

  • 固定资产折旧准予扣除是什么意思
  • 专家住宿费入什么科目
  • 每年税控盘维护费会计分录
  • 车船税不交怎么办
  • 企业收到生育津贴但不发给员工怎么办
  • 企业所得税年报过了申报期还能修改吗
  • 长期股权投资审计说明
  • 企业重组资产转移是否涉税
  • 企业股权资本的组成
  • 银行承兑汇票贴现利率一般多少
  • 由于红字发票生成红字进项税转出如何做账?
  • 建筑行业如何结合个人例子写论文
  • 用盈余公积弥补亏损会影响所有者权益吗
  • 应收账款平均余额公式
  • 个人去税务局开居间费发票
  • 个人所得税0申报逾期
  • 地方水利建设基金税率
  • a公司拟吸收合并b公司除一项无形资产吗
  • 小规模需要公账还是私账
  • 收派服务发票需交税吗
  • 赠送样品需要交税吗
  • 拿回费用票普票忘记入账怎么办?
  • 金蝶软件入库
  • 个体户需要对公户吗
  • 代订住宿费可以开专票吗
  • 小规模纳税人含500万吗
  • 其他应付款下的固定资产怎么报废
  • 账户禁用无法登录怎么办
  • PHP:session_is_registered()的用法_Session函数
  • 金融资产减值损失计入什么科目
  • an exit
  • 汇算清缴针对哪些对象
  • 会计编录怎么做
  • 多洛米蒂徒步线路
  • 定期定额户个人经营所得
  • php框架介绍
  • 为什么运输合同比租赁合同风险小
  • javaweb界面设计
  • 计提支付公积金
  • 金融企业贷款损失
  • 上个月的发票未上传成功可以删除吗
  • 小规模企业所得税优惠政策最新2022
  • c语言中exit函数怎么用
  • <四>2:掌握Const 与一二级指针结合应用
  • 增值税留抵税额是什么意思
  • 消防工程改造怎样入账
  • 隔月发票退回是怎么回事
  • 进项税额转出的所有会计分录
  • 农产品收购发票使用范围
  • 商标权的入账价值有哪些
  • 公司支付员工工资方式有几种
  • 因员工过失造成的工伤用不用赔
  • 奖金偶然所得税起征点
  • 职工薪酬费用属于什么费用
  • 为什么实收资本不属于企业资产
  • 先计提所得税还是先出报表
  • 固定资产清理的税率是多少
  • 水果销售公司怎么起名字好听
  • 现金流量为负的原因
  • 电脑bios怎么关
  • mac通讯录怎么删除
  • unix操作系统有何特点?
  • mac的浏览记录在哪儿
  • win1021h2正式版
  • shadowbar.exe - shadowbar是什么进程 有何作用
  • win7 显示日期
  • linux删除定时任务
  • win7系统宽带连接651
  • 怎么用javascript
  • 利用JQuery实现datatables插件的增加和删除行功能
  • android基础知识大全
  • python类属性和类方法
  • android自学
  • 税收和社保不在同一地缴纳怎么办
  • 陕西电子税务局新版
  • 税务局网上开票平台app
  • 石家庄有线电视客服电话9688
  • 消费税申报详细操作流程
  • 政府对国税局的支持
  • 税务干部工作纪实怎么写
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设