The Sea of Stars

Coder is running!


  • 首页

  • 归档

  • 标签

使用tkdiff用作svn diff 的默认工具

发表于 2015-11-13   |  

-svn

svn的默认diff 工具,全命令行,看起来确实不太方便,使用tkdiff之后,整个人感觉好多了,主要在svn找一个好用的svn工具也太难了,还不如直接命令来的方便。
git也是一样的,

读啊哈算法

发表于 2015-11-07   |  

这两天在翻 啊哈算法 这本书,写的比较轻松幽默,但感觉也有很多不适应的地方,比如介绍的第一个算法,bubble sort,就好像不是那么回事,跟我们学的都不一样,最后统计了下,对于同样的5个数,他的样例运行o(N)是20!

买书就是为了读

发表于 2015-11-03   |  

哈哈,每逢双11想京东,每年11.11购物节照常来临,今年度想买的书,攒到今天,终于可以一下子全部买入,印象中大规模买书这是第二次,上次买了一大批技术书籍,说来惭愧,没有一般是读完的,主要还是因为自己从来没有养成买书、看书、鉴书的习惯,说到底还是穷。
现在生活不富裕,但按说买书还是ok的,况且,大部分看书的人,谈起来这点付出和收获,肯定想当地的成正比。
自从前年买了kindle,这两年陆陆续续也看了一些书,主要读书的习惯实在去公司的地铁上面,主要是读了很多小说,没读过技术相关的书籍,电子书的通病,无非是涉及到插图、图例、公式的排班特别糟糕,这也是纸书不死的最大原因吧。
看屌丝翻身的故事,无一不是勤奋读书来的,买了这些书,就得读,读书2015,只剩两个月,也能读下不少书的。
以往主要是买自己了解,但不熟悉的书,这次买的书,有包含完全陌生领域的书!

使用hexo的正确姿势

发表于 2015-10-31   |  

使用了hexo之后,感觉整个人好多了, 这才是程序员写文章的正确方式,没有数据库,以markdown 来写,所有的内容全部表现在md文件里,
但是,一旦你选择在多个电脑上同步,很多人说使用同步盘,我就试了下,通过18000+个文件 ,我果断放弃。最后才发现使用git管理才是对的,.gitignore都给建好了。
这样,发一篇文章的正确流程就变成了hexo n, hexo g, hexo d & git push 了

现开 mbp,为了家庭幸福

发表于 2015-10-30   |  

拥有一台属于自己mac电脑是一直以来的愿望,最早使用mac,是在第一家公司,使用vmware(盗版的)安装的虚拟机,运行的是SnowLeopard,通过vnc软件连接上去,显示的效果的很差,但是很容易看出来,mac交互确实不一般,就这样,在上面使用xcode3.2,学会了oc,学会ios开发,学会了hg,那真是个美好的时代!
在虚拟机下,前前后后至少使用了有一年多时间吧,后来辗转来到了游戏界,进入第二家公司,刚开始用的是公司领导的mbp 13. 并没有觉得特别的兴奋,可能是因为那是个低配,硬盘也特别的小,还装了个双系统, 到最后没办法,我连itunes都删了,才算腾出一点新空间,来安装开发软件,后来,公司终于为我配了一个mac mini,加了内存,运行的速度还能接受,搭配着一个19寸的Philip的显示器,陪我大约度过了1.5年的工作与生活;毕竟是属于自己的,就各种安装了,各种定制了。
后来有辗转来到了北京的搜狐畅游,作为一个土豪公司,我拥有了很长一段使用iMac的经历,每天使用magic keyward+黑色dell烂鼠标,很有喜感有没有。
后来又辗转(我他妈这是第3次辗转了)来到了现在的公司,一家知名的外国游戏开发商,mac mini是标配,不过同事都是各种mbp, mba,让我各种眼馋, 加上公司加班强度,越来越大,周末加班的需求,让我不得不自己买一个了,哈哈,还是很开心。

