位置: 编程技术 - 正文

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

  • 公转私做账麻烦吗
  • 2023年印花税税率口诀
  • 不征税收入计入应纳税所得额吗
  • 财务刷卡手续费怎么处理
  • 股东出售子公司股权的会计处理?
  • 新成立小规模纳税人开发票如何办理
  • 银行存款支付运费会计科目
  • 人力资源交哪些税费
  • 金税盘锁死提示什么
  • 生产经营所得税怎么申报
  • 出口退税新旧申报
  • 购入固定资产如何摊销
  • 利润分配包括缴纳所得税吗
  • 持有待售的固定资产减值可以转回吗
  • 没收逾期未退包装物押金收益,应计入( )科目
  • 短期负债包括哪些债务
  • 销售回扣分录
  • 投标保证金利息计入什么科目
  • 哪些燃料油不征消费税了
  • 企业发现多缴税款超过3年
  • 税号里的字母是什么
  • 适用简易计税方法的企业提供适用零税率的应税服务
  • 分工分类法
  • 进项发票认证抵扣时间是每月的15号吗
  • 以前年度企业所得税少计提实际已交
  • 补提以前年度摊销
  • 所得税年报报完了怎么更正季报
  • 所得税a类申报表
  • iphone怎么格式化掉所有内容和设置
  • 华为手机屏幕旋转设置
  • 一般纳税人劳务发票税点多少
  • 房地产开发企业分为几个等级
  • 进程mmc.exe
  • php堆和栈
  • php5升级到php7
  • 购进运输服务取得的增值税专用发票准予抵扣进项税额吗
  • 未确认融资费用怎么算
  • PHP面向对象程序设计调研
  • 增值税专用发票丢了怎么补救
  • vue组件元素设置滚动条高度
  • 元的解释是什么?
  • vue3动态路由权限
  • php读取文件内容的方法和函数
  • 园林绿化工程公司排名
  • 实发工资知道如何发放吗
  • 下列纳税人不得适用核定征收企业所得税的有
  • 进项发票无法取消怎么办
  • 资产处置损益怎么结转到本年利润
  • 购扶贫产品怎么记账
  • 支付给退休人员的退休费计入
  • 期初和期末余额是什么意思
  • 个别计价法优缺点是什么
  • 个税申报可以去税务局吗
  • 纳税申报相关操作有哪些
  • 建筑施工安全费用提取标准
  • 开办费怎么做帐
  • 抵扣认证的发票需要还回去吗
  • 公司打款账号模板图片
  • 生产企业消防设施管理规定
  • 房地产开发企业销售自行开发的房地产项目
  • sql server中删除触发器用
  • 批量替换多个wps文档的内容
  • 用sql语句实现分页效果
  • mysql innode
  • win8系统忘记电脑开机密码怎么办
  • win10预览版绿屏重启解决
  • 怎么使用winpe
  • win8.1快捷键
  • cocos2d在运行java eclipse程序时出现 Error: could not open c:program FilesJavajre6libamd64jvm.cfg
  • 手机弹窗游戏
  • 原生javascript开发
  • node.js教学
  • 使用一串代码
  • windows下安装python环境
  • 菜鸟教程javaweb
  • 2022河南省地方专项计划分数线
  • 预征率为2%预征税额怎么算
  • 广西税务12366怎么查询发票
  • 抚州到崇仁火车时刻表
  • 豫麦336
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设