【unity小技巧】常用的方法属性和技巧汇总

学习目标:

最近学习过程经常遇到一些好的方法属性和技巧,但是很容易忘记,单内容都比较少,又不至于开一篇文章单独讲解各个用法,特此单独写一篇做汇总,好记性不如烂笔头,后面收获一些新的知识我还会持续更新这篇文章的


移动:

# 让游戏对象在两个点之间按照固定速度进行平滑的移动
# 参数1表示当前位置,参数2表示目标位置,参数3表示单次调用时最大移动距离
transform.position = Vector2.MoveTowards(transform.position, targetPos, moveSpeed * Time.deltaTime);
# 使游戏对象平滑地移动到一个新的位置
# rb.position:获取刚体当前的位置
# movement:表示游戏对象的移动方向,是一个Vector3类型的变量
# 这个方法必须在FixedUpdate中调用,必须带有刚体,以保证物理引擎的正确协同工作
rb.MovePosition(rb.position + movement * moveSpeed * Time.deltaTime);
# 代码改变了刚体的速度(velocity)属性
# 这个方法必须在FixedUpdate中调用,必须带有刚体,以保证物理引擎的正确协同工作
rb.velocity = new Vector3(moveH, moveV, moveZ);

力:

# 给刚体施加一个向上的力
//rb.AddForce(new Vector2(0, jumpForce));
rb.AddForce(Vector2.up * jumpForce);rb.AddForce(Vector2.up * jumpForce, ForceMode.Force);

常见的ForceMode包括:

ForceMode.Force:添加一个可持续力到刚体,使用它的质量(默认)
ForceMode.Acceleration:添加一个可持续加速度到刚体,忽略它的质量
ForceMode.Impulse:添加一个瞬间的冲击力到刚体,使用它的质量
ForceMode.VelocityChange:添加一个瞬间的加速度给刚体,忽略它的质量

翻转:

# 缺点:如果角色带有子物体,比如武器,不会跟着一起翻转
sp = GetComponent<SpriteRenderer>();
sp.flipX = true;

在这里插入图片描述

transform.localScale = new Vector3(-1, 1, 1);

在这里插入图片描述

transform.eulerAngles = new Vector3(0, 180, 0);

在这里插入图片描述

单例模式

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class GameManager : MonoBehaviour
{public static GameManager instance;private void Awake();{if(instance =null){instance = this;}else{if(instance != this){Destroy(gameobject);}}DontDestroyOnLoad(gameobject);}
}

在Awake方法总,如果GameGameManager为空,那么我们就将这个脚本通过关键字【this】赋值给变量instance
在else语句中,如果instance不为空,那么instance并非当前的脚本,那么就需要销毁当前的游戏对象,来保证脚本的唯一性
最后别忘了在方法的最后,通过DontDestroyOnLoad方法,保证即使多个场景之间的互相切换也会保留这个脚本,保证在【不同场景】中的唯一性

取绝对值

Mathf.Abs(-10); 	//输出10

检测鼠标

UI事件系统的接口

public void OnPointerEnter(PointerEventData eventData){// 鼠标移入时执行的操作
}public void OnPointerExit(PointerEventData eventData){// 鼠标移出时执行的操作
}

如果是物体,并非UI就需要使用鼠标事件来实现了,注意物体必须要有Collider组件

public void OnMouseEnter(PointerEventData eventData){// 鼠标移入时执行的操作
}public void OnMouseExit(PointerEventData eventData){// 鼠标移出时执行的操作
}

旋转

# 每帧绕X轴旋转1度
transform.Rotate(Vector3.right, 1f);# 每帧绕z轴绕指定点旋转1度
transform.RotateAround(centerPosition, Vector3.forward, 1f);# 每帧绕全局坐标系下的Y轴旋转1度
transform.rotation *= Quaternion.Euler(0f, 1f, 0f);# 每帧绕本地坐标系下的Y轴旋转1度
transform.rotation *= Quaternion.AngleAxis(1f, Vector3.up);# 每帧将物体从“fromDirection”的方向旋转到“toDirection”的方向
transform.rotation = Quaternion.FromToRotation(fromDirection, toDirection);

取整

