位置: 编程技术 - 正文

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

  • 购销金额多少的情况下必须需要签合同?
  • 一般纳税人劳务派遣
  • 当月增值税为负数
  • 小规模纳税人可以开1%的专票吗
  • 个人如何开现金账户
  • 资本金利息收入算业务收入吗
  • 仓储企业的成本有哪些
  • 贷款利息未取得发票所得税税前扣除哪年开始
  • 政府补助结转是什么科目
  • 企业要怎样才能发挥其在实现生态产品价值过程中的作用
  • 小规模纳税人按月申报还是按季申报
  • 房产税申报后多久缴纳税款
  • 脚手架出租生意
  • 酒店小规模纳税人税率
  • 零申报个税怎么补申报可以不罚款吗
  • 工资上浮20%怎么算
  • 汽车厂家金融贴息 是贴利息的还是贴车价
  • 商家不给发票可以报警吗
  • 每股收益怎么计算净利润
  • 应交税费已交税金借方有余额
  • 社保不计提会计分录
  • win8.1怎么用
  • linux桌面不见了
  • 其他应付款如何调平
  • 最快的XQD存储卡是什么
  • php储存数据的方法
  • 小规模纳税人避税
  • 司法拍卖所购的房产
  • 生产成本结转怎么登账
  • 公司想减少注册资本流程
  • vue的slice
  • 设置cmd命令
  • 其他收益和其他收入的区别
  • c语言中有哪些循环结构
  • 商品过期的会计分录
  • 个税申报需要什么资料
  • 现金零星支出大还是小
  • 车间用的液化气计入什么科目
  • python中字典的键有何要求
  • python多进程间通信
  • 领取定额备用金的会计分录
  • 开房租发票交的税因优惠政策退税如何账务处理?
  • 在excel中怎么制作
  • 建筑企业工程结算账务处理
  • 对公账户一直没有对账,会有什么后果吗?
  • 居民和非居民企业的区别是什么
  • 修理费用的会计怎么做账
  • 宾馆购买的床财务怎么做账
  • 发明专利权限的期限是多少年
  • 租的办公室装修费怎么处理
  • 企业清算处置固定资产
  • 建筑业属于货物经营吗
  • 增值税收入的确认时间
  • 收到伙食费的会计处理
  • 其他综合收益包括留存收益吗
  • 个税返还开票什么项目
  • 会计软件什么范围分为单用户和多用户呢
  • 明细账建账的步骤
  • mysql优化的几种方法
  • win10微软在哪
  • win1020h2正式版
  • win10预览版和正式版区别
  • os x10.8.5
  • 安装网络设备
  • 苹果发布会亮点速览
  • bootstrap怎么用
  • 基于jquery实现可定制的web在线富文本编辑器附源码下载
  • bat批处理命令教程
  • python怎么用命令行
  • node ffi
  • Javascript字符串奇数位替换
  • bootstrap要学到什么程度
  • 电子税务局税务数字证书登录
  • 常州的居民医保在哪里交
  • 广东国税局发票查询系统
  • cfca证书下载流程
  • 如何当好一名税务局长
  • 电子保险怎么查询车船税
  • 郑州房产交契税在哪里交
  • 税收分类编码1080499
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设