每天流水账的写东西ok不ok?

发表于 2015-10-29   |  

现在有微博,又有微信,这些个平台上都可以简短的说上几句话,哪还有没有必要,专门开辟个页面,来发牢骚,记流水账?
如果,总是立意创新,长篇大论,估计一年也写不了一篇,之前的blog不就是这样的废掉的吗?
另外,愈发觉得,语言沟通和表达能力随着年龄的增长越来越好, 反而是写在纸上的内容,干燥,无聊,不通顺,充满错误!
有了想法,就写,能多则多,不要强求!

将Evernote用作工作中的便签工具

发表于 2015-10-28   |  

刚开始使用windows下的Sticky note,一个小附件,简单便捷, 但是在互联网时代,显得非常简陋,不能同步,不能跨平台
后来就一直使用纸质的便签,但是容易遗落,经常认不清自己写的东西,不易修改,不易归类
evernote 中可以很方便的加入checkbox,就拿他做todolist.

入手了Macbook pro 15 ” 2015 Q2

发表于 2015-10-28   |  

今年压力山大, 一直想要购齐苹果产品的几大件,现在终于齐了,这件产品应该是目前买过的最贵的日用品,心里面压力很大。因为买电脑学习这个噱头已经用了很多年了,这个是人生中第三台电脑了。
随着年纪的增长, 也结婚了, 也必须得使用电脑坚持一些事情了,前景光明。

Unreal 的行为树

发表于 2015-10-23   |  

BT

BT 不是BitTorrent 是behaviour tree 的简写, 看个官方的图吧。
Bt gif演示

之前学习unity3d做的笔记,用的markdown语法,测试一下试试

发表于 2015-10-21   |  

Basic Tips

  1. u3d Texture
    有以下集中用途: Texture纹理, normal map法线贴图, gui, cursor 图标文件, Reflection 反射,
    cookie用作光源, lightmap光照贴图, advanced贴
  2. Wrap Mode Repeat,
    Clamp重复,截断
  3. Filter Mode 过滤模式
    Point, Bilinear双线性(找出最接近的四个图素,做插值), Trilinear
  4. Prefab 预设体
    gameobject 和 component 的集合,为了重复利用。

游戏场景

  1. Create Scene
    创建Plane平面, Gameobject创建的时候以当前的scene的中心点位置。

    Basic Sphere

    cube, sphere, capsule, cylinder, plane
    
  2. GameObject除了empty object, 还包括几何体,导入模型,camera, gui, particle, light, 树木等各类元素
    Hierarchy的元素都是gameobject.
  3. 所有的gameobject, 不过是在empty object上挂载了各种类别的组件。
  4. GameObject必须有一个transform component,位置,旋转,缩放

