unity基础(二)

  1. debug方法
    Debug.Log(" 一般日志 ");
    Debug.LogWarning(" 警告日志 ");
    Debug.LogError(" 错误日志 ");
 
 // Player Information
    string strPlayerName = "Peter";
    int iPlayerHpValue = 32500;
    short shPlayerLevel = 10;
    long lAdvantureExp = 114514;
 
    Debug.Log("Player Information \nName: " + strPlayerName + " Hp: " + iPlayerHpValue +" Level: " + shPlayerLevel + " Exp: " + lAdvantureExp);
    Debug.LogFormat("Player Information \nName: {0}, Hp: {1}, Level: {2}, Exp: {3}", strPlayerName, iPlayerHpValue, shPlayerLevel, lAdvantureExp);

针对上述两个日志信息输出方式,使用 Debug.Log() 输出与 Debug.LogFormat() 相比

使用 Debug.LogFormat() 将各个字符串变量填充,避免 Debug.Log() 用 + 将字符串拼接造成内存浪费在这里插入图片描述
2. 画线

//绘制一条直线,两点连成直线
Debug.DrawLine(new Vector3(1, 0, 0), new Vector3(1,1,0), Color.yellow);
//绘制一条射线,一个点和一个向量
Debug.DrawRay(new Vector3(1, 0, 0), new Vector3(0, 1, 0), Color.red);
  1. 常用代码
    3.1 获取组件
    Transform trans = this.transform
    3.2 获取其他组件
    Collider collider = this.GetComponent<Collider>();
    collider.enabled = false;
    3.3 获取父物体组件
    Test test = this.GetComponentInParent<Test>();
    3.4 获取子物体组件
    CapsuleCollider cc = this.GetComponentInChildren<CapsuleCollider>();
    动态添加组件
    this.AddComponent<AudioSource>();
    通过物体名称找到物体
    GameObject cube2 = GameObject.Find('Cube2');
    cube2.name = “new cube”;
    通过标签找到物体
    cube2 = GameObject.FindWithTag('Person');
    cube2.name = "new cube2"
    //GameObject.FindGameObjectsWithTag("Person")
    通过代码实例化预制体
    GameObject cube2 = Instantiate(prefab, Vector3.zero, Quaternion.identity);

void Start() {
//获取脚本挂载的游戏物体
GameObject go = this.gameObject;
// 游戏物体名称
Debug.Log(go.name);
//标签
Debug.Log(go.tag);
// 获取激活状态
//这个是获取真正的激活状态,就是是否显示出来了 例如自己显示否跟父物体也有关 这个包含了
Debug.Log(go.activeInHierarchy);
//只是激活状态的勾有没有打上 也就是只判断自己
Debug.Log(go.activeSelf); }

  1. unity 里面的时间设置
    fixeupdate() 固定时间间隔更新,一般为0.02s更新一次,可以放与物理属性操作相关代码
    也可以由用户更改时间间隔,Edit->Project Settings->Time 找到弹出面板的Fixed Timestep设置。
    在这里插入图片描述
    timeScale 是时间流逝速度的缩放比例
    timeScale为1.0时,时间是正常速度。timeScale为0.5时,时间流逝速度会降为正常速度的一般
    timeScale为0时,所有基于帧率的功能都将被暂停
    Time.realtimeSinceStartup这个值不受timeScale影响
    修改timeScale时,推荐同时与相同比例修改Time.fixedDeltaTime
    timeScale为0时,FixedUpdate函数不再执行
void Start() {
    //游戏从开始到现在所用的时间
    Debug.Log(Time.time);
    //时间缩放数值
    Debug.Log(Time.timeScale);
    // Time.timeScale = 0f;
    //固定时间间隔
    Debug.Log(Time.fixedDeltaTime)
}
void Update {
   //时间自增
   timer += Time.deltaTime;
   // 5s后
   if (timer > 5) {
      Debug.Log('大于5秒了');
      timer = 0;
   }
}
  1. 路径
    StreamingAssets文件夹 建在Assets目录下
    这是一个只读。不可写的目录;该目录下的资源会保持原始格式(比如图片不会被引擎进行纹理压缩);dll文件或者脚本放在该文件夹下也不会参与编译
    官网推荐使用Application.streamingAssetsPath来获取该文件夹的实际位置,其可以避免平台差异

    Assets路径: Application.dataPath