# 向上取整
Mathf.CeilToInt(1.1f); //输出2# 向下取整
Mathf.FloorToInt(1.1f); //输出1# 四舍五入
Mathf.Round(3.1415926f); //输出3# 保留两位小数
float num = 3.149f;
float result = Math.Floor(num * 100f) / 100f; //输出3.14# 四舍五入保留两位小数
float res = (float)Math.Round(num, 2); //输出3.15
string res = num.ToString("F2");   //输出3.15
string res = num.ToString("0.00"); //输出3.15# 不够补0
float num = 3.1f;
string numStr = num.ToString("0.00"); //输出3.10

窗口显示类

没有继承MonoBehaviour的脚本默认在窗口是不可编辑的,需要增加System.Serializable关键字
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/352101.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

NineData,稳定、高效的Redis数据同步解决方案

在 DB-Engines 网站的排名中&#xff0c;Redis 在 Key-value 存储的NoSQL领域连续霸榜多年&#xff0c;是目前最流行的键值对存储数据库&#xff0c;被广泛用于缓存、队列、实时分析等多种高并发的场景中。在生产环境中&#xff0c;我们会遇到对Redis进行版本升级和架构的扩缩容…

保护您的邮件安全:Exchange Reporter Plus 助您全面监控与审计

引言&#xff1a; 在当今数字化时代&#xff0c;电子邮件已成为我们日常生活和工作中不可或缺的沟通工具。然而&#xff0c;随着电子邮件的广泛使用&#xff0c;邮件安全也成为一个备受关注的议题。为了保护组织的敏感信息和防止数据泄露&#xff0c;我们需要一种强大的解决方…

微信如何批量添加好友?

现在营销中&#xff0c;微信已成为一种重要的沟通方式。微信目前是没有自动批量添加好友的功能&#xff0c;需要运营者一个一个手动去添加&#xff0c;这样太过于浪费时间&#xff0c;并且加频繁了还容易被封号&#xff0c;今天给大家介绍几种手动批量加好友的方式以及怎么借助…

怎么把投票链接生成二维码投票链接怎么生成二维码

用户在使用微信投票的时候&#xff0c;需要功能齐全&#xff0c;又快捷方便的投票小程序。 而“活动星投票”这款软件使用非常的方便&#xff0c;用户可以随时使用手机微信小程序获得线上投票服务&#xff0c;很多用户都很喜欢“活动星投票”这款软件。 “活动星投票”小程序在…

运维小白必学篇之基础篇第十五集:FTP实验

FTP实验 实验者&#xff1a;胡 阳 匿名用户验证&#xff1a; 例&#xff1a;&#xff08;前提配置&#xff0c;防火墙关闭&#xff0c;yum安装&#xff0c;同模式vmware11&#xff09; 现有一台计算机huyanggw&#xff08;视作服务端&#xff09;&#xff0c;IP地址为192.1…

ETLCloud轻松应对CDC实时数据流和维度数据合并的需求,实时监控订单数据

如何实现实时流与批流合并打宽数据 通常情况下我们使用CDC实时监听表销售或订单表数据的LOG时会形成流式的数据&#xff0c;即订单变化时数据是按照变化时间不断的传入到ETL的流程中的&#xff0c;业务希望实时看到订单数据的报表。 CDC每次传入的数据有可能是一条也可能是多…

遇到大数据处理,你会怎么办?快来看一下位图和布隆过滤器(下)

目录 前文 一&#xff0c;为什么有布隆过滤器 二&#xff0c;什么是布隆过滤器 三&#xff0c;布隆过滤器的实现 四&#xff0c;布隆过滤器的优缺点 4.1 布隆过滤器的优点 4.2 布隆过滤器的缺点及其改进方式 4.2.1 查找误判及其改进方式分析 4.2.2 不能删除以及改进方式分…

5月VR大数据:Quest 2下跌超1%,其它变化不大

Hello大家好&#xff0c;每月一期的VR内容/硬件大数据统计又和大家见面了。 想了解VR软硬件行情么&#xff1f;关注这里就对了。我们会统计Steam平台的用户及内容等数据&#xff0c;每月初准时为你推送&#xff0c;不要错过喔&#xff01; 本数据报告包含&#xff1a;Steam VR硬…

如何打开谷歌地图

1、入口是map.cnmaps.cn是镜像过来的谷歌地图 2、把网站改成。www.google.cn//maps/ ①&#xff1a;map.cnmaps.cn ②&#xff1a;www.google.cn//maps/

BIGEMAP中打开高清卫星影像谷歌地图