组件介绍

  1. Mesh
    网格
    Mesh Filter: 获取mesh, 并传递到所属的对象gameobject上,如果网格拥有蒙皮信息,将创建skinned mesh renderer.还要为gameobject添加一个mesh render,才能让对象在scene中渲染出来。让对象在scene中渲染出来。
    Text Mesh: 文字渲染器, 生成3d文字。
    Mesh Renderer: 从filter获取网格模型,根据transform组件在scene中渲染。

  2. Effect
    特效,效果
    Particle System: 粒子,烟雾,气流,火焰,瀑布
    Tail Renderer: 轨迹/拖尾 Gameobject 在scene中产生拖影效果
    Line Renderer: 3d空间中2-N个点之间的连线,支持自定义宽度和材质贴图,需要多个Gameobject添加LineRenderer.
    Lens Flare: 镜头光晕,强烈光源的折射效果。
    Halo: 光环,光晕,光源对象或自发光物体光晕和空气中细小灰尘
    Projector: 幻灯片,将材质纹理投射到Scene中所有与视锥相交的gameobject上。必须projector类型的Shader配置才能工作。
    Legacy Particles:

  3. Physics
    物理组件: 各种物理效果 Nvidia Physx物理引擎

  4. Navigation
    寻路导航
    NavMesh Agent: 寻路,存放导航网络代理导航信息
    Off-Mesh Links: 导航网格代理 将分离的网格连接起来
    Navmesh Obstacle: 导航网格障碍物,通过将固定位置的障碍物来烘培进行计算。

  5. Audio:
    Audio Listener: 侦听器
    Audio Source: 音源
    Audio Reverb Zones: 混响区
    Audio Low Pass Filter: 低通滤波器
    Audio High Pass Filter: 高通滤波器
    Audio Echo Filter: 回响过滤器
    Audio Distortion Filter: 失真滤波器
    Audio Reverb Filter:
    XXXXX

  6. Rendering:
    渲染
    Camera: 摄像机 数量不受限制
    Skybox: 天空盒 包围Scene的巨大立方体
    Flare Layer: 耀斑/光晕层 camera默认带有
    GUI Layer: ui 在游戏运行状态下才能被渲染出来,摄像机默认带有的组件
    Light: 灯光,各种光,平行,点,方向光
    Light Probe Group: 动态光探头/灯光探测器 添加一个或多个探测器,为移动物体实事计算光照贴图
    Occlusion Area: 遮挡区域 运动的游戏对象身上,遮挡剔除功能
    LODGroup: LOD Group 细节级别,
    GUI Texture: gui 使用的图片
    GUI Text: 文本

  7. Miscellaneous:
    综合
    Animator: 生成器
    Animation: 动画
    Network View: 网络视图 网络通信组件??? 状态同步 和 RPC(remote procedure call <html/>)
    Wind Zone: 风域 用来模拟游戏对象受风力影响产生效果

操作

  1. scene 中添加gameobject
    `create object -> add mesh filter -> add mesh render(add material for render)`
    

Script脚本

javascript C sharp Boo

  1. Scripts.unity
    包含一些默认的脚本
    General:
    __Activate Trigger__: 激活触发器 激活场景中的触发器对象
    __Drag Rigidbody__: 拖动刚体 
    
    Camera Control:
    __Mouse Orbit__: 鼠标轨迹 camera 根据鼠标的偏移值旋转
    __SmoothFollow__: 平滑跟随 camera 跟随父对象进行移动、旋转,跟随的延迟和阻尼系数
    __SmoothLookAt__: 平滑注视 camera 永远对准约束的游戏对象
    
    Unity Script:
    __CombineChildren__: 结合子对象 将相同材质的对象们结合起来,达到优化的目的
    __MeshCombineUtility__: 网格合并工具 
    

创建光源

  1. light 的类型
    directional:放到无限远
    point: range 类似于灯泡
    Spot: 锥形区域,耗费gpu资源
    Area Light: 光照贴图烘培

  2. Rendering paths : vertex lit顶点光照 , forward正向渲染, deferred lighting延时光照
    主要是阴影的效果

  3. 创建光源调节颜色可以制造处午后的光照效果

  4. 创建Camera

    . Perspective:透视
    . Orthographic: 正交
    . Camera Component:
    clear flag : skybox SolidColor DepthOnly Don’tClear
    CullingMask: 剔除遮罩 根据游戏对象指定的层控制摄像机渲染的游戏对象。
    Projection: Perspective:透视,透视方式渲染对象 Orthographic:正交
    Depth: 深度,控制摄像机渲染顺序,较大值在之上渲染
    ClippingPlanes: 剪裁平面 开始渲染与停止渲染之间的距离near far
    RenderingPath: 渲染路径

  5. Terrian Editor 地形编辑器

    unity 底边lod 功能,会根据地形距离及起伏程度调整pathc网络的疏密程度。
    TODO:

  6. CharacterController

    1. First Person Controller
    2. 3rd Person Controller
  7. 粒子系统

    粒子发射器、粒子动画器、粒子渲染器, 可以通过脚本控制每个单独的例子
    Send Collision Message 模拟子弹和冲击伤害

  8. Skybox 天空盒

    使用了特殊类型shader的材质, 根据指定的纹理模拟远景、天空效果

    • DawnDusk
    • Eerie
    • MoonShine
    • 自定义天空盒
  9. Fog雾效

    远看有,近看没有

  10. Water效果

  11. Sound效果


