位置: 编程技术 - 正文

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

  • 递延所得税负债账务处理
  • 报销单据粘贴单图片
  • 固定资产接受捐赠的计入什么科目
  • 工商股权转让费用怎么算
  • 劳务工资入什么科目
  • 查找出资产负债表的软件
  • 发票入账时间规定是多久
  • 审计报告印花标
  • 滞纳金开专票要交税吗
  • 发票领购带什么
  • 固定资产折旧的影响因素
  • 融资租赁出租方会计处理
  • 应收账款融资的优缺点
  • 公司租用房产税如何征收
  • 往年的企业所得税季报可以更正吗
  • 小规模收到货运专用发票
  • 金税盘抄税报税流程
  • 没有座机怎么填固定电话
  • 什么叫增值税还是所得税
  • 通用日记账核算方法
  • win11 zen1
  • netframework4.8安装未成功
  • 在Win10系统中卸载最近更新的补丁并重启电脑
  • centos 6.5安装教程
  • 银行余额调节表例题和答案
  • 私营企业员工享受探亲假吗
  • 企业收入确认的依据是什么
  • 如何把文件夹加密码锁手机
  • 路由器网速慢怎么设置
  • 大白菜一键装机教程
  • win 8和win 7有什么区别
  • 未付款的增值税发票可以抵扣吗
  • 政府搬迁补偿款不够建房怎么办
  • 废品损失是什么类账户
  • 冰上的卷羽鹈鹕,希腊凯尔基尼湖 (© Guy Edwardes/Minden Pictures)
  • framework core
  • 实际退税能退多少
  • 溢价收购股权会计处理案例
  • SpringBoot+Vue实现在线商城系统
  • 基于VGGNet乳腺超声图像数据集分析
  • 董事会会费应计什么科目
  • 研发费用怎么体现
  • 印花税最新的征收方法
  • html 基础
  • 社会团体会费票据查询
  • 金蝶迷你版怎么打印明细账
  • 增值税发票认证期限最新规定
  • 银行存款产生的利息收入
  • 债务重组账务记忆口诀
  • 纳税人将购买的货物分配给股东,因该货物购买时已缴纳
  • 企业所得税征前还是征后
  • 汇算清缴后补缴得企业所得税,计入哪年的税负
  • 机动车销售折让红字信息表
  • 合同已执行但有错误怎么办
  • 跨年成本少结转如何调整
  • 营业执照的注册号怎么查询
  • 收不回来的账怎么处理
  • 预收账款的会计编码
  • 盗版win10系统
  • 强化系统设计
  • win8安装win10驱动
  • win8官方u盘安装教程
  • rhel6.5安装教程
  • win7系统怎么把c盘的内存加到d盘
  • 如何删除双系统中的linux系统
  • unity unity3d
  • Extjs4 GridPanel的主要配置参数详细介绍
  • unity3d动态加载资源
  • js获取tbody
  • java中的锁机制
  • js对象类型的语法规则
  • js右键菜单
  • javascript canvas方法有哪些
  • javascript例题
  • 快速排序的算法流程图
  • 广州出租车发票号码在哪里
  • 新入职税务干部工作心得
  • 税务审理工作总结
  • 1950土地改革后土地所有权
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设