大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
Unity3D数字孪生笔记(一)——Unity篇
一、脚本介绍
1、脚本
1>介绍
- 脚本是附加在游戏物体上用于定义游戏对象行为的指令代码
- Unity支持三种高级编辑语言:
C#、JavaScript、BooScript(现在不支持)
2>语法结构
- 文件名与类名必须一致
- 写好的脚本必须附加到物体上才能执行
- 附加到游戏物体的脚本类必须从MonoBehaviour类继承
using 命名空间;//命名空间避免重名
public class 类名:MonoBehaviour
{
void 方法名()
{
Debug.Log("调试显示信息");
print("本质就是Debug.Log方法");
}
}
3>编译过程
- 编译运行过程:
源代码 –>(CLS) –>中间语言 –>(Mono Runtime) –>机器码
4>修改脚本模板
1、图标单击鼠标右键 –>属性
2、打开文件位置
3、依次选择Data –> Resources –> ScriptTemplates
4、选择81开头的txt,并以VS打开或记事本打开,改写成如下格式,保存即可
2、开发工具
1>MonoDevelop
- Unity 自带脚本编译器,创建Mono应用程序,适用于Linux、Mac OS X和Windows的集成开发环境,支持C#、BOO和JavaScript等高级编程语言
2>Visual Studio
- 微软公司的开发工具包,包括了整个软件生命周期中需要的大部分工具,如团队开发工具、继承开发环境等
- 在Unity中通过菜单设置修改默认的脚本编辑器:
Edit ——Preferences——External Tools——External Script Editor
3>Console
3、脚本生命周期
1>简介
- Unity脚本从唤醒到销毁的过程
- 消息:当满足某种条件Unity引擎自动调用的函数
- 也称为必然事件
2>初始阶段
- Awake 唤醒:
当物体载入时立即调用1次;常用于在游戏开始前进行初始化,可以判断当满足某种条件执行此脚本 this.enable = true - OnEnable 当可用:
每当脚本对象启用时调用 - Start 开始:
物体载入且脚本对象启用时被调用1次,常用于数据或游戏逻辑初始化,执行时机晚于Awake。
//**********************初始阶段***************************
//执行时机: 创建游戏对象 --> 立即执行1次(早于Start)
//作用:初始化
private void Awake()
{
Debug.Log("Awake--" + Time.time + "--" + this.name);
}
//执行时机: 创建游戏对象 --> 脚本启用 -->才执行(1次)
//作用:初始化
private void Start()
{
Debug.Log("Start--" + Time.time + "--" + this.name);
}
3>物理阶段
-
FixedUpdate 固定更新:
1、脚本启用后,固定时间被调用,适用于对游戏对象做物理操作,例如移动等
2、设置更新频率:“Edit” –>“Project Setting” –> “Time” –>”Fixed Timestep”值,默认0.02s -
OnCollisionXXX 碰撞:
当满足碰撞条件时调用 -
OnTriggerXXX 触发:
当满足触发条件时调用
//**********************物理阶段***************************
//执行时机:每隔固定(默认0.02s)时间执行1次 (时间可以修改)
//适用性:适合对物体做物理操作(移动、旋转……),不会受到渲染影响
private void FixedUpdate()
{
//渲染时间不固定(每帧渲染量不同、机器性能不同)
Debug.Log(Time.time);
}
4>输入事件
- OnMouseEnter 鼠标移入:
鼠标移入到当前Collider 时调用 - OnMouseOver 鼠标经过:
鼠标经过当前Collider 时调用 - OnMouseExit 鼠标离开:
鼠标离开当前Collider 时调用 - OnMouseDown 鼠标按下:
鼠标按下当前Collider 时调用 - OnMouseUp 鼠标抬起:
鼠标在当前Collider 上抬起时调用
5>游戏逻辑
- Update 更新:
脚本启用后,每次渲染场景时调用,频率与设备性能及渲染量有关 - LateUpdate 延迟更新:
在Update函数被调用后执行,适用于跟随逻辑
6>场景渲染
- OnBecameVisible 当可见:
当Mesh Renderer 在任何相机上可见时调用 - OnBecameInvisible 当不可见:
当Mesh Renderer 在任何相机上都不可见时被调用
7>结束阶段
- OnDisable 当不可用:
对象变为不可用或附属游戏对象非激活状态时此函数被调用 - OnDestory 当销毁:
当脚本销毁或附属的游戏对象被销毁时被调用 - OnApplicationQuit 当程序结束:
应用程序退出时被调用
4、调试
1>使用Unity编辑器
- 将程序投入到实际运行中,通过开发工具进行测试,修正逻辑错误的过程。
- 1.控制台调试
Debug.Log(变量);
print(变量); - 2.定义共有变量,程序运行后在检测面板查看数据
适用性: 简单逻辑的调试
2>使用VS
- 准备工作:
(1)安装 vstu20xx 工具
(2)在Unity项目面板中导入:Visual Studio 20xx Tools - 调试步骤:
(1)在可能出错的行添加断点
(2)菜单栏——调试——附加Unity调试程序
(3)在Unity中Play场景 - Update中进行单帧调试:
(1)菜单栏——调试——附加Unity调试程序
(2)Unity中运行游戏场景
(3)暂停场景
(4)加断点
(5)单帧运行
(6)结束调试 - 调试过程中,输入代码的方式:
(1)右键—>快速监视
(2)查看”即时窗口”
适用性: 复杂逻辑的调试
3>使用MonoDevelop
- 在可能出错的行添加断点
- 启动调试:点击MD菜单栏”Run”—>Attach to Processs按钮
- 在Unity中Play场景
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/191979.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...