void Start () {
//Asset路径 移动端 主机游戏:可读 不可写 pc端:可读可写
Debug.Log(Application.dataPath + "/test.txt");
//持久化路径 可读可写
Debug.Log(Application.persistentDataPath);
//临时文件
Debug.Log(Application.temporaryCachePath)
// Assets下面的streamingAssetsPath路径
Debug.Log(Application.streamingAssetsPath);
//后台运行
Debug.Log(Application.runInBackground);
//打开一个网址
Application.OpenURL("http://...")
//退出
Application.Quit()
}
在这里插入图片描述

  1. 场景代码
    void Start() {
    //获取当前场景
    Scene scent = SceneManager.GetActiveScene();
    //名称
    Debug.Log(scene.name)
    //场景路径
    Debug.Log(scene.path)
    //场景是否加载完成
    Debug.Log(scene.isLoaded)
    //切换场景
    SceneManager.LoadScene(1);
    //用场景名切换
    SceneManager.LoadScene("Scene2")

    //场景中最外层的游戏物体
    GameObject[] gameObjects = scene.GetRootGameObjects();
    Debug.Log(gameObject.Length);

    //创建新场景
    tmp = SceneManager.CreateScene("abc");

    //切换场景
    SceneManager.LoadScene("Scene2",LoadSceneMode.Additive);
    }

LoadSceneMode.Additive:
当使用Unity的LoadSceneMode.Additive时,开发人员可以在当前场景中加载一个新的场景,而不需要卸载当前场景。这意味着两个场景将同时处于活动状态并可见,可以实现游戏不同区域或关卡之间的无缝过渡。这对于创建更大更复杂的游戏环境或根据需要动态加载和卸载游戏世界的部分非常有用。

  1. 携程加载场景
public class AsyncTest:MonoBehaviour
{
    AsyncOperation  operation;
    void Start()
    {
         StartCoroutine(loadScene());
    }
    // 携程方法用来异步加载场景
    IEnumerator  loadScene() {
          operation = SceneManager.LoadSceneAsync(1);
          //加载完场景不要自动跳转
          operation.allowSceneActivation = false;
          yield return operation;
    }
 
    float timer = 0;
 
