`
berry_gong
  • 浏览: 5143 次
  • 性别: Icon_minigender_2
  • 来自: 厦门
最近访客 更多访客>>
社区版块
存档分类
最新评论
文章列表

Unity Vector

 
指向被减向量 // Gets a vector that points from the player's position to the target's. var heading = target.position - player.position;   标准化向量 var distance = heading.magnitude; var direction = heading / distance; // This is now the normalized direction.   比较距离,避免求平方根 if (heading.sqrMagnitude < ...

Camera 2 Ray

在上一节的视锥里说到,视图上的每个点都是三维空间中的一条线。用Ray来描述。   Camerar提供了两个方法: ScreenPointToRay(提供屏幕坐标)  ViewportPointToRay(提供标准化的坐标,0表示左和下,1表示右和上)。两个方法都返回一个由起始点和标示方向的向量构成的Ray。起始点在近裁剪面上。而不是相机原点。   Raycasting 从相机发出一条虚拟射线,直到撞到目标固体 var hit: RaycastHit; var ray: Ray = camera.ScreenPointToRay(Input.mousePosition); i ...

Camera 1 view frustum

视锥(view frustum)   相机的视图上的第个点都对应3D空间中一条线,这些线最终聚合到一点。就是相机的空间位置,也就是透视中心。视锥外的都不可见。还有近、远的两个裁剪平面(平行相机XY面)比近面近的不可见。比远面远的也不可见。Field Of View(FOV)是指锥尖与裁剪面上边中点构成的线,及锥尖与下边中点构成的线的角度。     用离相机的特定距离可以定义视锥中某个截面。两者可通过 FOV*0.5的tan来换算。 var frustumHeight = 2.0 * distance * Mathf.Tan(camera.fieldOfView * 0.5 * M ...

Unity对象池的做法

从unity官方论坛上看来的。原版为英文http://forum.unity3d.com/threads/simple-reusable-object-pool-help-limit-your-instantiations.76851/     纹理池可以存储游戏中经常复用的对象,并允许用户从其中获取对象,并且区分这两种情况:获得已有的对象或者无论如果都返回一个可用的对象(没有就新建)。   步骤如下: 在prefab array里存入想初始化的预设。 对每个预设,设定初始化的数量(一开始就初始化一定数量的对象)。有默认数量。 调用ObjectPool.instance.G ...

Unity单例和事件

    继承自Mono的单例写法: public class Clicker : MonoBehaviour { // Singleton private static Clicker instance; // Construct private Clicker() {} // Instance public static Clicker Instance { get { ...

Unity开发优化总结

对所有需要的组件进行缓存。因为调用例如 transform, renderer之类的组件。内部会调用getComponent。效率非常低。缓存外部GameObject。道理相同。find很慢。gameObject 则不用。哪里访问都一样。 用缓存池,而不是永远都初始化新的。 ...
http://3dgep.com/understanding-quaternions/  Understanding Quaternion的学习笔记   一.基本知识 复数的形式:   总结一下复数的运算   加:   减:   数乘:   复数与复数的积   平方(转化为2个相同复数相乘)
Global site tag (gtag.js) - Google Analytics