位置: 编程技术 - 正文

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

  • 资产损失税前扣除及纳税调整明细表
  • 印花税的征税范围具体有哪些
  • 应税劳务销售额怎么算
  • 税收滞纳金是什么债权
  • 非税收入专用申报表
  • 业务招待费扣除基数的收入包括哪些
  • 个体户核定5万每个月要交多少税钱
  • 17点是多少点
  • 销售增长率在报表上怎么看出来
  • 个人社保由单位承担的可以进福利费吗
  • 非财政拨款结余是什么科目
  • 机场工作人员的家属票
  • 可抵扣增值税的发票
  • 招标代理专家费由谁支付
  • 半月的发票未认证能用吗
  • 建筑企业员工培训
  • 一个季度为纳税期限的规定适用
  • 减税降费政策六税
  • 哪些票据可以冲销
  • 补交之前年度税款怎么调账
  • 软件行业服务费印花税
  • 残保金次年申报
  • 收到政府拨款怎么做账
  • 施工费增值税专用发票税率
  • 企业缴纳社保的社保险种包括
  • 微信转账截图可以p图吗
  • 长期债权投资收回的利息 现金流量表
  • 研发机构采购国产设备退税管理办法
  • node 卸载
  • 跆拳道馆怎么盈利
  • php计算圆的周长和面积代码
  • python采集器
  • PHP中使用什么关键字声明变量的作用域为全局
  • 3d沙盒游戏推荐
  • 可以抵扣土地增值税的项目
  • 公允价值变动损益会计处理
  • phpcms怎么用
  • 帝国cms图片显示不了
  • 建筑保温材料出台了哪些限制政策
  • 非流动资产基金 新会计制度 对应
  • 购买黄金会计分录怎么写
  • 招待客户住宿费进项税可以抵扣吗
  • phpcms rce
  • mysql自动生成id
  • 金税盘服务费如何抵扣
  • 营业外收入是指企业确认与企业生产经营活动没有
  • 工程收到款项会计分录
  • 产品检验费怎样计算
  • 长期股权投资损失可以税前扣除吗
  • 公司土地被征收怎么办
  • 大金额维修费用怎么入账
  • 农产品如何进入批发市场
  • 所得税汇算清缴退税会计分录怎么做
  • 施工单位的罚款标准
  • 以考核为由扣除工资
  • 有形资产的例子
  • 工商银行代收是什么意思
  • 会计账簿怎么填写模式
  • 内账税费计入什么科目
  • mysql5.7.17下载
  • win8.1应用商店还能用吗
  • windowssystem32oobe找不到指定的路径
  • ubuntu运行慢的原因
  • windows怎样设置
  • windows画图程序名
  • linux 压缩包zip
  • linux引导和启动
  • windows xp系
  • windowxp怎么取消开机密码
  • excel打开csv文件数据有丢失
  • 举例说明linux的主要应用领域
  • web jquery
  • node js并发加载缓慢
  • jquery滚动条滚动到指定位置
  • jq倒计时代码
  • js为什么不能用var定义变量
  • 外汇业务税务备案
  • 国家税务总局72号文件
  • 青岛市崂山区地税局
  • 新余契税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设