unity
文章平均质量分 59
土土土~
黄梅时节家家雨,青草池塘处处WA
展开
-
unity 场景异步加载
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.SceneManagement;using UnityEngine.UI;public class LoadScene : MonoBehaviour{ public Button btn; public Slider slider; public Text text; v原创 2021-07-12 10:15:52 · 128 阅读 · 0 评论 -
关于transform.forward和Vector3.forward
transform.forward:是自身坐标的前方,是个变化的值,Vector3.forward : 是世界坐标的前方,永远都是(0,0,1)顺便记录一下采了一下午的坑:当物体没有发生旋转的时候,Vector3.forward = transform.forward当发生旋转的时候才是不一样的...原创 2021-07-10 19:53:58 · 211 阅读 · 0 评论 -
unity shader 复杂光照(前向渲染)
前向渲染在以往的shader编写中,都是只有针对一个光源,即平行光,对应的也只有一个pass当存在多个光源的时候,既有平行光,也有点光和聚光的时候,前向渲染会对每一个灯光进行一次pass的计算,所以当物体较多的时候,比较浪费性能之前的shader中总会有这么一段代码这就是告诉unity,该pass使用前向渲染的ForwardBase路径,前向渲染还包括一种路径叫做ForwardAdd其中ForwardBase是用来计算环境光,自发光,以及最重要的平行光(只计算一次,除非双面渲染)Forward原创 2021-06-18 18:31:42 · 371 阅读 · 2 评论 -
shader-透明效果学习
透明度测试一种比较极端的透明方法,它无法实现半透明效果,它的透明度要么为1,要么为0,也就是要么完全透明,要么完全不透明。透明度测试就是要判断一下,吧不满足条件的像素值剔除掉在shaderlab中,为什么提供了一个内置的函数,clip(float x)如果传入的参数小于0 那么该像素块就会被剔除掉Shader "Custom/AlphaTest"{ Properties { _MainTex ("Albedo (RGB)", 2D) = "white"原创 2021-06-17 17:29:42 · 319 阅读 · 2 评论 -
shader学习2-光照
漫反射光强和 物体表面法线与光的方向的夹角的余弦值有关我们需要知道 入射光线的颜色 物体表面的法线和光源的方向计算公式为:光的反射系数 * 光的颜色 * (法线和光线方向的夹角余弦)逐顶点漫反射计算都写在了顶点着色器之中Shader "Custom/DiffuseVertex"{ SubShader { // 逐顶点的漫反射 pass{ Tags{"LightMode"="ForwardBase"}原创 2021-06-11 10:12:54 · 200 阅读 · 3 评论 -
shader学习1-语法
shader初步认识在vscode里面装上 shaderlabvscode插件就可以写了Shader "Custom/Test"{//针对某个显卡的subshader subshader{ pass{ CGPROGRAM #pragma vertex vert //定义定点着色器的函数名称 #pragma fragment frag //定义片原着色器的函数名称 //输入的是模型空间的坐标,输出的是原创 2021-06-11 09:36:12 · 204 阅读 · 0 评论 -
lua学习笔记
LuaEnv luaEnv = new LuaEnv();先构造lua的运行环境c#中执行lua执行一条语句 //执行一句lua语句 luaEnv.DoString("print('i love you 3000');");执行一个脚本//执行一个lua脚本luaText = Resources.Load<TextAsset>("ForMyTest.lua");luaEnv.DoString(luaText.text);luaEnv.DoString("require '转载 2021-05-15 16:41:40 · 246 阅读 · 0 评论 -
A*(A星)寻路算法
首先非常感谢唐老师的课程,讲的非常好添加链接描述三个变量:G值 = 父节点的G值 + 父节点到当前点的移动代价(父节点的G是0,如果斜着走就是根号2,直着走就是1)H值 = 当前点到结束点的曼哈顿距离寻路消耗公式 F:=G+H还有两个列表开放列表: 吧当前所有可以走的节点都放进开放列表关闭列表:每一次走过一个节点之后都把这个节点放到关闭列表里面具体步骤a、将开始点记录为当前点Pb、将当前点P放入关闭列表c、搜寻点P所有邻近点,假如某邻近点既没有在开放列表或关闭列表里面原创 2021-03-08 12:08:00 · 751 阅读 · 1 评论 -
设计模式学习 - GOF 23中常见设计模式
行为型模式命令模式:命令模式将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象,同时支持可撤消的操作。责任链模式:使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止解释器模式:给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。迭代器模式:提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节类比一下c++中的迭代器中介模式原创 2021-01-25 19:13:32 · 1128 阅读 · 2 评论 -
unity entity0.11 版本使用ecs
看了老版本的的视屏,这种写法一直报错,然后好长时间才搞定,终于不报错了在场景新建一个物体,加上 DOTS -> ConverttoEntity 脚本新建一个 移动component 脚本这个是组件 ,里面只有数据加上[GenerateAuthoringComponent] 就可以吧这个拖到物体上去, [GenerateAuthoringComponent] public class MoveDirection : IComponentData { publ原创 2021-01-10 21:35:54 · 206 阅读 · 0 评论 -
Unity ECS 学习记录
ECS这种老生常谈的话题就不说了,本次版本是用的Unity的2019.4的版本,因为Ecs的版本更新太快,api更新太频繁,所以学习起来是比较的麻烦,而且教程也是有限ECS快的原因需要去了解dots,推荐大家看一看这个视频 DOTS从原理到应用-雨松MOMO首先如果学过计算机组成原理或者操作系统应该知道,计算机的存储层次最快的为cpu寄存器,往下是主存,但是主存的访问速度与cpu的处理速度相差太远,于是在二者之间加了一个高速缓存来解决这个问题ECS所做的主要工作,就是来提高缓存的命中率...原创 2021-01-10 17:15:44 · 310 阅读 · 0 评论 -
unity JobSystem(作业系统)
JobSystem :unity提供的一套多线程解决方案,使用这个东西可以极大的提升游戏的运行效率NativeContainerNativeContainer 是一种托管值类型,为本机内存提供了一个相对安全的 C# 封装器。它包含一个指向非托管分配的指针。与 Unity C# 作业系统一起使用时,NativeContainer 允许作业访问与主线程共享的数据,而不是使用副本。如何创建一个job首先创建一个结构体 实现IJob接口,在接口内部实现Excute()方法,作业的任务处理就放在这个函数之中转载 2021-01-01 18:21:36 · 5314 阅读 · 0 评论 -
unity项目使用socket向服务端发送消息(序列化和反序列化)的问题(找不到程序集,找不到添加引用)
创建一个unity项目,然后创建一个c#的服务端项目,使用socket向服务端发送消息,如何序列化和反序列化?1 这是前端代码using System.Collections;using System.Collections.Generic;using UnityEngine;using System.Net;using System.Net.Sockets;using System;using System.Text;using System.IO;using System.Runti原创 2020-09-25 21:52:46 · 451 阅读 · 1 评论 -
unity raycasthit讲解
新建一个场景加三个方块,如图在随便一个物体上加上脚本using System.Collections;using System.Collections.Generic;using UnityEngine;public class Test : MonoBehaviour{ public Transform cube1, cube2; // Start is call...原创 2020-02-26 13:31:11 · 3095 阅读 · 0 评论 -
模型动画的切割(unity)
今天把unity噩梦射手的模型发给美工的时候发现一个问题,本来一个模型有三个动画结果再3dmax上面只有一个动画,而且是一个完整的三个动画连贯起来的,后来才知道建模的时候一个模型只能做出一个动画,但是unity的一个模型包含射击死亡等多个动画是切割出来的。方法如下:1选中该模型2点击inspector面板3选中animation4在Clips下点击+号,在start与end中设置这个动...原创 2020-02-02 16:36:13 · 985 阅读 · 0 评论