Shuriken粒子系统


Mecanim 动画系统

丰富且复杂的动画系统

  • 人体角色工作流和动画创建能力
  • Retargeting运动重定向 把动画从一个角色模型应用到另一个角色模型
  • Animation Clips 动画预览能力
  • 动画间复杂交互作用的可视化
  1. Mecanim 工作流

    • 资源准备与导入
    • 角色的建立 (人体模型的avatar创建、肌肉定义muscle definitions)
    • 角色的运动 (动画片段及相互间的交互作用,状态机、混合树、动画参数、代码控制动画)
  2. 游戏中使用角色动画

    • 动画循环片段 是否适配
    • Animator组件 拥有Avatar的GameObject 都有一个Animator组件,

      Animator Controller角色设置行为,包含状态机(statemachines)、BlendTrees、脚本控制的Events

      • Controller
      • Avatar
      • Apply Root Motion 控制角色的位置
      • Animate Physics 动画物理交互
      • Culling Mode 动画剪裁模式
      • 总是启用动画
        混合树Blend Tree
        区别于 动画过渡

物理引擎

  1. RigidBody 刚体 接受外力、扭矩力

    transform组件 不会受到外力
    RigidBody与游戏对象的关系

    • Parenting 半独立方式随parent 移动
    • Scriping 在游戏对象刚体上添加AddForce()和AddTorque()添加作用力和扭矩力
    • Animation 在动画和物理系统间切换对象的控制权,被标记为动力学模式,直接操作Transform,刚体会影响其他对象,但自身不会受到影响。
  2. Colliders 碰撞体

    没有碰撞体的刚体 在模拟中会彼此穿过
    physic material 不同的物理材质类型决定了碰撞体与其他对象的交互形式

    • Box Collider
    • Sphere Collider
    • Capsule Collider
    • Mesh Collider 网格,获取网格对象, 开始convex参数才能是mesh 碰撞体之间碰撞, 耗资源。网格碰撞体3角行数量少于255省。
    • Wheel Collider
  3. 碰撞

    • 碰撞体和刚体 共同作用 产生了物理效果 碰撞的时候会有3个消息 发送给绑定的对象
    • 触发器 是碰撞体失效,发生碰撞时发送3个触发消息 切换场景、自动门等
    • 摩擦力和弹力 物理材质决定
    • 关节
      • HingeJoint,
      • FixedJoint固定关节(约束一个游戏对象对另一个的运动)
      • SpringJoint弹簧关节
      • CharacterJoint角色关节 表现布娃娃 系统
      • ConfigurableJoint可配置关节
    • 力场

      类似于火箭 起初没速度、不断加速


Demo

Scene End ball game 物理引擎练习。


光照贴图技术

  1. Lightmapping

    增强静态场景光照效果, 不能作用到动态游戏对象

    • Single Lightmapping 静态、仅生成一张Far光照图(保存了非实时光源)、
    • Dual Lightmaps 区分实时、非实时区域,bake near,far 两种贴图, 近的实时渲染、远的使用贴图,临界区会平滑的插值过渡。
    • Directional Lightmap 静态物体使用, 光照贴图+实时Bump/Spec映射效果。
  2. LightProbes

    Scene中放置采样点,收集周围明暗信息,对动态对象临近的采样点进行插值,结果作用于对象上


NavMesh 导航网格

