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.rhkb.cn/news/321590.html

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

相关文章

Linux入门攻坚——22、通信安全基础知识及openssl、CA证书

Linux系统常用的加解密工具&#xff1a;OpenSSL&#xff0c;gpg&#xff08;是pgp的实现&#xff09; 加密算法和协议&#xff1a; 对称加密&#xff1a;加解密使用同一个秘钥&#xff1b; DES&#xff1a;Data Encryption Standard&#xff0c;数据加密标准&…

web 基础之 HTTP 请求

web 基础 网上冲浪 就是在互联网(internet)上获取各种信息&#xff0c;进行工作&#xff0c;或者娱乐&#xff0c;他的英文表示surfing the Internet&#xff0c;因 “surfing”d的意思是冲浪&#xff0c;即成为网上冲浪&#xff0c;这是一种形象说法&#xff0c; 也是一个非…

欧鹏RHCE 第四次作业

unit4.web服务的部署及高级优化方案 1. 搭建web服务器要求如下&#xff1a; 1.web服务器的主机ip&#xff1a;172.25.254.100 2.web服务器的默认访问目录为/var/www/html 默认发布内容为default‘s page 3.站点news.timinglee.org默认发布目录为/var/www/virtual/timinglee.org…

文件各种上传,离不开的表单 [html5]

作为程序员的我们&#xff0c;经常会要用到文件的上传和下载功能。到了需要用的时候&#xff0c;各种查资料。有木有..有木有...。为了方便下次使用&#xff0c;这里来做个总结和备忘。 利用表单实现文件上传 最原始、最简单、最粗暴的文件上传。 前端代码&#xff1a; //方…

如何更好地使用Kafka? - 故障时解决

要确保Kafka在使用过程中的稳定性&#xff0c;需要从kafka在业务中的使用周期进行依次保障。主要可以分为&#xff1a;事先预防&#xff08;通过规范的使用、开发&#xff0c;预防问题产生&#xff09;、运行时监控&#xff08;保障集群稳定&#xff0c;出问题能及时发现&#…

Day 24 数据库管理及数据类型

数据库管理及数据类型 一&#xff1a;数据类型 1.数值类型 整数类型 ​ 整数类型&#xff1a;TINYINT SMALLINT MEDIUMINT INT BIGINT ​ 作用&#xff1a;用于存储用户的年龄、游戏的Level、经验值等 浮点数类型 ​ 浮点数类型&#xff1a;FLOAT DOUBLE ​ 作用&#xf…

Shell编程规范和变量

一.Shell脚本概述 Shell脚本的概念 将要执行的命令按顺序保存到一个文本文件给该文件可执行权限可结合各种Shell控制语句以完成更复杂的操作 Shell脚本应用场景 重复性操作交互性任务批量事务处理服务运行状态监控定时任务执行 Shell的作用 1&#xff09;介于系统内核与用…

智能实训-wheeltec小车-抓取(源代码)

语言 :C 源代码&#xff1a; #include <ros/ros.h> #include <image_transport/image_transport.h> #include <cv_bridge/cv_bridge.h> #include <sensor_msgs/image_encodings.h> #include <sensor_msgs/JointState.h> #include <geometry…

SparkSQL优化

SparkSQL优化 优化说明 缓存数据到内存 Spark SQL可以通过调用spark.sqlContext.cacheTable("tableName") 或者dataFrame.cache()&#xff0c;将表用一种柱状格式&#xff08; an inmemory columnar format&#xff09;缓存至内存中。然后Spark SQL在执行查询任务…

利用亚马逊云科技GenAI企业助手Amazon Q Business构建企业代码开发知识库

2024年五一节假日的前一天&#xff0c;亚马逊云科技正式重磅发布了云计算行业期待已久的服务——Amazon Q Business。Amazon Q Business是专为企业用户打造的一个开箱即用的完善而强大企业GenAI助手。企业用户只需要将Amazon Q Business连接到现有的企业内部数据源&#xff0c;…

