unity 小功能、知识点一

定时重复处理,比如, 启动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);
}

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

时间: 2024-12-20 13:43:59

unity 小功能、知识点一的相关文章

unity 小功能、知识点二

协同程序的开启与终止:       在Unity3D中,使用MonoBehaviour.StartCoroutine方法即可开启一个协同程序,也就是说该方法必须在MonoBehaviour或继承于MonoBehaviour的类中调用.       在Unity3D中,使用StartCoroutine(string methodName)和StartCoroutine(IEnumerator routine)都可以开启一个线程.区别在于使用字符串作为参数可以开启线程并在线程结束前终止线程,相反使用

自制Unity小游戏TankHero-2D(3)开始玩起来

自制Unity小游戏TankHero-2D(3)开始玩起来 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的.仅为学习Unity之用.图片大部分是自己画的,少数是从网上搜来的.您可以到我的github页面(https://github.com/bitzhuwei/TankHero-2D)上得到工程源码. 本篇主要记录金币.按钮.坦克工厂.小地图等小部件,让整个场景初步成为一个可玩的游戏. 在本篇在制作过程中,

使用GO语言实现的日志集中查看的小功能.

程序分为站点端和中心端(相当于一个proxy). 这个小功能主要是解决,程序经常让我们去拖日志,特别烦.所以做个小程序.使程序可以自己去线上查看. 有个问题是,不能把游戏服务器暴露出来,还有就是不能占用业务机器的公网带宽. 这个小程序主要就是中心端(proxy)通过内网获取文件,然后转发给访问端. 中心端主要有两个文件,一个是程序文件.一个是我命名为json的文件(主要是根据ID来分辨分站) 主程序文件内容: package main import ( "encoding/json"

小功能——类似微信里,评论内容里面,点击每个人的用户名进入个人主页

项目里的朋友圈页面,每幅图片的评论内容里面,有不同的用户进行评论,起初想法是点击用户名直接进行回复,后来看微信都是点击评论内容进行回复评论的发起人,这个好做,把这个textview绑定一个监听器就ok了 后来再一想,如果要实现类似微信点击用户名就进入用户的主页,怎么让用户名可以点击呢? 现在父布局下面在new一个水平布局的linearlayout,然后根据把每个用户.包括评论内容都设置进textview里面,然后通过linearlayout的addview()方法,把这些textview添加进去

C#、Java中的一些小功能点总结(持续更新......)

前言:在项目中,有时候一些小的功能点,总是容易让人忽略,但是这些功能加在项目中往往十分的有用,因此笔者在这里总结项目中遇到的一些实用的小功能点,以备用,并持续更新...... 1.禁用DataGridView表头的排序功能 1 /// <summary> 2 /// 禁止点击列表头进行排序 3 /// </summary> 4 /// <param name="dgv">当前DataGridView控件</param> 5 private

用angular方法简单实现了吃了么搜索小功能,还不太完善,后续会继续添加新内容。

最近接触了Angular框架,今天用里面的http请求方法做了一个小的案例,是一个查询地名获取附近美食的小案例.还不太完善,后面面有时间会继续添加新的内容.这个小案例没有用到任何的jQuery与原生js方法. 先上HTML结构代码与HTML结构中的angular指令. <body ng-app="app"> <div ng-controller="con" id="con"> <h1>吃了么</h1>

python实现简单的循环购物车小功能

python实现简单的循环购物车小功能 # -*- coding: utf-8 -*- __author__ = 'hujianli' shopping = [ ("iphone6s", 5000), ("book python", 81), ("iwach", 3200), ("电视机", 2200) ] def zero(name): if len(name) == 0: print("\033[31;1m您的输

javascript实现的一个信息提示的小功能/

//什么状况.CSDN的排版怎么这么多状况,还是本人太次?调整几次都没弄好.最后一遍了-- 最近由于公司业务问题.须要做一些面向公众的平台,于是对UI要求会高一点, 对于传统的alert的这样的方式来提示用户操作错误显然会非常影响客户体验.于是做了一个小功能,来替代原本的alert.话不啰嗦,先上效果图. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDU3MTkxMw==/font/5a6L5L2T/fontsize/400/fill/I0

iOS 网易彩票-5设置模块三(常用小功能)

该篇文章中,用到很多iOS开发过程中常用的小功能,当前只是将这些功能集成到网易彩票的设置中.iOS-常用小功能介绍,请参考我的另一篇文章: iOS 常用小功能 总结:http://www.cnblogs.com/jys509/p/4805030.html 关于 效果图 思路分析: 使用self.tableView.tableHeaderView 自定义组头部,通过加载xib来实现 评分支持,使用[iOS 常用小功能 总结]中“应用评分”小功能 客户电话,使用[iOS 常用小功能 总结]中“打电话