2021-8-27 学习笔记

今日学习记录

UnityEngine.SceneManagement

  1. LoadScene :加载/切换场景
    场景较为简单时使用,由主线程进行加载,如果场景较为复杂,将会出现应用程序未响应的情况。
  2. LoadSceneAsync :异步加载/切换场景(有返回值,AsyncOperation类)
    场景比较复杂时使用,主线程只负责最重要的事情,场景的加载由子线程完成。
    返回值有如下几个较为重要的属性:
    (1) allowSceneActivation :是否立刻显示加载的场景
    (2) progress :加载进度条
    (3) IsDown :是否已完成

Application类

  1. runInBackground :是否支持后台运行
  2. OpenURL : 打开网页
  3. Quit : 退出(在unity中运行无效,打包后在安卓,PC端等有效)

2D精灵Sprite

SpriteRenderer :
(1)Sprite:精灵图片
(2)Color:精灵颜色
(3)Flip:反转轴
(4)Material:材质
(5)SortingLayer:精灵层
(6)Order In Layer:同层序号

画布的第二种模式(Screen Space - Camera)的坐标转换的相关问题

注意:要放入每帧都执行的函数中如Update,OnDrag,不能直接放入类中

第一种方法:将屏幕坐标转换为UI中的世界坐标

Vector3 translatedPosition = Vector3.zero;
RectTransformUtility.ScreenPointToWorldPointInRectangle(
transform.root as RectTransform, //画布的RectTransform
Input.mousePosition, //鼠标的坐标
Camera.main, //画布选择的渲染摄像机,第一种模式OverLay中该属性为null
out translatedPosition //输出结果);
transform.position = translatedPosition; //设置转换后的世界坐标

第二种方法:将屏幕坐标转换为UI中的本地坐标

Vector2 translatePosition2 = Vector2.zero;
RectTransformUtility.ScreenPointToLocalPointInRectangle(
transform.parent as RectTransform, //父对象的RectTransform
Input.mousePosition, //鼠标的坐标
Camera.main, //画布选择的渲染摄像机,第一种模式OverLay中该属性为null
out translatePosition2); // 输出结果
transform.localPosition = translatePosition2; //设置转换后的本地坐标

单例类和单例脚本

  1. 单例类:存储跨场景信息,不受切换场景影响,不会因切换场景而销毁。
  2. 单例脚本:可以快速使用MonoBehaviour的方法,属性。但一个场景中只能存在一个单例脚本,且切换场景时会被销毁。(通过DontDestroyOnLoad(gameObject)可以阻止销毁)
    实现方法:
public class 类名 : MonoBehaviour
{
	public static 类名 instance ;
	private void Awake()
	{
		instance = this;
	}
}

坐久了,腰疼,我淦!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

giegie界清流

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值