每次说想学东西,却没有时间,嫌工作忙,加班..最近有时间了,还是没能学下去。其实不是没时间,不是忙,只是没有真正的想过怎么去学习,或者说自学能力差,自控能力差。
索性就从最基础的学吧,做笔记,内容很简单,但能坚持才是重点。
Shader 顶点着色器与片元着色器之间的通讯
结构体
这里顶点着色器与片元着色器的通讯,是通过结构体来传递的,那么就先说一下结构体的定义吧
1 | struct structName{ |
Semantic 语义是不可以省略的,结构体结束后要有 分号 “;”
每次说想学东西,却没有时间,嫌工作忙,加班..最近有时间了,还是没能学下去。其实不是没时间,不是忙,只是没有真正的想过怎么去学习,或者说自学能力差,自控能力差。
索性就从最基础的学吧,做笔记,内容很简单,但能坚持才是重点。
结构体
这里顶点着色器与片元着色器的通讯,是通过结构体来传递的,那么就先说一下结构体的定义吧
1 | struct structName{ |
Semantic 语义是不可以省略的,结构体结束后要有 分号 “;”
游戏开发,实现功能是基础,性能优化才是重点。
实际开发中会遇到很多类似的情况,同一个物体要创建很多个,比如背包中的Item、伤害飘字、子弹、怪物等。像这种情况,如果初始化的时候一次性全部创建出来,难免会发生卡顿的情况,常见的是背包打开界面的时候发生卡顿。
通常这种情况,大家都会想到,在进游戏的时候预先加载出来一部分Item,只是隐藏掉(或者移动它的位置),在使用的时候再拿出来,这样避免了一次性创建很多造成的卡顿。
还有一种情况是,频繁的创建销毁物体,导致性能消耗很大,这个时候我们的思路是,第一次使用的时候创建,不用的时候缓存下来,而不是直接销毁(可以隐藏),这样再次使用就可以直接去拿了。
SVN作为版本控制,团队协作,代码托管,是一个很好的工具,当然别的工具 也很强大,比如Git等,不说哪个强大,这里只是针对Unity做一个一键更新SVN的插件,这样免去了要打开文件夹-右击-更新SVN的繁琐步骤,只需要在Unity界面按一下快捷键就可以了,这里我设置的快捷键是Alt+s,这个快捷键是自定义的,如果觉得不喜欢可以更改。
原理很简单,就是在Unity里执行SVN的更新命令,并设置一些更新时的属性配置,就行了。
起因
从毕业起一直在做Unity客户端的工作,每个基础模块的开发都会有一些重复性的工作,最近也在网上看到有编写工具来完成这些重复性的工作。
上述的四个流程 都可以通过插件实现,第一个可以去网上找一些插件,比如PSD2UGUI,一个开源项目。
这里着重说一下下面的三个工作怎么实现自动化生成脚本。
前言
平时的开发中,创建出来的prefab往往会有很深的层级关系,当游戏运行的时候如果发生明明鼠标点击了,但是没有响应的情况往往会有两种情况
脚本问题自然需要我们去排查脚本,比如有没有关联,有没有处理点击事件等等,但是如果是组件问题比如目标层级,或者碰撞太小等,有的时候排查起来会比较费劲,所以写个小工具目的是,当鼠标放在ui 上时,显示出当前位置可以点击的ui名字和它的路径。
2D纹理采样,CG内置函数。
内部实现分为以下几步:
因为设计点击和拖拽,所以需要单独监听这两个事件,但是我发现UGUI 的事件执行顺序是这样的
这里包含一个需求,就是再地图放大的时候要以自己人物的位置为基准点,也就是说放大到最后需要吧自己的人物移动到屏幕的中间,当然再缩小,还是按照这个思路来,如果放大后发生拖动,则以拖动后地图显示区域的中心为基准点缩放。有点绕……看一下最终实现效果图。
