位置: 编程技术 - 正文

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

  • 个体户每个月要申报个税吗
  • 合营企业和联营企业的持股比例
  • 往期企业所得税申报记录怎么查
  • 上月有留抵税额本月怎么申报
  • 金蝶软件数量金额式怎样输入数据
  • 火车票进项抵扣怎么勾选
  • 营业外支出为负数怎么处理
  • 跨越发票冲红,填了红字信息表,没有负数发票
  • 单位之间调动
  • 绿化工程账务处理支出
  • 技术维护费280全额抵扣会计分录
  • 购买国税金税卡年费应该怎么做账务处理?
  • 境内机构经常项目外汇账户
  • 销售货物收入与营业收入
  • 生产车间修理用材料计入
  • 营业账簿印花税怎么算
  • 金税盘开票怎么改成含税金额
  • 小规模税局代增值税专用发票怎么交税
  • 开专票需要备注吗
  • 固定资产提前报废
  • 交叉持股的合并财务报表
  • 开票系统问题
  • 报税时利润表没写怎么办
  • 公司面临清算,外包企业的员工怎么处理?
  • 如何使用腾讯手机管家
  • 营业外支出所得税前可以扣除吗
  • 交易性金融资产入账价值怎么计算
  • 电脑没有声音问题
  • linux 速度
  • 笔记本保养技巧和方法
  • mac怎么保存
  • php获取参数值的三种方式
  • 直线法计提折旧每年都一样吗
  • PHP:mcrypt_encrypt()的用法_Mcrypt函数
  • Cusco Cathedral on the Plaza de Armas, Cusco, Peru (© sharptoyou/Shutterstock)
  • 电子承兑汇票支付信用查询是什么意思
  • wordpress 函数
  • 水电费分割单会计分录
  • 房租违约金怎么开发票
  • 用友财务软件使用视频教程
  • vue uncaught typeerror
  • css媒体查询不起作用
  • 员工出差预借差旅费属于
  • 计划成本法实际成本怎么算
  • 加计抵减会计分录其他收益
  • 电子承兑对方拒绝签收多久能到账
  • 电脑访问另一台电脑访问权限
  • 小企业会计准则调整以前年度费用分录
  • 企业营业执照的颁发部门是
  • 营业执照注销对商标有影响吗?
  • 普通发票的进项票怎么做分录
  • 计提增值税如何做账
  • 修理费未收到发票怎么办
  • 房地产开发土地使用税如何计算
  • 什么情况下需要割包皮
  • 押金抵货款怎样写协议
  • 支付永续债利息的会计处理
  • 公司法人借款给公司用责任承担
  • 营业执照可以变更名字和经营范围吗
  • 企业建账要求
  • 商业银行的存款有哪些种类
  • SQLServer XML数据的五种基本操作
  • shell多进程并行返回值
  • linux备份系统命令
  • 如果在一个命令行上输入和执行多条命令
  • iptables dnat snat
  • squid服务器配置
  • win8怎么设置
  • 在Linux上优化Mysql运行环境让你对Mysql更多了解
  • win10手写输入法怎么设置
  • linux虚拟机安装windows
  • jquery转dom
  • package.json里面的配置
  • unity的shader在哪儿
  • js弹出对话框的命令
  • flask框架官方文档
  • 开票资料?
  • 山西税务官网登录
  • 已经开票的房子还能退吗
  • 个人可不可以申请办理租赁性质车辆登记
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设