我们在移动端的开发中,异步网络图片加载用的非常的多,在unity当中虽然有AssetBundle的存在,一般是先加载好游戏资源然后再进入场景,但是还有不少地方能够用到异步网络图片的加载以及其缓存机制。 我之前也写过两个版本的ios中的异步网络图片加载helper类,所以今天按照同样的思路,也想做一个好用的helper类给大家使用以及简单的说下实现原理。 首先我们加载一张网络图片,要做的事情分步来
转载
2024-06-13 14:41:49
60阅读
Unity-坐标空间坐标空间的变换坐标空间模型空间世界空间观察空间剪裁空间屏幕空间总结 渲染游戏的过程可以理解为是把一个个顶点经过层层处理最终转化到屏幕上的过程 就像顶点着色器最基本的功能就是把模型的顶点坐标从模型空间转换到齐次剪裁坐标空间中Unity中有很多种坐标空间大概包括:模型空间 世界空间 观察空间 剪裁空间 屏幕空间 还有一些其他空间例如:切线空间如果我们要了解各个空间的意义与变换情况
转载
2024-04-10 13:23:02
128阅读
目录前言什么是多线程什么是job system什么是一个job什么是job dependenciesC# Job System的安全系统Race conditionsSafety systemNative ContainerNativeContainer 的类型NativeContainer 和安全系统NativeContainer Allocator创建jobAn example of a s
转载
2024-10-25 08:46:15
29阅读
世界坐标系场景中的绝对坐标系,场景上所有物体都是以该坐标系的原点来确定各自位置的。世界坐标即物体在世界坐标系中的位置。局部坐标系以物体的世界坐标为原点,角度为朝向,大小为单位,所产生一个新的坐标系,该坐标系中,物体的位置、旋转、大小都会受到此坐标系的影响。局部坐标即物体在局部坐标系中的位置。相对坐标系以物体在父级坐标系的坐标为原点,角度为朝向,大小为单位,所产生一个新的坐标系,该坐标系中,物体的位
转载
2024-08-24 20:11:01
112阅读
创建 Hello World本文将介绍如何在 Windows 系统下,使用 HiAR SDK 创建一个简单的 AR 应用。在开始之前,请先完成下列准备工作:注册 HiAR 帐户获取 AppKey 和 Secret导入 SDK Step 1. 新建 Unity 工程并导入 SDK运行 Unity 程序,新建一个 Unity 工程,然后将 SDK 包中 lib 目录下的 hi
今天我们来谈谈关于Unity中的旋转。主要有三种方式。变换矩阵,四元数和欧拉角。定义变换矩阵 可以执行任意的3d变换(平移,旋转,缩放,切边)并且透视变换使用齐次坐标。一般比较少用到。Unity中提供了一个Matrix4x4矩阵类四元数 “四元数是最简单的超复数。 复数是由实数加上元素 i 组成,其中i^2 = -1。 相似地,四元数都是由实数加上三个元素 i、j、k 组成,而且它们有如下的关系:
转载
2024-07-10 07:32:38
110阅读
第5章 开始 Unity Shader 学习之旅5.2 一个最简单的顶点/片元着色器顶点/片元着色器的基本结构// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
// 定义 shader 的名字
Shader "Chapter 5/Simple Shader"
{
SubSh
转载
2024-07-09 12:30:36
138阅读
2022年7月20日更新线性空间是指物理意义上的真实颜色值,伽马空间是人眼会自动将真实世界进行一个伽马校正运算,即对数据进行1/2.2次幂,提高较暗区域细节,减弱亮区域细节。人眼处理这种细节变化是用了非常多感光细胞去识别较暗色区域的,杆细胞?而且这种存储过程是细胞自动进行的,具体细节很难摸索出来,如果没有伽马空间一说,美术人员制作图片是一直操控着软件去编辑线性空间意义上的图像数据,保存后存储到一张
转载
2024-06-30 10:11:49
137阅读
Unity的生命周期官方给的流程图很清晰很详细,这里个人加一些说明:1.Reset只会在编辑器中调用,来初始化脚本的属性,当它第一次连接到对象时,并且在使用重置命令时(点击脚本组件上齿轮里Reset)。2.顺序:Awake -- OnEnable --Start3.OnEnable每次脚本对象 由不可用变为可用时候调用(即所在物体Active且脚本组件Enable)4.物体初始没有激活,则其身上脚
转载
2024-04-18 11:06:46
83阅读
前言:本篇博客只是一个简单的了解法线纹理创建和采样的例子,主要是当做笔记使用。凹凸映射:由于场景中的模型会存在凹凸不平的效果,如果把这个凹凸效果交给建模师来构建模型的话,这样模型的三角面片将会十分的巨大,从而造成gpu的渲染压力。这时就可以将模型贴图的每个像素点的高度信息转换成法线信息并以像素的形式存储在法线纹理中。当渲染模型时就会从法线纹理中采样获取像素信息,并将该像素信息转换成法线信息,然后与
术语 模型空间:由模型对象本身决定的空间(Model Space),有时也称对象空间(Object Space)或者局部空间(Local Space),坐标轴xyz分别对应右、上、前三个方向。 世界空间:最外层的空间(World Space),用于定义绝对位置。 &nb
转载
2024-07-26 18:31:38
145阅读
假设你在做电影工作,你的团队已经为了一些特效镜头构建的火车场景微
原创
2022-08-11 09:48:53
265阅读
UnityObjectToWorldDir用于把模型空间下的矢量转换到世界空间UnityObjectToWorldNormal用于把模型空间下的法线向量转换到世界空间。因为必须保证法线垂直于模型的表面,所以缩放的时候与普通矢量不一样。如果法线用UnityObjectToWorldDir,则会出现以下错误,而用UnityObjectToWorldNormal,则可得到正确的结果  
转载
2024-05-06 23:58:37
474阅读
使用线性空间的一个显着优点是,随着光强度的增加,提供给场景中的着色器的颜色会线性地变亮。使用伽玛空间,随着光强度的增加,颜色会快速变为白色。一些移动设备不支持线性空间(仅对OpenGLES 3.0及以上的设备进行支持)。Unity贴图上有个选项:sRGB(Color Texture),当贴图作为颜色来显示,则勾上sRGB,当贴图作为值来使用,则不勾上。伽玛空间:Unity设置了伽玛空间后,图片导入
转载
2024-05-04 18:47:39
83阅读
空间思考:多模态大型语言模型如何看待、记忆和回忆空间 VSI-Bench:我们引入了一个高质量的基准,用于评估 MLLM
简介 PCG是程序生成游戏内容的简称,它使用了随机或者伪随机数的技术,给游戏带来了无限的可能。相比于传统的由设计师将游戏世界中的一草一木都精心配制,PCG的方法是去配置一些生成的规则,然后由生成算法自动去生成游戏世界。 在过去的时候,由于游戏主机和PC性能的限制,PCG的内容非常的简单,比如随机地牢或者游戏的地图,但近年来随着sandbox品类的游戏的兴起,比如风靡全球的Minecraft,PC
Unity中的旋转——以行星环绕为例实现效果一、与之相关的两种旋转方式1.Rotate2.transform.RotateAround二、行星案例的实现Step1:我们先在场景中创建一个球体,并将它放大作为被环绕的恒星(我这里自己上了贴图)Step2:制作环绕它的行星;我们创建一个比恒星小一些的球体,将它水平拖拽到离恒星有一定距离的位置Step3:再创建一个比行星小的球体,并将其移动到行星的周围
转载
2024-05-08 09:03:57
85阅读
问题描述:如果项目切到过线性空间,或者一开始就在线性空间,而美术制作ui的时候没有做设置,那么很快你就能发现这个问题了。美术会发现他们制作的ui效果和在unity里摆出来的不一样,特别是设计到透明度混合等问题问题的根源: 比如AB两个图层,A在上层,B在下层,A的alpha不为1 PS中默认
转载
2024-03-22 08:32:39
405阅读
当项目越来越大,脚本越来越多,脚本类名间发生冲突的可能性就越大。现实的游戏开发中,是数名程序员针对游戏不同的方面分别开发,但最后都会把各自的劳动成果汇总到一个项目里。但当一位程序员为游戏主角写控制他的代码时,另一位程序员写了相同的代码,用来控制敌人。它们两个可能都选择Controller来作为这个脚本里这个类的类名,当项目合并时,就可能导致冲突。  
转载
2024-05-28 09:49:57
71阅读
在 Unity Editor 创建脚本或者相关文件时里面都会有一些预设的内容比方说 MonoBehaviourusing System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewMonoBehaviour : MonoBehaviour
{
// Start is c
转载
2024-04-11 13:52:23
263阅读