unity基础(二)

  1. debug方法
    Debug.Log(" 一般日志 ");Debug.LogWarning(" 警告日志 ");Debug.LogError(" 错误日志 ");// Player Informationstring 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.9Debug.Log(operation.progress);timer += Time.deltaTime;//如果到达5秒,在跳转if (time > 5) {operation.allowSceneActivation = true;}}
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

越秀城投·星汇城 | 看得再多,都不如实景现房更安心

对于大多数家庭而言&#xff0c;买房是人生大事。经历了前几年房企暴雷、楼盘停工烂尾的风波&#xff0c;“现房”成为买房人心中最安心的代名词。无需再等待&#xff0c;所见即所得。 越秀城投星汇城位于平度南部新城核芯片区&#xff0c;不仅享受区域发展的利好&#xff0c;…

vs2019 里 C++ 20规范的 string 类的源码注释

&#xff08;1&#xff09;读源码&#xff0c;可以让我们更好的使用这个类&#xff0c;掌握这个类&#xff0c;知道咱们使用了库代码以后&#xff0c;程序大致具体是怎么执行的。而不用担心程序出不知名的意外的问题。也便于随后的代码调试。 string 类实际是 库中 basic_strin…

基于JAVAEE的停车场管理系统(论文 + 源码)

【免费】基于JAVAEE的停车场管理系统.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89292324 基于JAVAEE的停车场管理系统 摘 要 如今&#xff0c;我国现代化发展迅速&#xff0c;人口比例急剧上升&#xff0c;在一些大型的商场&#xff0c;显得就格外拥挤&…

每日两题 / 24. 两两交换链表中的节点 25. K 个一组翻转链表(LeetCode热题100)

24. 两两交换链表中的节点 - 力扣&#xff08;LeetCode&#xff09; 定义三个指针&#xff0c;交换前先保存ntnt指针为next->next&#xff0c;cur和next两个节点&#xff0c;然后将pre->next指向next 若pre为空&#xff0c;说明当前交换的节点为头两个节点&#xff0c;…

VM虚拟机安装调试(步骤如下图)

VM虚拟机安装调试 随着一顿安装操作&#xff0c;还有enter键敲下&#xff0c;出现如下界面。

实现MYSQL8.3.0 版本流量抓取

实现MYSQL8.3.0 版本流量抓取 根据测试需求&#xff0c;需要抓取MYSQL8.3.0流量包&#xff0c;使用wireshark 数据库客户端实现 安装数据库服务端 这里就不给详细操作方法&#xff0c; 网上教程一大堆&#xff0c;小编这里是最新的MYSQL 8.3.0版本 安装成功后&#xff0c;创…

Omnity 进展月报 | 2024.4.1-4.30

Omnity 大事摘要 1、Octopus 官宣升级为 Omnity。 2、Omnity 4月28号正式上线&#xff0c;实现BTC 和 ICP 之间跨链转账 Runes 资产。 3、为庆祝上线&#xff0c;以符文 HOPE•YOU•GET•RICH 为资产&#xff0c;发红包快速触达大量用户&#xff0c;体验跨链服务。 4、Omni…

【前端】前端数据本地化的多种实现方式及其优劣对比

前端数据本地化的多种实现方式及其优劣对比 在现代Web开发中&#xff0c;提高页面响应速度和改善用户体验是核心目标之一。数据本地化是其中一种实现方式&#xff0c;它通过在客户端存储数据来减少服务器请求&#xff0c;从而加快数据载入速度和改善用户的体验。本文将介绍前端…

26、Qt使用QFontDatabase类加载ttf文件更改图标颜色

一、图标下载 iconfont-阿里巴巴矢量图标库 点击上面的链接&#xff0c;在打开的网页中搜索自己要使用的图标&#xff0c;如&#xff1a;最大化 找到一个自己想用图标&#xff0c;选择“添加入库” 点击“购物车”图标 能看到刚才添加的图标&#xff0c;点击“下载代码”(需要…

4000字超详解Linux权限

