码迷,mamicode.com
首页 > 编程语言 > 详细

unity 小功能、知识点一

时间:2018-01-12 22:33:39      阅读:313      评论:0      收藏:0      [点我收藏+]

标签:osi   render   parent   png   unity   frame   dos   种类   ade   

定时重复处理,比如, 启动0.5秒后每隔1秒执行一次 DoSomeThing 函数:
1.用InvokeRepeating 函数实现
void Start() { InvokeRepeating("DoSomeThing", 0.5, 1.0); }
CancelInvoke("你调用的方法"); 停止InvokeRepeating

void Start()
{
     StartCoroutine("Repeating");开始调用
     StopCoroutine("Repeating");停止调用
}
IEnumerator Repeating()
    {
        yield return new WaitForSeconds(0.5f);

        while (true)
        {
            yield return new WaitForSeconds(1f);
            DoSomeThing();
        }
    }

 

尽量避免每帧处理,可以每隔几帧处理一次
比如:
void Update() { DoSomeThing(); }

可改为每5帧处理一次:
void Update() { if(Time.frameCount % 5 == 0) { DoSomeThing(); } }

主动回收垃圾
给某个 GameObject 绑上以下的代码:
void Update() { if(Time.frameCount % 50 == 0) { System.GC.Collect(); } }

不要使用SendMessage之类的方法,他比直接调用方法慢了100倍,你可以直接调用或通过C#的委托来实现。

关于渲染队列和Batch的非官方经验总结是,一帧的渲染队列的生成,依次决定于每个渲染物体的:
Shader的RenderType tag,
Renderer.SortingLayerID,
Renderer.SortingOrder,
Material.renderQueue(默认值为Shader里的"Queue"),
Transform.z(ViewSpace)(默认为按z值从前到后,但当Queue是“Transparent”的时候,按z值从后到前)。
这个渲染队列决定了之后(可能有dirty flag的机制?)渲染器再依次遍历这个渲染队列,“同一种”材质的渲染物体合到一个Batch里。

Unity渲染路径(Rendering Path)种类
概述
开发者可以在Unity工程的PlayerSettings设置对渲染路径进行3选1:
Deferred Lighting,延迟光照路径。3者中最高质量地还原光照阴影。光照性能只与最终像素数目有关,光源数量再多都不会影响性能。
Forward Rendering,顺序渲染路径。能发挥出Shader全部特性的渲染路径,当然也就支持像素级光照。最常用、功能最自由,性能与光源数目*受光照物体数目有关,具体性能视乎其具体使用到的Shader的复杂度。
Vertex Lit,顶点光照路径。顶点级光照。性能最高、兼容性最强、支持特性最少、品质最差。

unity 点击2D物体
1.给物体添加对应的2D碰撞体,例如Box Collider 2D;
2.Update检测鼠标是否点下;
3.如果鼠标点下,创建一条射线,通过Physics2D.Raycast获取点击时鼠标处的对象;

技术分享图片

 

从游戏开始到当前帧经历的时间 Time.realtimeSinceStartup;
从游戏开始到当前帧经历的帧总数 Time.frameCount;

计算FPS:

技术分享图片

得到当前帧鼠标的位移量:Input.GetAxis()

技术分享图片

对象跟随鼠标运动:

Vector3 wp = Camera.main.WorldToScreenPoint(transform.position);
Vector3 sp = Input.mousePosition;
sp.z = wp.z;

if (Input.GetMouseButton(0))
{
transform.position = Camera.main.ScreenToWorldPoint(sp);
}

 

unity 小功能、知识点一

标签:osi   render   parent   png   unity   frame   dos   种类   ade   

原文地址:https://www.cnblogs.com/wang-jin-fu/p/8277650.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!