当前位置: 首页 > wzjs >正文

网站建设价格如何电商热门关键词

网站建设价格如何,电商热门关键词,什么事网站建设,政府网站监管怎么做Unity学习日志4 1.Shift ctrl F将目前选中的物体移动到目前位置。2.将某个物体移动至鼠标位置3.Animation Transform相关选项4.怎样减少Unity的GC①减少对象的创建②优化字符串操作③ 及时释放不再使用的资源④ 优化数据结构 5.Unity的拆装箱机制先导知识:拆装箱&…

Unity学习日志4

      • 1.Shift + ctrl + F将目前选中的物体移动到目前位置。
      • 2.将某个物体移动至鼠标位置
      • 3.Animation Transform相关选项
      • 4.怎样减少Unity的GC
        • ①减少对象的创建
        • ②优化字符串操作
        • ③ 及时释放不再使用的资源
        • ④ 优化数据结构
      • 5.Unity的拆装箱机制
        • 先导知识:
        • 拆装箱:

1.Shift + ctrl + F将目前选中的物体移动到目前位置。

2.将某个物体移动至鼠标位置

 private void GetMousePoint(){Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);Physics.Raycast(ray, out RaycastHit hit);if(Input.GetMouseButtonDown(0)) unit.Instance.tragetPosition = hit.point;transform.position = hit.point;//Debug.Log(Physics.Raycast(ray, out RaycastHit hit));}

Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);用于把鼠标位置转化为一个射线。
Physics.Raycast(ray, out RaycastHit hit);射线检测,out保证有Raycast返回值hit。
if(Input.GetMouseButtonDown(0)) unit.Instance.tragetPosition = hit.point;
如果点击鼠标左键那么移动木标点到鼠标位置。
transform.position = hit.point;指针位置更新

3.Animation Transform相关选项

在这里插入图片描述

4.怎样减少Unity的GC

	1、C#变量分为两种类型:值类型和引用类型,值类型分配在栈区,引用类型分配在堆区 GC关注引用类型

2、GC卡顿原因:堆内存垃圾回收,向系统申请新的堆内存

3、GC触发条件:堆内存分配而当内存不足时、按频率自动触发、手动强行触发(一般用在场景切换)

4、GC负面效果:内存碎片(导致内存变大,GC触发更加频繁)、游戏顿卡

5、GC优化方向:减少GC次数、降低单次GC运行时间、场景切换时主动GC

6、GC优化策略:减少对内存分配次数和引用次数、降低堆内存分配和回收频率
  
  7、结构体数组:如果结构体中含有引用类型变量,对结构体数组进行拆分,避免GC时遍历所有结构体成员

原文链接:https://blog.csdn.net/Songxianzhang/article/details/141027315

①减少对象的创建

使用对象池:对于频繁创建和销毁的对象,如子弹、敌人等,可以使用对象池来管理。对象池的基本原理是预先创建一定数量的对象,当需要使用对象时,从对象池中取出;当对象使用完毕后,将其放回对象池中,而不是销毁。这样可以避免频繁的对象创建和销毁,减少 GC 的压力。避免在循环中创建对象:在循环中创建对象会导致大量的临时对象被创建,增加 GC 的压力。可以将对象的创建移到循环外部,或者使用对象池来管理这些对象。

②优化字符串操作

避免频繁的字符串拼接:在 C# 中,字符串是不可变的,每次进行字符串拼接操作都会创建一个新的字符串对象。可以使用StringBuilder来代替字符串拼接操作,减少临时对象的创建。

using System.Text;
using UnityEngine;public class StringBuilderExample : MonoBehaviour
{private void Start(){StringBuilder sb = new StringBuilder();for (int i = 0; i < 10; i++){sb.Append(i.ToString());}string result = sb.ToString();Debug.Log(result);}
}
③ 及时释放不再使用的资源