各位大佬好 &#xff0c;这里是阿川的博客 &#xff0c; 祝您变得更强 个人主页&#xff1a;在线OJ的阿川 大佬的支持和鼓励&#xff0c;将是我成长路上最大的动力 阿川水平有限&#xff0c;如有错误&#xff0c;欢迎大佬指正 在Linux当中权限的体现主要有两种 普通用户 超…

图片无损压缩工具-VIKY

一、前言 Viky v3.4是一款功能强大的图片压缩工具&#xff0c;它能够提供高效的图片无损压缩服务。通过使用独特的压缩算法&#xff0c;该软件在显著减小图片文件大小的同时&#xff0c;还保持了图像的清晰度和色彩饱和度&#xff0c;确保了图像质量的优异表现。 二、软件特点…

CAPL如何实现TLS握手认证

CAPL有专门的章节介绍如何实现TLS握手认证的函数: CAPL调用哪些函数实现TLS握手认证,需要了解TLS在整个通信过程的哪个阶段。 首先TCP需要建立连接,这是TLS握手的前提。当TLS握手认证完成后,可以传输数据。 所以TLS握手开始前需要确保TCP建立连接,TCP传输数据前需要确保…

泰迪科技2024中职大数据实训室方案解读

中职在大数据专业建设所遇到的困难 数据、信息安全、人工智能等新信息技术产业发展迅猛&#xff0c;人才极其匮乏&#xff0c;各个中职院校纷纷开设相应的专业方向。但是&#xff0c;绝大多数院校因为师资和积累问题&#xff0c;在专业建设规划、办学特色提炼、创新教学模…

Gradio 基础使用示例

文章目录 Gradio 基础使用示例简介安装示例-简单的输入、输出示例-启动配置示例-聊天对话示例-多页面Tab切换示例-使用Block自定义布局示例-Plot绘图示例-状态管理示例-提示、进度条参考 Gradio 基础使用示例 简介 Gradio 是一个用于构建快速原型和部署机器学习应用程序的开源…

wandb: - 0.000 MB of 0.011 MB uploaded持续出现的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

【异常检测】新版异常检测库anomalib的使用

every blog every motto: There’s only one corner of the universe you can be sure of improving, and that’s your own self. https://blog.csdn.net/weixin_39190382?spm1010.2135.3001.5343 0. 前言 异常检测库anomalib的使用 1. 前提 1.1 数据组织形式 说明&#…

15 华三华为链路聚合综述

1 链路聚合简介 以太网链路聚合通过将多条以太网物理链路捆绑在一起形成一条以太网逻辑链路&#xff0c;实现增加链路带宽的目的&#xff0c;同时这些捆绑在一起的链路通过相互动态备份&#xff0c;可以有效地提高链路的可靠性。 2 成员端口的状态 聚合组内的成员端口具有以下…

Ps 滤镜:视频

Ps菜单&#xff1a;滤镜/视频 Filter/Video “视频”滤镜子菜单中包含了“NTSC 颜色”和“逐行”两个滤镜。 这两个滤镜都是针对视频和电视播放的特定需求设计的。 “逐行”滤镜主要解决交错视频的视觉问题&#xff0c;而“NTSC 颜色”滤镜则确保色彩在电视播放时的兼容性和准确…

Java设计模式 _结构型模式_享元模式

一、享元模式 1、享元模式 享元模式&#xff08;Flyweight Pattern&#xff09;是一种结构型模式。主要用于减少创建对象的数量&#xff0c;以减少内存占用和提高性能。主要解决有大量对象时&#xff0c;有可能会造成内存溢出&#xff0c;我们把其中共同的部分抽象出来&#x…

django中的日志处理

1、事件追踪 在什么样的时间发生了什么样的事情 2、bug调试 3、程序告警 4、大数据统计 ELK 日志分析系统 elasticsearh logstasn kibana 名词概念 loggers&#xff1a;日志器 —— 定大方向&#xff1a;1 handlers&#xff1a;处理器 —— 执行:3 formatters&#xff…