layui的treeTable组件,多层级上传按钮失效的问题解决

现象描述: layui的treeTable 的上传按钮在一层能用&#xff0c;展开后其他按钮正常点击&#xff0c;上传按钮无效。 具体原因没有深究&#xff0c;大概率是展开的子菜单没有被渲染treeTable的done管理到&#xff0c;导致没有重绘上传按钮。 解决方案: 不使用layu的上传组件方法…

jenkins+gitlab+ansible-tower实现发布

前提准备&#xff1a; gitlab中上传相应的jenkinsfile文件和源码。 安装和破解ansible-tower。 安装jenkins。 大致流程&#xff1a;从gitlab中拉取文件&#xff0c;存放到windows机器上&#xff0c;使用nuget等进行打包到windows中&#xff0c;使用sshPublisher语句传输到远程…

使用idea管理docker

写在前面 其实idea也提供了docker的管理功能&#xff0c;比如查看容器列表&#xff0c;启动容器&#xff0c;停止容器等&#xff0c;本文来看下如何管理本地的docker daemon和远程的dockers daemon。 1&#xff1a;管理本地 双击shift&#xff0c;录入service&#xff1a; …

【练习2】

1.汽水瓶 ps:注意涉及多个输入&#xff0c;我就说怎么老不对&#xff0c;无语~ #include <cmath> #include <iostream> using namespace std;int main() {int n;int num,flag,kp,temp;while (cin>>n) {flag1;num0;temp0;kpn;while (flag1) {if(kp<2){if(…

如何创建微信小程序?只需3步完成小程序制作

微信&#xff0c;中国最大的社交媒体应用程序&#xff0c;几个月前推出了微信小程序&#xff0c;这一神奇的功能立即大受欢迎。这些小程序让在中国注册的商业实体所有者创建一个小程序来与微信用户互动。这些小程序不需要在用户手机上进行任何安装&#xff0c;只需通过微信应用…

如何为数据库中新建用户B复制用户A的表和视图权限?

故事背景&#xff1a; 公司使用的是SQL Server数据库&#xff0c;经常会碰到一种情况&#xff0c;需要为新入职的员工赋予同组内其他同事的权限。 常用方法: 1) 为同一组申请创建统一的Security Group(安全组)&#xff0c;为创建的组分配相关表和视图的访问权限。不管员工入职…

【Linux 基础 IO】文件系统

文章目录 1.初步理解文件2.C语言环境下的文件操作2.1 C库中 fopen、fwrite 的讲解2.2 C文件操作的实例 3.系统调用接口的讲解 1.初步理解文件 &#x1f427;① 打开文件&#xff1a; 本质是进程打开文件&#xff0c;只有程序运行起来文件才被打开&#xff1b; &#x1f427;②文…

0507华为od二面

只记录自己没回答上的问题 1、ZGC的缺点&#xff1a; 1)只是适用于32位系统 2)最大只是支持4TB内存容量 3)最糟糕的情况下吞吐量会下降15%&#xff0c;这都不是事至于吞吐量&#xff0c;通过扩容分分钟解决 4)分代的原因:不同对象的生命周期不相同&#xff0c;可能会扫描整个堆…

[Scrcpy]数据线连接安卓手机投屏windows电脑[win控制安卓手机]比Samsung Dex好用

配置好&#xff0c;只需要两步即可完成安卓手机投屏windows 第一步&#xff1a;usb线连接windows电脑 第二步&#xff1a;cmd输入投屏命令srccpy 搞定 前言/背景 一些视频资料只能下载到手机&#xff0c;很不喜欢手机那么小屏幕播放&#xff0c;播放很不方便 在家的话可以投…

【ElasticSearch】IK分词器中停用词问题

问题描述 在ES中进行部分关键词搜索时&#xff0c;搜索无结果&#xff0c;如搜索 【IT】 环境描述 中文分词插件 这里使用的是 analysis-ik 分词调试 POST test_index/_analyze {"text":"IT Manager","analyzer": "ik_max_word"…