位置: 编程技术 - 正文

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

  • 小微企业印花税怎么算
  • 发票税率金额如何得出
  • 客户维护费计入什么科目
  • 企业财务独立核算
  • 申报成功忘记清关怎么办
  • 当前企业不存在是怎么回事
  • 企业会计准则利润表本期金额
  • 经营性项目应收减少额怎么算
  • 收到供应商赠送的发票
  • 销售自己使用过的物品
  • 企业收到银行收款通知
  • 网上公司报税流程图
  • 现金流量表关注指标
  • 企业工资薪酬包括哪些内容
  • 房地产企业预缴税费
  • 企业利息收入的税率是多少
  • 取得农产品流通环节免税发票可以扣抵吗?
  • 营改增后建安企业账务处理
  • 水利申报怎么申报
  • 个税生产经营所得B表在哪里
  • 联营企业分回的利润交企业所得税吗
  • 应付账款收不到账怎么办
  • 公积金提取条件
  • 白银及其制品出自哪里
  • 汇算清缴相关分录有哪些
  • 上级拨入资金计入什么科目
  • 公司股权转让流程是先工商还是税务
  • 会计利润利润总额的计算
  • 无形资产摊销是什么科目
  • windows11怎么快速截屏
  • mmc.exe是什么进程
  • 支付包装物押金为什么是其他应收款
  • 用支票购入厂部办公用品2000元,车间办公用品1000元
  • 查询数据库的7个标准步骤
  • php零基础入门教程
  • 建安企业所得税怎么算2.25税率
  • 生产企业成本会计难吗?
  • php模板引擎类
  • 增值税申报主表在哪里查询
  • 头歌HTML基础第一关初识HTML
  • vue table导出excel
  • 数据可视化分析
  • cvpr2020目标跟踪
  • Web 1.0、Web 2.0 和 Web 3.0 之间的比较
  • redissessiondao
  • 发票融资会计处理
  • 累计折旧怎么折
  • 固定资产多少金额才算
  • python深入浅出
  • mysql客户端怎么使用
  • 母公司给我们减工资
  • 个人工作室需要做账吗
  • 外购存货的账务处理
  • 个人所得税汇算清缴
  • 餐饮业流水账表格
  • 主营业务收入账务处理分录
  • 以前年度损益调整属于哪类科目
  • 收到货款会计分录怎么写
  • 收到红字发票如何入账
  • 代扣的应由职工个人负担的社会保险费计入什么科目
  • 计提资产减值准备会计科目
  • 文档介绍
  • fedora系统安装教程
  • win10系统d盘变成e盘,进入winpe盘符正常
  • windows8正在准备windows
  • Radio.exe - Radio是什么进程 有什么用
  • windows7hosts文件
  • win10怎么安装pscs6
  • win8启动蓝屏
  • opengl 旋转矩阵
  • 使用权资产
  • nodejs ddd
  • shell 编程 怎么运行命令
  • js随机生成6位数
  • xml文件的数据如何读取
  • jquery中遍历指定的对象和数组是哪个方法
  • 社保已申报怎么停止缴费
  • 贵州电子税务局怎么登录
  • 四川农村信用社电话
  • 八戒财税兼职
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设