Unity3d 在 twitter 转载(周报) 2018.11.24 和 Unity2019 Tips

2024-05-03 21:08

本文主要是介绍Unity3d 在 twitter 转载(周报) 2018.11.24 和 Unity2019 Tips,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

 

选自过去1~2周的内容: https://twitter.com/unity3d 

1 ) 点击特效居然使用RT, 偶偶,因为UI是在 Overlay层。 不可以把特效也变为Overlay层么?

https://qiita.com/jnhtt/items/3890ea7a6570a8e7747d

使用RT 的好处, 可以在UI中间穿插因为是 RawImage 组件。不好的就是性能呗

 

 

一个API : https://docs.unity3d.com/ScriptReference/RectTransformUtility.ScreenPointToLocalPointInRectangle.html

设置: Canvas-RenderMode-Screen Space-Camera

        public void OnDrag(PointerEventData eventData){Vector2 localPos = Vector2.zero;var ii =RectTransformUtility.ScreenPointToLocalPointInRectangle(transform .parent .GetComponent<RectTransform>(),eventData.position,Camera.main,out localPos);_transform.localPosition = localPos;}

// 将屏幕空间点转换为RectTransform的局部空间中位于其矩形平面上的位置。

 

Unity官方文档中: 特别优化: https://docs.unity3d.com/2018.2/Documentation/Manual/BestPracticeUnderstandingPerformanceInUnity8.html

“Application.backgroundLoadingPriority”,可以更改在后台读取数据时可在一帧内使用的最长时间。

受影响的API 有:

  • Resources.LoadAsync
  • AssetBundle.LoadAssetAsync
  • AssetBundle.LoadAllAssetAsync
  • SceneManager.LoadSceneAsync

枚举

最大时间

ThreadPriority.Low

2毫秒

ThreadPriority.BelowNormal

4毫秒

ThreadPriority.Normal

10毫秒

ThreadPriority.High

50毫秒