3d游戏World中 动态物体自动寻路的一种技术

  • Navigation Static 参与导航网格烘培
  • OffMeshLink Generation 关联分离的mesh
  • NavigationLayer Default, NotWalkAble, Jump
  • Bake Radius
  • Navmesh Obstacle组件 路障、
    yield return 代替Timer 使用

遮挡剔除技术

Occlusion Culling 提高渲染性能

后期屏幕渲染特效

ImageEffects 应用在Camera上

  • 特效编写在OnRenderImage()函数

开发篇

基础知识

  1. 向量

    Basic Concepts

    • 模 向量的长度
    • 标准化 保持方向不变 将向量长度变1
    • 单位向量 长度为1
    • 零向量 各分量均为0

    运算

    • 加减 合力、叠加
    • 数乘 缩放
    • 点乘 向量点相乘 标量值 向量长度相乘后 再乘以 夹角的余弦值,如果均为单位向量 a.b 等于向量b在a方向上的投影长度

      u.v == 0 u,v垂直 u.v >0 u,v小于90’, u.v <0 u,v夹角大于90

    • 叉乘 两个向量相乘得到新的向量,垂直于原来的两个向量
  2. 矩阵

    BasicConcepts

    • m行n列 3d 中常用4x4矩阵
      运算
    • 平移
    • 旋转
    • 缩放
      Matrix4x4类
  3. 齐次坐标

    • (wx, xy, wz, 1) 坐标点 (wx, wy, wz, 0)表示向量
  4. 四元数

    • 一个标量分量和一个3维向量
      Q=[w, (x,y,z)]
    • 使用Quaternion类表示
  5. 坐标系

    • 世界坐标系 游戏场景
    • 局部坐标系 模型Mesh的顶点就是
    • 相机坐标系 物体是否在相机前方,及物体间的遮挡顺序
    • 屏幕坐标系 描述屏幕上的位置

      +Transform.TransformPoint() 局部坐标系->世界坐标系
      +Transform.InverseTransformPoint()
      +Transform.TransformDirection(Vector3.forward)计算世界坐标系下物体的前方向(物体的前方向为局部坐标系z轴的正方向)

  6. 渲染管线

    • Rendering 3d物体场景 转化为二维图像
      • RenderingPipeline 显示芯片内用于处理图形信号而相互独立的并行处理单元,每个处理阶段都从上一阶段接受输入数据,然后进行处理
        管线处理的数据是顶点、几何图元和片段
      • FixedRenderingPipeline 固定管线 顶点处理和像素着色是固化的
      • 可编程Pipeline(shader)
        +D3D9 渲染管线有9个阶段 局部坐标transform->世界坐标transform->观察坐标transform->背面消隐->光照计算->裁剪->投影->视口计算->光栅化

Unity Script

  1. C Sharp

    • 只支持内建数组 new int[5]
    • foreach(int item in array)
    • ArrayList List
    • ref 关键字 引用参数, 声明和函数调用实参数钱也要添加ref.
    • out 关键字 实现多个返回值, 声明和实参调用都得使用out .
    • Start或Awake 不是用构造函数
    • 游戏对象脚本类名与文件名要相同
    • 协同函数Coroutines 返回类型是IEnumerator, 使用yield return 替代yield
    • 必然事件Update(called every frame), Start(), awake(called when create), fixedUpdate(固定时间间隔, 物理状态), LateUpdate(相机、游戏场景)
  2. MonoBehavior

    • OnMouseEnter, OnMouseOver, OnMouseExit, OnMouseDown, OnMouseUp, 鼠标对于GUI控件、或碰撞体
    • OnTriggerEnter, OnTriggerExit, OnTriggerStay, 碰撞体和触发器相关
    • OnCollisionEnter, OnCollisionExit, OnCollisionStay, 碰撞体和刚体相关
    • OnControllerColliderHit, 当控制器移动时与碰撞体
    • OnBecameVisible, OnBecameInvisible, 相机
    • OnEnable, OnDisable, 对象
    • OnDestroy 脚本销毁, OnGui 渲染GUi和处理GUI消息时调用
  3. 组件变量

    • transform 对象位置、旋转、缩放
    • rigidbody
    • renderer
    • light
    • camera
    • Collider
    • Animation
    • Audio

      GetComponent, GetComponents, GetComponentInChildren, GetComponentsInChildren

  4. Time类

    Time

    • time
    • timeSinceLevelLoad
    • deltaTime 上一帧的时间
    • fixedTime fixedUpdate时间
    • fixedDeltaTime
    • maximumDeltaTime
    • smoothDeltaTime
    • timeScale
    • frameCount 渲染帧的总数
    • realtimeSinceStartup 游戏开始到现在经历的真实时间
    • captureFramerate 固定帧率
      Random
    • seed 随机数生成器种子
    • value
    • insideUnitSephere
      Mathf
    • PI
    • infinity
    • NegativeInfinity
    • Deg2Rad
    • Rad2Deg
    • Epsilon
  5. Coroutine协同程序
    多个协同程序,同时只有一个在运行,别的会挂起

    • StartCoroutine
    • StopCoroutine
    • StopAllCoroutine
    • WaitForSeconds
    • WaitForFixedUpdate