手动销毁不再使用的对象:当某个对象不再使用时,及时调用Destroy方法将其销毁,以便释放内存。
释放非托管资源:对于一些非托管资源,如纹理、音频等,需要手动调用相应的释放方法来释放资源。例如,使用Resources.UnloadUnusedAssets方法来释放未使用的资源。
非托管资源: 不能被GC自动回收的对象,需手动回收。

④ 优化数据结构

选择合适的数据结构:不同的数据结构在内存使用和性能方面有不同的表现。根据实际需求选择合适的数据结构,避免使用过于复杂或占用内存过多的数据结构。
减少数据结构的频繁扩容:对于一些动态数组,如List,在添加元素时可能会发生扩容操作,导致内存重新分配和临时对象的创建。可以预先分配足够的容量,减少扩容的次数。

5.Unity的拆装箱机制

先导知识:

①引用类型与引用类型之间赋值操作
当把一个引用类型的变量赋值给另一个引用类型的变量时,实际上传递的是对象的引用(内存地址),而非对象本身。这意味着两个变量会指向堆内存中的同一个对象。因此,对其中一个变量所引用对象的属性进行修改,会反映到另一个变量上。
②值类型与值类型之间赋值操作
值类型变量赋值时,会把变量的值复制一份给新的变量。两个变量在内存中是相互独立的,对其中一个变量进行修改,不会影响到另一个变量。
因此值类型赋值的时候如果数据量较大可能会影响到程序的性能,然而引用类型的时间复杂度低一般不会有性能的问题。

拆装箱:

拆装箱指的是:
:把引用类型转换回值类型,在进行拆箱操作时,首先会检查引用类型所指向的对象是否是目标值类型的装箱实例,如果是,则将堆上存储的值复制到栈上的目标值类型变量中。
首先会检查引用类型所指向的对象是否是目标值类型的装箱实例
意思是在拆箱的时候会先检查引用类型装的变量是否为要赋值给的值类型是的话转化并赋值,否则抛出异常。
:将值类型转换为引用类型,当进行装箱操作时,会在堆上分配一块内存,将值类型的数据复制到这块内存中,然后返回一个指向该内存地址的引用。

由于装箱会涉及到内存分配和赋值所以性能开销及大。拆箱过程也需要涉及到赋值。
因此使用泛型集合可以很好的避免拆装箱,因为在集合定义之初已经定义变量类型了。

http://www.dtcms.com/wzjs/142342.html

相关文章:

  • html5 网站案例seo快速排名软件网址
  • 域名停靠黄页应用seo是一种利用搜索引擎的
  • 常用的网站类型有哪些类型有哪些类型有哪些百度搜索风云榜排名
  • 织梦cms手机网站b站推广费用一般多少
  • 包头网站建设易通四川百度推广排名查询
  • 网站开发选择什么软件整合营销策划
  • 如何搜索到自己的网站seo权重查询
  • 建设网站 费用app开发者需要更新此app
  • 网站是陕西省城乡建设综合服务中心外链发布工具
  • 济南网站建设 小程序网站seo在线优化
  • PHP开源网站开发系统百度营销搜索推广
  • 嘉兴企业网站制作怎么快速优化关键词排名
  • go 语言 做网站四川自助seo建站
  • 天津做做网站百度公司简介介绍
  • 长沙网站建设流程网页模板免费下载网站
  • 龙岗菠菜网站建设电商运营数据六大指标
  • 做ppt到哪个网站找图片网络推广怎样做
  • qq互联 网站建设不完善最新搜索引擎排名
  • 河南洛阳网站建设百度霸屏推广靠谱吗
  • 浙江省建设信息港网站公众号开发
  • rails网站开发建立免费个人网站
  • 呼和浩特市网站公司电话自己搭建网站
  • 网站推广计划包括哪些谷歌浏览器直接打开
  • 买服务器做网站主机推广官网
  • 新闻网站运做百度关键词投放
  • 福州网站建设推进网站建设制作教程
  • 网站建设管理软件广东深圳今天最新通知
  • wordpress 查看文章404口碑优化seo
  • 毕业设计做网站 答辩会问什么问题电商网络推广是什么
  • 做网站需要竞品分析么优化大师怎么卸载