using UnityEngine;public class Example : MonoBehaviour
{private void Awake(){//加载尽可能多的数据//因此,帧速率可能会降低//适用于显示进度条的场景Application.backgroundLoadingPriority = ThreadPriority.High;//慢慢读取数据,//不影响游戏性能//适合在游戏过程中在后台加载场景Application.backgroundLoadingPriority = ThreadPriority.Low;}
}

文章中还提到了 特效缓存池 的 问题~~

 

“AsyncOperation.priority”允许您设置异步加载的优先级

https://docs.unity3d.com/2018.2/Documentation/ScriptReference/AsyncOperation-priority.html

var operation = SceneManager.LoadSceneAsync(“Hoge”);
operation.priority = 10 ;

 

如果有多个异步操作出现在队列中,那些更高的优先级是先在运行

过程已经开始,你一定要注意,如果你改变了优先级并不反映

 

           yield return 0生成20B的GC Alloc

 

实验环境:Unity 2017.4.7f1

using System.Collections;
using UnityEngine;
public class Example : MonoBehaviour
{private IEnumerator Start(){while ( true ){yield return 0;}}
}

但是 yield return null 就没有发生GC Alloc

 

同样环境测试: UnityEngine.Object.name会导致生成46 B的GC Alloc

using UnityEngine;
public class Example : MonoBehaviour
{private void Update(){var name = gameObject.name;}
}

GameObject.tag时出现42B的GC Alloc

using UnityEngine;
public class Example : MonoBehaviour
{private void Update(){var tag = gameObject.tag;}
}

减少GC 建议: http://baba-s.hatenablog.com/entry/2018/11/12/150500

 

 

 

 

Standalone平台 如何防止在构建的游戏中输出output_log.txt

PlayerSetting 中取消选中就可以了~

而且这个Log 在 : C:\ Users \电脑用户名\ AppData \ LocalLow \【公司名称】\【产品名称】

 

 

 

推荐库: https://github.com/KLab/klab-messagebuses-unity

发送示例:

public sealed class MyMessageBus : MessageBus<string> {}
public sealed class Sender : MonoBehaviour
{private const string Message = "Hello, World!";private MyMessageBus Bus { get; set; }private void Start (){Bus = MessageBus.GetBus<MyMessageBus>();}private void Update (){Bus.Broadcast(Message);}
}

接收示例:

public sealed class Receiver : MonoBehaviour
{private void OnMessage(string message){Debug.Log(message);}private void OnEnable(){MessageBus.GetBus<MyMessageBus>().Connect(OnMessage);}private void OnDisable(){MessageBus.GetBus<MyMessageBus>().Disconnect(OnMessage);}
}

 

 

Unie 2018 LA 上,一个LOD and Culling Systems 的演讲 PPT

http://download.csdn.net/download/u010019717/10790598

https://www.dropbox.com/s/rznoyhg3xpvau00/culling.pptx?dl=0

 

 

 

今天我了解到你可以使用以下方法设置Vector3的值:

myVector.Set(x, y ,z);

代替:

myVector = new Vector3(x, y, z);

 

 

 

 

 

10、 “Unity-SlnGen”,它可以通过在Visual Studio和Rider编辑器上切换平台来检查代码是否又报错

https://github.com/jhett12321/Unity-SlnGen

 

 

11、 Unity 2018.3.0 b 8新功能“NET_LEGACY”符号对使用.NET 3.5的项目有效

using UnityEngine;public class Example : MonoBehaviour
{private void Awake(){
#if NET_LEGACYDebug.Log( ".NET 3.5" );
#endif}
}

 

12、 Unity 2019.1.0a 9新功能现在可以在 “Scene” 视图中更改摄像机的FOV

 

 

 

13、 Unity 2019.1.0a 9新功能现在可以在场景视图中使用Easing进行相机操作

通过从 “Unity菜单「Edit>Preferences...」 中选择 “Scene View” ,

可以在场景视图中设置是否使用Easing进行相机操作

 

 

 

14、 “UnityUIExtention”,它可以用uGUI反映多个对象上的Button的Color Transition

https://github.com/eral/UnityUIExtention

还有其它扩展。。。

 

 

15、 Unity 2018.3.0 b新功能「Managed Stripping Level」减少所有平台上的代码大小

Unity 2018.3.0b中添加了「Managed Stripping Level」

此功能

允许您减少所有平台上的代码大小

您可以通过从Unity菜单中的「File>Build Settings...」中选择「Player Settings...」,从「Other Settings」的“「Optimization」字段更改设置

 

 

 

16、 使用“Visual Studio IntelliCode”在Unity上编程 (AI 辅助开发)

https://visualstudio.microsoft.com/zh-hans/services/intellicode/?rr=https%3A%2F%2Fhatenablog-parts.com%2Fembed%3Furl%3Dhttps%253A%252F%252Fvisualstudio.microsoft.com%252Fja%252Fservices%252Fintellicode%252F

因为常用功能在输入候选的开头显示★标记

要使用“Visual Studio IntelliCode” ,需要Visual Studio 2017的15.7版

插件: https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.VSIntelliCode

 

 

17、 Unity中有雾的窗口着色器

或者刮奖的实现:https://lindenreid.wordpress.com/2018/11/19/foggy-window-shader-in-unity/

 

18、只知道Unity的 GameObject.Instantiate 创建时传入Parent 比,创建完成后设置Parent性能 速度上快,不知道为什么, 今天看到文档的描述了: 

 

这篇关于Unity3d 在 twitter 转载(周报) 2018.11.24 和 Unity2019 Tips的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/957650

相关文章

Unity3D自带Mouse Look鼠标视角代码解析。

Unity3D自带Mouse Look鼠标视角代码解析。 代码块 代码块语法遵循标准markdown代码,例如: using UnityEngine;using System.Collections;/// MouseLook rotates the transform based on the mouse delta./// Minimum and Maximum values can

Unity3D 运动之Move函数和translate

CharacterController.Move 移动 function Move (motion : Vector3) : CollisionFlags Description描述 A more complex move function taking absolute movement deltas. 一个更加复杂的运动函数,每次都绝对运动。 Attempts to

Science|癌症中三级淋巴结构的免疫调节作用与治疗潜力|顶刊精析·24-09-08

小罗碎碎念 Science文献精析 今天精析的这一篇综述,于2022-01-07发表于Science,主要讨论了癌症中的三级淋巴结构(Tertiary Lymphoid Structures, TLS)及其在肿瘤免疫反应中的作用。 作者类型作者姓名单位名称(中文)通讯作者介绍第一作者Ton N. Schumacher荷兰癌症研究所通讯作者之一通讯作者Daniela S. Thomm

提问的智慧(转载)

此文让我受益良多。值得一读,大家如果也觉得不错就一起来推~~~   ---------------------------------      在黑客世界里,当提出一个技术问题时,你能得到怎样的回答?这取决于挖出答案的难度,同样取决于你提问的方法。本指南旨在帮助你提高发问技巧,以获取你最想要的答案。       首先你必须明白,黑客们只偏爱艰巨的任务,或者能激发他们

Unity协程搭配队列开发Tips弹窗模块

概述 在Unity游戏开发过程中,提示系统是提升用户体验的重要组成部分。一个设计良好的提示窗口不仅能及时传达信息给玩家,还应当做到不干扰游戏流程。本文将探讨如何使用Unity的协程(Coroutine)配合队列(Queue)数据结构来构建一个高效且可扩展的Tips弹窗模块。 技术模块介绍 1. Unity协程(Coroutines) 协程是Unity中的一种特殊函数类型,允许异步操作的实现

Struts2常用标签总结--转载

Struts2常用标签总结 一 介绍 1.Struts2的作用 Struts2标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,struts2的主题、模板都提供了很好的扩展性。实现了更好的代码复用。Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变的需求。 Struts2的标签库有一个巨大的改进之处,struts2标签库的标签不依赖于

SIGMOD-24概览Part7: Industry Session (Graph Data Management)

👇BG3: A Cost Effective and I/O Efficient Graph Database in ByteDance 🏛机构:字节 ➡️领域: Information systems → Data management systemsStorage management 📚摘要:介绍了字节新提出的ByteGraph 3.0(BG3)模型,用来处理大规模图结构数据 背景

【转载】ACM感悟

今天看了一篇我们学校前辈的ACM的感悟,觉得写的十分有道理,这里转载,文章还会不断的改进和更新。 原文链接:http://www.cnblogs.com/Chierush/p/3760870.html?ADUIN=1339764596&ADSESSION=1401536826&ADTAG=CLIENT.QQ.5329_.0&ADPUBNO=26349 声明:本文是写给弱校ACM新手的一点

Unity3D在2D游戏中获取触屏物体的方法

我们的需求是: 假如屏幕中一个棋盘,每个棋子是button构成的,我们希望手指或者鼠标在哪里,就显示那个位置的button信息。 网上有很多获取触屏物体信息的信息的方法如下面代码所示: Camera cam = Camera.main; // pre-defined...if (touch.phase == TouchPhase.Bagan)){ // 如果触控点状态为按下Ray

【A题成品论文已出】24数学建模国赛A题成品论文(附参考代码)免费分享

A 题  “板凳龙”  闹元宵 摘要 “板凳龙”是一种传统的民俗文化活动,通常由许多板凳连接成龙的形状进行表演。本文基于螺旋线和板凳龙的运动特性,建立数学模型来分析舞龙队在不同情况下的运动轨迹、调头路径和速度优化等问题。问题主要涉及板凳龙的行进路径、碰撞避免、调头空间的设计,以及如何优化龙头的速度,以确保龙身与龙尾的行进安全。 针对问题一,舞龙队由223节板凳组成,龙头前把手的速度为1