I/O 和 控制

  1. Input

    鼠标、键盘、摇杆/方向盘/手柄

    • compensateSensors 屏幕方向补偿感应器
    • gyro 陀螺仪
    • mousePosition
    • anyKey
    • anyKeyDown 任意键按下第一帧返回true
    • inputString 键盘输入字符串
    • acceleration 3维空间中的线性加速度
    • accelerationEvents 上一帧的加速度数据列表
    • accelerationEventCount 上一帧的加速度参数数据长度
    • touches 触摸状态列表
    • touchCount 所有触摸状态列表长度
    • deviceOrientation
      .
    • GetAxis 虚拟输入轴的值, -10 - 10的渐变值
    • GetAxisRaw
    • GetButton 虚拟按键是否被按下
    • GetButtonDown 在按键按下的那一帧返回true
    • GetButtonUp 在按键松开的那一帧返回true
    • GetKey 指定的按键被按下时返回true
    • GetKeyDown 指定的按键按下时返回true
    • GetKeyUp 指定的见松开
    • GetJoystickNames 所有摇杆名称数组
    • GetMouseButton
    • GetMouseButtonDown
    • GetMouseButtonUp
    • ResetInputAxes重置输入
  2. GUI

    内置GUI


Shader \& ShaderLab

  1. Shader开发

    渲染管线中的特定处理阶段提供算法的一段代码
    实时渲染, 镜头景深、动态模糊、卡通渲染
    shader, shaderLab, 表面着色器(Surface Shader)

    Shader 'MyShader'{
     Properties{
       _MyTexture ("My Texture", 2) = "white" {}
     }
     SubShader{
      //surface shader, vertex & fragment shader, fixed function shaders
     }
     SubShader{
       //备选shader
      }
    }
    
    • 一个着色器包含1个或多个字着色器,会遍历寻找第一个被用户设备支持的子着色器进行渲染
    • Properties的属性定义
      (“显式名称”, Vector)=默认向量值 4维向量
      (“定义名称”, Color)=颜色值
      (“……”, Float)=浮点数
      (“……”, Range(min, max))=默认浮点数
      (“……”, 2D) 贴图{选项}
      (“……”, Rect) 矩形纹理属性(非2的n次幂)
      (“……”, Cube) 立方体纹理属性

      选项

      • TexGen 纹理生成模式 ObjectLinear, EyeLinear, SphereMap, CubeReflect, CubeNormal
        与OpenGL的纹理生成模式相对应,如果使用自定义的顶点程序,该参数将被忽略。
      • LightmapMode 纹理将接受渲染器的光照贴图,不从Material材质
      • Pass 每个Pass都会渲染一次对象 根据光照交互情况渲染多次
    • Pass 语法
      Pass {[name and tags] [RenderSetup 渲染][TextureSetup纹理]}
      RenderingSetup Material 材质 Lighting光照 Cull裁剪 ZTest深度测试 ZWrite深度缓存写入 Fog AlphaTest BlendAlpha Color ColorMask Offset SeparateSpecular ColorMaterial
      TextureSetup 用于固定管线(使用了SurfaceShader Vertex&FragmentShader将忽略)使用SetTexture{[命令选项]}, 包含命令combine[previous, constant, primary, texture], constantColor, matrix, Unity支持UsePass
    • Category分类
      类似于子着色器继承
      Shader “example”{
      Category{
      Fog {Mode Off}
      Blend One One
      
      }
      }
  2. FixedFunction Shaders

  3. Surface Shaders

    嵌在ShaderLab的结构代码

  4. Vertex & Fragment Shaders
    使用vertex时,FixedFunction会关闭,vertex关闭固定管线中的3d transform、光照、纹理坐标生成,fragment会替换掉SetTexture的纹理混合模式


