位置: 编程技术 - 正文

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

  • 交车辆购置税会计账务处理
  • 购房补贴退契税多久到账
  • 企业奖金会计分录
  • 一般纳税人必须开13个点吗
  • 差额征税扣除额是什么意思
  • 税务局代开的进项票需要认证吗
  • 如何计算应交税
  • 商业汇票如何申领
  • 计提税费怎么写分录
  • 发票收到以后必须查验吗
  • 政府拨入企业的资金怎么入账
  • 施工企业增值税纳税地点
  • 没超过标准的招待费缴税吗
  • 公司注销取不到采购发票怎么汇算清缴?
  • 申报水利基金减免性质在哪里找?
  • 个人所得税怎么查
  • 普通发票和增值税发票都能报销吗
  • 资产处置税务风险有哪些
  • 节假日加班工资是平时的几倍?
  • 本年已预缴所得税
  • 小规模增值税本期免税额怎么计算
  • 期初建账实验步骤
  • 旅游服务税目
  • 限定性净资产要算在现金流量表里吗
  • igfxext.exe
  • php抓取网页内容转换成json
  • PHP:json_last_error_msg()的用法_JSON函数
  • PHP:finfo_set_flags()的用法_fileinfo函数
  • 增值税专用发票的税率是多少啊
  • 前端框架react
  • 分包工程账务处理
  • 工业设备类型分为以下三类
  • vue2:elementUI中Form 表单在特定情况下做动态rules添加删除
  • js fetch api
  • 毕业设计烦死了
  • phpcms插件
  • python多进程间通信
  • mongodb使用教程
  • 个人申请退税要交税吗
  • 长期股权投资会计准则2021修订
  • 营改增后小规模都是三个点吗
  • 跨年发票两大原则
  • 无票收入是怎么算的
  • 小规模纳税人劳务派遣可以差额征税吗
  • 转让专利技术使用权是什么收入
  • 还借款收据怎么写
  • 一家新成立的贸易企业
  • 计提社保公积金的账务处理
  • 免费给人一些客户资料违法吗
  • 无形资产内部研究开发支出的处理
  • 装饰公司工地
  • 企业收到委托开具发票
  • 购电脑怎么入账
  • 发票商品编码表
  • 企业利润怎么算出来的
  • 编制记账凭证的依据
  • vmware虚拟机怎么克隆
  • ubuntu中安装vim
  • xp 关机
  • w10消费者版本和专业版区别
  • win7系统显卡驱动在哪个文件夹
  • linux useradd -m
  • 笔记本win8为什么不能连无线
  • win8网络设置
  • 变量选择lasso
  • cocos2dx 4.0
  • linuxparted命令
  • bootstrap tree table
  • shell脚本实现批量登录并执行命令
  • jquery中each()方法的作用及使用
  • kraken框架
  • 现在开票可以不去税务局吗
  • 广东省税务登记网
  • 无锡医疗保险缴费比例
  • 山西税务12366
  • 湖北省国家税务局历任局长
  • 河南地税申报表怎么填
  • 市民服务热线有用吗
  • 文明6地球地图自然奇观位置
  • 契税维修基金交给谁
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设