    void Update()
    {
        //输出加载进度0-0.9
        Debug.Log(operation.progress);
        timer += Time.deltaTime;
        //如果到达5秒,在跳转
        if (time > 5) {
            operation.allowSceneActivation = true;
        }
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

爱普生MCU系列语音芯片S1C31D41

随着科技的发展和产品的集成化&#xff0c;语音芯片已经逐渐替代了多种语音设备应用在各场合。语音芯片主要特性是功耗低&#xff0c;抗干扰能力强&#xff0c;外围器件少&#xff0c;控制简单&#xff0c;语音保存时间久(某些语音芯片可以保存内容100年)&#xff0c;掉电不丢失…

yolo-world:”目标检测届大模型“

AI应用开发相关目录 本专栏包括AI应用开发相关内容分享&#xff0c;包括不限于AI算法部署实施细节、AI应用后端分析服务相关概念及开发技巧、AI应用后端应用服务相关概念及开发技巧、AI应用前端实现路径及开发技巧 适用于具备一定算法及Python使用基础的人群 AI应用开发流程概…

【Git】Git学习-16:git merge,且解决合并冲突

学习视频链接&#xff1a; 【GeekHour】一小时Git教程_哔哩哔哩_bilibili​编辑https://www.bilibili.com/video/BV1HM411377j/?vd_source95dda35ac10d1ae6785cc7006f365780 1 创建分支dev&#xff0c;并用merge合并master分支&#xff0c;使dev分支合并上master分支中内容为…

[Algorithm][多源BFS][矩阵][飞地的数量][地图中的最高点][地图分析] + 多源BFS原理讲解 详细讲解

目录 0.原理讲解1.矩阵1.题目链接2.算法原理详解3.代码实现 2.飞地的数量1.题目链接2.算法原理详解3.代码实现 3.地图中的最高点1.题目链接2.算法原理详解3.代码实现 4.地图分析1.题目链接2.算法原理详解3.代码实现 0.原理讲解 注意&#xff1a;只要是用**BFS解决的最短路径问题…

韩顺平0基础学Java——第5天

p72——p86 今天同学跟我说别学java&#xff0c;真的吗&#xff1f;唉&#xff0c;先把这视频干完吧。 逻辑运算符练习 x6&#xff0c;y6 x6&#xff0c;y5 x11&#xff0c;y6 x11&#xff0c;y5 z48 错了&a…

【web网页制作】html+css旅游家乡河南开封主题网页制作(4页面)【附源码】

HTMLCSS家乡河南主题网页目录 &#x1f354;涉及知识&#x1f964;写在前面&#x1f367;一、网页主题&#x1f333;二、页面效果Page1 首页Page2 开封游玩Page 3 开封美食Page4 留言 &#x1f308; 三、网页架构与技术3.1 脑海构思3.2 整体布局3.3 技术说明书 &#x1f40b;四…

【Git】Git学习-14:VSCode中使用git

学习视频链接&#xff1a;【GeekHour】一小时Git教程_哔哩哔哩_bilibili​编辑https://www.bilibili.com/video/BV1HM411377j/?vd_source95dda35ac10d1ae6785cc7006f365780 在vscode中打开文件 code . 自行修改内容&#xff0c;在源代码管理器中测试下

flutter报错

组件相关 type ‘List’ is not a subtype of type ‘List’ children: CardList.map((item) > Container( 加上 *** < Widget>*** 正常 type ‘(dynamic, dynamic) > Container’ is not a subtype of type ‘(CardType) > Widget’ of ‘f’ children: CardL…

Spring Data JPA自定义Id生成策略、复合主键配置、Auditing使用

前言 在Spring Data JPA系列的第一篇文章 SpringBoot集成JPA及基本使用-CSDN博客 中讲解了实体类的Id生成策略可以通过GeneratedValue注解进行配置&#xff0c;该注解的strategy为GenerationType类型&#xff0c;GenerationType为枚举类&#xff0c;支持四种Id的生成策略&…

详细讲解lua中string.gsub的使用

string.gsub 是 Lua 标准库中的一个函数&#xff0c;用于全局替换字符串中的某些部分。string.gsub 是 Lua 中非常实用的一个函数&#xff0c;它可以用来进行字符串的处理和替换操作。 它的基本语法如下&#xff1a; string.gsub(s, pattern, replacement [, n])s 是要处理的…

鸿蒙开发核心技术都有哪些【都是从零开始】

鸿蒙开发核心技术都有哪些&#xff1f;&#xff1a;【持续1年的时间公关鸿蒙技术】 我们能做哪些呢&#xff1f; 还是从UI业务开始吧 面试题1&#xff1a; 基于STAGE模型项目重构等问题 代理设计模式&#xff0c;业务与架构隔离 中介者模式&#xff0c;和代理设计模式的区别…

项目管理-项目绩效域1/2

项目管理&#xff1a;每天进步一点点~ 活到老&#xff0c;学到老 ヾ(◍∇◍)&#xff89;&#xff9e; 何时学习都不晚&#xff0c;加油 1.项目绩效域--整体框架 项目绩效域 重点&#xff1a; ①八大绩效域的含义。 ②八大绩效域的问题和解决方案。 ③八大绩效域与十大管…

Go标准库——Flag库和Log库

一.Flag Go语言内置的flag包实现了命令行参数的解析&#xff0c;flag包使得开发命令行工具更为简单。 1.1 os.Args 如果你只是简单的的想要获取命令行参数&#xff0c;可以像下面代码示例一样使用os.Args来获取命令行参数。 os.Arg实际是一个存储命令行参数的字符串切片([]stri…

Linux最新提权通杀五大绝招(上)

点击星标&#xff0c;即时接收最新推文 本文选自《内网安全攻防&#xff1a;红队之路》 扫描二维码五折购书 Linux 主机权限提升问题是普遍存在的。在Web 服务器、数据库、防火墙、IOT等基础设施中&#xff0c;大部分都运行着Linux 操作系统&#xff0c;鉴于Linux 设备在大量基…

【负载均衡在线OJ项目日记】项目简介

目录 前言 什么是负载均衡 所用的技术和开发环境 所用技术 开发环境 项目的宏观结构 leetcode 结构 结构 编写思路 前言 从C语言的文章到现在Linux网络部分&#xff0c;我已经涉猎了很多知识&#xff1b;终于在今天我要开始搞项目了&#xff0c;通过项目我也可以开始…

鸿蒙OS NEXT的推出,不仅面向App端

华为官方公布6月份的版本为beta版&#xff0c;依然属于开发者测试版&#xff0c;但可以向普通用户开放了。这点和苹果iOS系统测试形式略微相似&#xff1a;6月份开放首个测试版&#xff0c;随后过渡到公测版&#xff0c;最后再和年度新机一起发布正式版系统。 如果按照这个进度…

DNS域名解析服务的部署及优化方案

实验要求: 1.配置2台服务器要求如下&#xff1a; a&#xff09;服务器1&#xff1a; 主机名&#xff1a;dns-master.timinglee.org ip地址&#xff1a; 172.25.254.100 配置好软件仓库 b&#xff09;服务器2&#xff1a; 主机名&#xff1a;dns-slave.timinglee.org ip地址&am…

fero - yolo - mamba:基于选择性状态空间的面部表情检测与分类

fero - yolo - mamba:基于选择性状态空间的面部表情检测与分类 摘要IntroductionRelated work FER-YOLO-Mamba: Facial Expression Detection and Classification Based on Selective State Space 摘要 面部表情识别&#xff08;FER&#xff09;在理解人类情绪线索方面起着关键…

S型曲线的几种设计(图像对比度调节)

一般来讲&#xff0c;图像调色模块都会提供“曲线”工具&#xff0c;这是一个极其灵活的功能&#xff0c;绝大部分的调色都可以通过该工具实现&#xff0c;但是曲线功能的交互相对而言比较复杂。出于简便性和效率方面的考量&#xff0c;调色模块往往还会提供一些具有很强的功能…

Angular中创建和使用服务

Angular中的服务 文章目录 Angular中的服务前言一、创建服务二、使用服务 前言 Angular 服务是 Angular 应用程序中用于封装可重用逻辑的类。服务在应用程序的多个组件之间共享数据和功能&#xff0c;而不依赖于应用程序的UI。服务可以用于诸如数据处理、与后端通信、用户身份…