Advanced Develop

  1. Batching
    渲染过程:camera可视范围->任务模型(法线、本地位置、UV), 索引(各顶点形成的3角形),变换(位置、缩放、旋转、摄像机位置)、

  2. 编辑器扩展
    Editor Class for extend dev。
    +继承EditorWindow @MenuItem
    +自定义Inspector
    +自定义Scene onSceneGUI()

工作流程

  1. AssetBundle 是Unity包含一切的格式

    自定义二进制文件ext 改为.bytes
    AssetBundle API

    • BuildPipeline.BuildAssetBundle 任意文件类型的Asset打包成AssetBundle
    • BuildPipeline。BuildStreamedSceneAssetBundle 一个或N个Scene以流的方式打包成AssetBundle文件
    • BuildPipeline.BuildAssetBundleExplicictAssetNames 与build相同,但可以额外的指定名字
    • 使用PushAssetDependencies() 和 PopAssetDependencies()来设置asset之间的依赖关系
  2. 使用网络下载AssetBundle

    • 使用WWW直接下载
    • 使用WWW.LoadfromCacheorDownload
  3. 加载Asset

    • AssetBundle.Load() AssetBundle.LoadAsync(name)
    • Application.LoadLevel(name) Application.LoadLevelAsync(name)
    • Application.LoadLevelAdditive Application.LoadLevelAdditiveAsync(name)
  4. 卸载AssetBundle

    • Assetbundle.Unload(bool) true | false 导致AssetBundle相关的Asset是否被卸载
  5. 卸载没有使用的Assets

    • Resources.UnloadUnunsedAssets() 卸载没用的assets
  6. Instantiate 的GameObject使用 Destroy() DestroyImmediate()

Script Debug

  1. Profiler 优化与调试
    • FixedUpdate中不要包含无需重复调用的代码
    • Update 中最好不要执行find findObjectOfType findGameObjectWithTag, find操作最好在awake或 start中执行

Demo 详解

  1. Angry Bots
    • FBX(静态资源、动态资源)的导入 Model Label 可以设置FBX文件的Mesh, Material, UV, Normal 切线 Rig 设置Animation Type
      • 人物身上挂载了多个脚本

第二次阅读

  1. 概述&Concept

    • LOD Levels of Details 多层次细节
    • 实时光影
    • Lightmap 工具Beast(Color Bounce, Soft Shadows, High Dynamic Range Lighting, Lingthing of Moving Objects)
    • Mecanim 新的动画系统
  2. 3D模型、材质与动画

    • 3d的内容 Mesh, Textures, Animations, Bones骨骼
  3. Components Mesh

    • Mesh Filter 获取Mesh
123
liooge

liooge

life & exploring, the Sea of Stars

25 日志
1 分类
12 标签
© 2023 liooge
由 Hexo 强力驱动
主题 - NexT.Pisces