说明&#xff1a;批量添加可以同时添加多个在线地图&#xff0c;一次性添加完成 下载安装地球软件&#xff1a; www.bigemap.com 选择立即下载 第一步 &#xff1a; 下载批量添加批处理文件&#xff1a;添加文件 第二步&#xff1a; 查看文件&#xff0c;打开一个txt文件&am…

arcgis加载谷歌地图和天地图

1加载谷歌地图 bug&#xff1a;科学上网和弹窗 1.1.下载插件arcgoogle 选择合适的版本下载链接 1.2.安装软件 双击setup.exe进行安装 1.3.加载工具 自定义>从文件添加……>arcgoole.tlb 1.4.加载地图 右键软件空白&#xff0c;勾选ArcGoogle-ungdungmoi.com&am…

谷歌地图网页版_如何在网站嵌入谷歌地图

为何要在外贸网站嵌入谷歌地图?而不用国内常用地图? 1、国外用户常用工具(老外常用地图软件) 2、嵌入地图为动态,可放大缩小,定位区域 3、用户查看更生动 4、嵌入谷歌地图代码可以根据浏览器语言,自动识别显示对应国家语言,用户体验度高 操作步骤 1、打开Google地图 具体…

集成谷歌地图不显示的问题

最近做了一个项目&#xff0c;要用到谷歌地图&#xff0c;这也是第一次用谷歌地图&#xff0c;当按照文档集成以后&#xff0c;地图就是不显示。最后鼓捣半天&#xff0c;终于出来了。希望能帮助入坑的小伙伴。由于谷歌地图是国外服务器&#xff0c;想必大家都会想办法登录谷歌…

目标检测算法:YOLO v1论文解读

目标检测算法&#xff1a;YOLO v1论文解读 前言 ​ 其实网上已经有很多很好的解读各种论文的文章了&#xff0c;但是我决定自己也写一写&#xff0c;当然&#xff0c;我的主要目的就是帮助自己梳理、深入理解论文&#xff0c;因为写文章&#xff0c;你必须把你所写的东西表达清…

html加入谷歌地图,html页面插入百度谷歌地图

一、百度地图 1、打开“百度地图生成器”的网址&#xff1a;http://api.map.baidu.com/lbsapi/creatmap/index.html 2、在“1.定位中心点”中&#xff0c;查找具体位置 3、在“2.设置地图”中&#xff0c;按照自己的需求修改地图的外观&#xff1a; a、地图的宽和高 b、地图上显…

怎么在html插入谷歌地图,html页面插入百度or谷歌地图

一、百度地图 1、打开“百度地图生成器”的网址&#xff1a;http://api.map.baidu.com/lbsapi/creatmap/index.html 2、在“1.定位中心点”中&#xff0c;查找具体位置 3、在“2.设置地图”中&#xff0c;按照自己的需求修改地图的外观&#xff1a; a、地图的宽和高 b、地图上显…

安卓谷歌地图 Google Maps不显示地图

问题 一个用到 Google Maps API 的安卓项目&#xff0c;在A电脑上build后&#xff0c;正常运行&#xff0c;显示地图&#xff0c;而且可以正常定位&#xff0c;将项目拷贝到B电脑上后&#xff0c;重新build&#xff0c;不能正常运行&#xff1a;不显示地图&#xff0c;地图界面…

百度二级网页打不开_网页打不开,原因在这里!

不知道小伙伴们&#xff0c;有没有遇到这样的问题&#xff0c;网络明明没问题&#xff0c;QQ等工具也可以正常登陆&#xff0c;就是有一部分网页打不开&#xff01; 打不开一般就俩原因&#xff1a; 1.网站服务器出问题了&#xff0c;网页访问不了&#xff01; 2.DNS问题&#…

基本农田卫星地图查询_谷歌地图打不开?试试这个替代网站,街景功能很好用!...

现在,谷歌地图在国内无法访问。大家如果想要查询国外的地理位置等信息,就必须要靠谷歌地图来解决。像百度、高德这些地图查询国内的信息还不错,但是要查国外的内容就没办法实现了。 全球地图/图:allinprior.com 谷歌地图有很多强大的功能,比如去国外旅游,首先得查询国外的…

谷歌地图开发使用记录 Google Maps

谷歌地图开发文档 申请谷歌地图密钥 可参考此链接https://blog.csdn.net/edsoki/article/details/123391685 https://www.wppop.com/get-google-api-key.html 引入 <script src"https://maps.googleapis.com/maps/api/js?key密钥&languageen"></script…