unity3d

ECS:随机数

懵懂的女人 提交于 2020-10-22 04:00:12
各个工作线程的随机数种子是稳定的,RandomSystem的实现如下: using Unity.Entities; using Unity.Jobs; using Unity.Burst; using Unity.Collections; using Unity.Jobs.LowLevel.Unsafe; using Random = Unity.Mathematics.Random; [UpdateInGroup( typeof (InitializationSystemGroup))] public class RandomSystem : ComponentSystem { public NativeArray<Random> randomArray; protected override void OnCreate() { base .OnCreate(); // JobsUtility.MaxJobThreadCount = 7 JobsUtility.MaxJobThreadCount = 128 randomArray = new NativeArray<Random> (JobsUtility.MaxJobThreadCount, Allocator.Persistent); var seed = new System.Random(); for ( int i =

Unity周记: 2020.07.13-07.19

匆匆过客 提交于 2020-10-21 14:15:00
1. YouTube - Unity 1) Making snow with VFX Graph | Unite Now 2020 ( YouTube ) ( Bilibili ) ( Unity Learn ) Unity Learn Live, 面向初学者, 从创建Unity工程开始介绍的VFX的教程 2) Unity for Beginners – Join Kristin, Elena, Eleonora and Code Monkey on this Livestream July 23! ( YouTube ) 一个直播的宣传 3) Behind the Game: Airborne Kingdom | Unite Now 2020 ( YouTube )   一个采访视频 4) Simulating Wind in URP (Shader Graph Tutorial) ( YouTube ) ( Bilibili )   和上一期的Water一样, 标记(Shader Graph Tutorial)的视频都是以Boat Attack为例子, 用超快速的方式介绍如何操作的短视频 5) Meet the Devs: Prefab Teams | Unite Now 2020 ( YouTube ) 对Prefab开发团队的采访, 介绍了2020.1的新功能,

3分钟就能掌握的视频/音频优化技巧!

情到浓时终转凉″ 提交于 2020-10-20 09:52:42
节前,我们已经将【性能黑榜】上的Top10规则均做了详细的解读(可戳文末相关链接回顾)。 无论是大家在开发时的疏忽,还是相关知识点的缺失,这些问题的积累最终都会反映到项目的性能表现上。 为此,我们将这些规则曝光出来,并且以一个个知识点的形式逐一解读。 今天,我们来继续剖析 【UWA本地资源检测】 中和音频视频相关的规则。我们将力图以浅显易懂的表达,让职场萌新或优化萌新深入理解。 1、未使用Streaming加载的长音频 这里我们先了解一下Unity里音频加载的三种方式: Decompress On Load 音频文件以压缩形式存储在磁盘上,加载时直接解压放到内存中。这种方式在内存占用上没有优势,但在后续播放时对CPU的计算需求是最小的。一般来讲这种方式更适用于短小的音频。 Compressed In Memory 音频文件以压缩形式存放在内存里,使用时再解压。这意味着会有更多的CPU开销,但是在加载速度和内存占用上具有优势。这种情况适用于大型音频文件。 Streaming 音频文件存放在磁盘中,加载时循环以下操作:“从磁盘读取一部分,解压到内存中,播放,卸载”。这种方式在内存占用上相较而言是最小的,但在CPU的消耗上是最不具优势的。 而在音频的实际运用中,背景音乐的使用是普遍存在的。几乎所有游戏都会使用BGM以增强对游戏氛围和环境的渲染。结合以上关于音频加载方式的描述可以看出

基于unity的2d动画制作----基于c#语言开发

孤街醉人 提交于 2020-10-19 14:38:08
基于unity的2d动画制作----基于c#语言开发,类似于《冒险岛》,只有一个游戏场景。成果图UI如图1所示。游戏成果视频已经上传B站:https://www.bilibili.com/video/BV1Cr4y1c75W 2dAnimation 图1 素材来源:Unity的Asset Store,Asset Store里包含许多开源库。 主要game的对象如右图所示: 主要用到的脚本有: player的脚本主要代码如下:` //author:刘家诚, last time:2020.10.15 private float x; private float y; public float speed = 5; private Rigidbody2D _rigidbody_2D; private Animator _animator; // Start is called before the first frame update void Start() { //2d的组件 _rigidbody_2D = GetComponent<Rigidbody2D>(); _animator = GetComponent<Animator>(); } // Update is called once per frame void Update() { x = Input.GetAxis(

Cinemachine(三)自动选择/切换最适合的摄像头(Cinemachine Clear Shot Camera)

折月煮酒 提交于 2020-10-18 13:32:55
前言 在很多的解谜类游戏中,场景中往往会有很多密室,玩家需要在不同的房间中来回穿梭,除了第三人称摄像头外,我们也可以通过在不同的房间中布置不同的Camera,然后当角色到达指定房间后开启对应的Camera来处理。类似的效果如下图: 从Gif中可以看出,当我们的角色到达不同的房间时,我们的Camera会自动实现切换来观察我们的角色。在以往,我们可能需要自己来写一些触发器来判断角色到了哪个房间,然后开启指定的Camera。但是有了Cinemachine后,我们就不需要那么麻烦的敲代码了,同样只需简单的进行一些配置,Cinemachine就会替我们自动实现上述的功能。 在该案例中,我们需要使用到Cinemachine的Clear Shot功能,接下来就先让我们来了解下Clear Shot。 Demo: https://github.com/luckyWjr/Demo Cinemachine文件夹下的DemoClearShot Clear Shot 介绍 Clear Shot Camera属于一种管理类的Camera,在其根目录下会有一个或多个VirtualCamera,ClearShot会从中选择出针对被观察目标的最好画面质量的VirtualCamera。因此当场景中有很多Camera的时候使用该功能,可以保证我们的画面都可以清楚的看见我们的目标。

网络通信原理与实战应用

删除回忆录丶 提交于 2020-10-17 10:25:15
课程简介 课程内容涉及到计算机网络体系结构基础知识,包括网络分层、TCP首部与IP首部结构组成,从零开始实现了一个异步网络通信库插件。课程通过简易网络程序引入对底层原理的讲解,再结合实际问题,分析应对策略,最后落实到代码实现。完整讲解了出现问题的原因以及解决问题的方法,结构清晰,层层递进,一目了然。核心内容如下: 1)深入分析了TCP三次握手流程及其作用; 2)详细讲解了TCP协议保证可靠传输的原理; 3)梳理了网络数据在各层之间封装传输的完整流程; 4)解决了TCP协议面向数据流特性所导致的粘包分包问题; 5)开发了可扩展、易使用的网络通信库插件; 6)实现了从控制台服务器到Unity客户端的完整聊天案例。 [UWA学堂]1.课程介绍与环境配置 说明: 1. 本视频全长约6小时45分钟。 2. 第37节提供了课程Demo及PDF课件。 适合读者 1. 从事Unity客户端开发的技术人员 2. 想了解网络通信原理的技术人员 3. 对网络通信有需求的独立开发者 你将获得 1. 计算机网络体系结构基础知识 2. 熟悉网络底层数据传输流程及实现原理 3. 掌握C#语言网络应用程序编写方法 4. 能开发可扩展易使用的网络通信插件 5. 课程配套课件及项目工程 来源: oschina 链接: https://my.oschina.net/u/4382774/blog/4677463