首页 > 其他分享 >Unity

Unity

时间:2024-10-14 13:21:28浏览次数:7  
标签:Rigidbody 调用 点击 Unity 线程 rb 进程

  1. 函数生命周期
点击查看代码
Awake->OnEnable->Start->FixedUpdate->Update->LateUpdate->OnDisable->Ondestory;
* Awake:场景开始的时候调用一次。
* OnEnable:启用对象后调用,可以重复调用。
* Start:对象第一次启用是调用,用于初始化。
* FixedUpdate:用于更新物理逻辑,频率超过update。
* Update:每帧调用一次。*Time.deltaTime。
* LateUpdate:摄像机位置更新。
* OnDisable:隐藏对象后立即调用,可能重复。
* OnDestroy:摧毁时调用,用于最终的清理和资源释放。

2.什么是进程线程协程?区别是什么?

点击查看代码
进程
* 进程是操作系统中独立的执行单位,每个进程都有自己独立的内存空间和系统资源。
* 进程之间相互独立,无法直接共享内存,相互通信需要特殊的机制:管道,消息队列等。
* 每个进程都有自己的地址空间,因此进程间数据隔离性较好。
* 进程的启动切换销毁需要较大的开销,因此进程创建切换比较慢。
线程
* 是进程中的一个执行单元,多个线程共享同一个进程的内存空间和系统资源。
* 线程之间可以直接访问共享内存,因此线程通信较为简单,但是要注意线程安全。
* 线程共享进程的地址空间,因此线程间的数据共享和通信比较方便。
* 线程的创建切换销毁开销比较小,因此线程创建和切换比较快

协程
* 是一个轻量级的线程,可以在程序中执行多个执行流程,不同于线程,协程是由程序员自己管理,不依赖于操作系统的线程调度。
* 可以在同一个线程内多个执行流程切换,不需要线程切换,因此开销小。
* 通常用于异步操作,事情处理等场景,可以有效提高程序的并发性和响应性。

综上所述,进程是操作系统分配资源基本单位,线程是操作系统调度执行的最小单位,而协程是程序员自己管理的轻量级执行流程,区别于:资源分配,通信方式,数据隔离和开销。
3. 物体发生碰撞的必要条件
点击查看代码
两者必须要有碰撞体,如boxcollider。
4. 触发器和碰撞器的区别
点击查看代码
碰撞器用于检测物体碰撞,会产生物理效果,改变运动状态。(collider)
触发器也是碰撞器,但不会产生物理效果,用于检测物体进入和离开(triger)
5. 有几种施加力的方式?
点击查看代码
* Rigidbody.Addforce()//这种力可以是持续性的,也可以是瞬时的。
Rigidbody rb=GetComponent<Rigidbody>();
rb.Addforce(Vector3.forward*forceAmount);
* Rigidbody.AddTorque()//旋转力
Rigidbody rb=GetComponent<Rigidbody>();
rb.AddTorque(Vector3.up*torqueAmount);
* 直接改变velocity属性可以加速度。
rb.velocity=new Vector3(velocityX,velocityY,velocityZ);
* Rigidbody.MovePosition()//位置
rb.MovePosition(rb.position+Vector3.forward*speed*Time.deltaTime);
6. 动画分层
点击查看代码
用来管理不同身体部位的复杂状态机。可以将不同的动画逻辑分组处理。

标签:Rigidbody,调用,点击,Unity,线程,rb,进程
From: https://www.cnblogs.com/dou66/p/18463929

相关文章

  • 【Unity】GL绘制图形和网格
    新建GLSquare脚本,绑定主相机。HelperpublicclassGLSquare:MonoBehaviour{ //线材质 privateMaterialm_material; //在摄像机渲染场景后,将调用OnRenderObject。 privatevoidOnRenderObject() { Draw();//调用绘制 } //绘制调用Beginend voidBegi......
  • vs断点调试unity安卓包
    要在Android设备上使用VisualStudio调试Unity项目并设置断点,你可以按照以下步骤进行配置。通过这个调试方式,你可以实时调试Unity应用,查看变量的状态,进行断点调试,从而更好地发现和解决问题。前提条件已安装Unity和VisualStudio:你需要安装Unity和带有Unity工具......
  • Unity 摄像机照再RawImg上
    publicvoidRefresh(){if(!renderImage||!renderCamera)return;varrect=renderImage.rectTransform.rect;varw=(int)rect.width;varh=(int)rect.height;if(w==0)w=Sc......
  • 【Unity基础】Unity用脚本实现内购(IAP)
    本文介绍了如何使用脚本实现内购功能。先看下脚本,代码中根据执行过程添加了序号。usingUnityEngine;usingUnityEngine.Purchasing;usingUnityEngine.UI;namespaceSamples.Purchasing.Core.BuyingConsumables{publicclassBuyingConsumables:MonoBehaviour,......
  • Unity实现3D模型子物体伸出折线并显示各自名称的功能
    一、灵感    在unity项目中我们经常会遇到很多介绍产品的场景需求,所以咱干脆写一个脚本来简单介绍把!话不多说,直接开干!二、场景搭建1、搭建一个简单的场景,创建一个cube作为最大的父物体,接着再创建一个球和一个圆柱作为cube的子物体。具体场景结构如下图:三、实现......
  • 【unity】内置鼠标监听方法(小白版)--当鼠标放置到技能按钮处显示该技能的描述
    为了实现鼠标放置到技能按钮处显示该技能描述的效果,参考了许多资料,由于我是初学者,研究了许久才看明白,现在分享一下学习心得。效果展示图代码如下usingUnityEngine;usingUnityEngine.EventSystems;usingUnityEngine.UI;publicclassSkillDataDisplay:MonoBehaviou......
  • Unity游戏通用框架——事件的订阅和发布(观察者模式)
    在游戏开发的基本思想中,逻辑与表现的分离极为重要,相互之间并不关心具体实现,只注册对应的事件,有事件发生时才调用相应的函数事件管理器usingSystem.Collections;usingSystem.Collections.Generic;publicclassevent_manager:Singletom<event_manager>{public......
  • Unity 之如何开发 VisionPro 应用
    文章目录介绍关于先决条件已确认可运行的Unity版本和软件包Unity项目版本项目中默认安装的包(模板为Universal3D)自己安装的包作为依赖项自动安装的软件包(仅摘录与开发相关的软件包)项目设置将所需组件添加到示例应用程序构建Unity项目运行应用程序时的......
  • 【Unity】数据持久化PlayerPrefs
    PlayerPrefs存储数据,数据为[key-value]形式可以用保存用户的设置、偏好;历史得分数据等;保存的数据位置不同的系统数据将被保存在不同的位置。Windows系统保存的数据将会被存储在系统注册表中,位置如下:(编辑器运行模式)\HKEY_CURRENT_USER\SOFTWARE\Unity\UnityEditor\DefaultCom......
  • unity简单内存池案例
    unity简单内存池案例组件准备代码部分 1.组件准备在unity中创建一个空白物体命名为cubepawner,并拖到主摄像机之前 然后再创建cubepawner和cubePool脚本挂载到该物体上  再创建一个正方体,同时再创建一个空脚本,命名为cube挂上去,并将该正方体拖入下方文件浏览器中......