当前位置: 首页 > news >正文

我想做网站 怎么做呢ckeditor 转wordpress

我想做网站 怎么做呢,ckeditor 转wordpress,自己做的网站如何发布,建网站的网站【知识链】Unity - Unity脚本 - 游戏对象 - 组件 【知识链】Unity - Unity界面 - Inspector【摘要】本文介绍如何使用脚本添加、删除组件#xff0c;以及如何访问组件 文章目录 引言第一章 游戏对象与组件1.1 什么是组件#xff1f;1.2 场景、游戏对象与…【知识链】Unity - Unity脚本 - 游戏对象 - 组件 【知识链】Unity - Unity界面 - Inspector【摘要】本文介绍如何使用脚本添加、删除组件以及如何访问组件 文章目录 引言第一章 游戏对象与组件1.1 什么是组件1.2 场景、游戏对象与组件的关系 第二章 在Inpector中操作组件2.1 添加组件2.2 删除组件2.3 修改组件2.4 变换组件 第三章 使用脚本操作组件3.1 添加组件3.2 删除组件3.3 访问组件 第四章 应用场景第五章 总结第六章 学以致用第七章 参考资料 引言 在现代游戏开发中灵活操作游戏对象的组件已经成为提升游戏体验的重要手段。通过脚本动态添加、删除、修改组件以及切换状态和生成特效开发者可以创建更加丰富和互动的游戏世界。这种方法不仅提高了游戏的可玩性和视觉效果还使游戏的逻辑更加清晰和易于维护。在本文中我们将深入探讨如何利用脚本来操作游戏对象的组件并通过实际案例来展示其应用场景和实现方法。无论你是新手开发者还是有经验的游戏设计师希望这篇文章能为你提供有价值的参考和启发。 第一章 游戏对象与组件 1.1 什么是组件 在Unity中组件Component是构建游戏对象GameObject的基本单元。它们赋予游戏对象各种功能和行为。可以将组件看作是游戏对象的特性或能力例如移动、渲染、物理交互等。 要在 Inspector 窗口中查看附加到 GameObject 的组件列表请在 Hierarchy 窗口或 Scene 视图中选择一个 GameObject。 1.2 场景、游戏对象与组件的关系 Unity的核心设计架构可以概括为组件式架构这种架构强调将功能拆分为独立的模块这些模块可以自由组合和复用以构建复杂的游戏对象和场景。 对于核心概念场景、游戏对象和组件三者之间的关系。 1场景是游戏的基本单位它包含了游戏世界中的所有内容。每个场景可以看作是一个容器包含有多个游戏对象和其相关的组件。 2游戏对象是Unity中所有实体的基础它们是场景中存在的对象的抽象。游戏对象本身是一个空的容器但通过添加不同的组件游戏对象可以具有不同的功能和行为。 3组件是游戏对象的功能单元。每个组件负责实现特定的功能例如渲染、物理、音频等。通过组合不同的组件一个游戏对象可以实现复杂的行为。例如一个游戏对象可以同时拥有渲染组件用于显示、物理组件用于碰撞检测和音频组件用于播放声音。 所以三者之间是整体与部分的包含关系。场景由游戏对象组成游戏对象由组件构成。 第二章 在Inpector中操作组件 2.1 添加组件 方法一可以通过Component菜单向所选游戏对象添加组件。比如要添加Rigidbody组件先在Hierarchy或Scene中选择一个游戏对象然后从菜单中选择Component Physics Rigidbody。Inspector会显示Rigidbody的属性。 方法二还可以在组件浏览器中添加组件。要打开组件浏览器在检查器中选择“Add Component” 。 您可以在浏览器中按类别浏览组件或者使用搜索框按名称查找组件。 您可以将任意数量或任意组合的组件附加到单个 GameObject。某些组件与其他组件结合使用效果最佳。例如Rigidbody 与 Collider 配合使用。 有些组件之间是互斥的比如Collider与Rigidbody 2D不能同时使用。 2.2 删除组件 右键单击组件的标题部分可以显示上下文菜单也可从Inspector窗口组件面板右上角的菜单 (⋮) 中获得。 选择“Remove Component”从 GameObject 中移除组件。注意某些组件组合相互依赖Hinge Joint仅在附加到Rigidbody时才有效如果您尝试移除其他组件所依赖的组件则会显示一条警告消息。 2.3 修改组件 当您将组件附加到 GameObject 时组件的属性包含默认值。您可以在构建游戏时在编辑器中编辑这些值也可以在运行游戏时在脚本中编辑这些值。 属性主要有两种类型值和引用。 您可以在Inspector中编辑值属性。值有多种类型包括文本、切换按钮和下拉菜单。 对于引用属性您可以将文件从 Project 视图拖到属性中或者使用属性上的对象选择器圆圈图标。引用属性可以引用其他类型的组件、游戏对象或资产。 比如下图显示了Transform组件的Position属性是值类型而Mesh Renderer组件中Material的值则是引用类型。 2.4 变换组件 Transform组件决定了 GameObject 的位置、旋转、缩放和父级状态。你可以将许多组件附加到 GameObject但每个 GameObject 必须有且只有一个 Transform 组件。你无法移除 Transform 或创建没有 Transform 组件的 GameObject。 要创建空 GameObject请选择GameObject Create Empty。当您选择新的 GameObject 时Inspector 会显示具有默认值的 Transform 组件。 更多参考https://docs.unity3d.com/cn/current/Manual/class-Transform.html 第三章 使用脚本操作组件 3.1 添加组件 添加组件的方法是public T AddComponent()。比如 SphereCollider sc gameObject.AddComponentSphereCollider() as SphereCollider;示例添加Rigidbody组件 1.在Project中Asset文件夹创建一个脚本AddComponentDemo.cs内容如下。 2.菜单GameObject - 3D Object - Cube创建一个Cube将脚本AddComponentDemo.cs拖入到这个Cube上。 3.点击Play运行在Game窗口中按键盘上的A。在Hierarchy中选中Cube可以看到Rigidbody组件已经添加成功。Game窗口中Cube因为有了Rigidbody开始下落。 1.using UnityEngine; 2. 3.public class AddComponentDemo : MonoBehaviour 4.{ 5. Rigidbody rb null; 6. 7. void Update() 8. { 9. if (Input.GetKeyDown(KeyCode.A)) 10. { 11. AddComponentTest(); 12. } 13. } 14. 15. void AddComponentTest() 16. { 17. rb gameObject.AddComponentRigidbody(); 18. 19. if(rb ! null ) 20. { 21. Debug.Log(已添加Rigidbody组件); 22. } 23. } }3.2 删除组件 1Destroy方法 此方法可以删除游戏对象、组件或资产。例如 public static void Destroy(Object obj, float t 0.0F);对象obj在当前更新循环结束后立即销毁t如果指定了时间则在几秒后销毁。如果obj是组件则此方法从GameObject中移除组件并销毁它。如果obj是GameObject则它会销毁GameObject 、其所有组件以及GameObject的所有变换子项。实际对象销毁总是延迟到当前更新循环之后但总是在渲染之前完成。 注意销毁 MonoBehaviour 脚本时在移除脚本之前会调用OnDisable和OnDestroy。 示例在上面添加组件的基础上我们增加一个功能按D键删除Rigidbody组件完整代码如下。 1.using UnityEngine; 2. 3.public class AddComponentDemo : MonoBehaviour 4.{ 5. Rigidbody rb null; 6. 7. void Update() 8. { 9. if (Input.GetKeyDown(KeyCode.A)) 10. { 11. AddComponentTest(); 12. } 13. 14. if(Input.GetKeyDown(KeyCode.D)) 15. { 16. RemoveComponentTest(); 17. } 18. } 19. 20. void AddComponentTest() 21. { 22. rb gameObject.AddComponentRigidbody(); 23. 24. if(rb ! null ) 25. { 26. Debug.Log(已添加Rigidbody组件); 27. } 28. } 29. 30. void RemoveComponentTest() 31. { 32. Destroy(rb); 33. Debug.Log(已移除Rigidbody组件); 34. } 35.}2DestroyImmidiate方法 public static void DestroyImmediate(Object obj, bool allowDestroyingAssets false);立即销毁该对象obj。不过强烈建议使用 Destroy方法。 此函数应仅在编写编辑器代码时使用因为延迟销毁永远不会在编辑模式下调用。在游戏代码中应改用Object.Destroy。销毁始终会延迟但在同一帧内执行。请谨慎使用此函数因为它可能会永久销毁资产另请注意永远不应迭代数组并销毁正在迭代的元素。这将导致严重问题作为一般编程实践而不仅仅是在 Unity 中。 3.3 访问组件 我们先来看一下访问组件的方法有哪些 1public T GetComponent() 获取对指定 GameObject上T类型组件的引用。 2public T GetComponentInChildren(bool includeInactive false) 获取对指定 GameObject 或 GameObject 的任何子项上类型 T 组件的引用。 以上方法中的参数includeInactive是个bool值当为true时表示会获取非激活状态对象上的符合条件的组件默认为false。 3public T GetComponentInParent(bool includeInactive false) 获取对指定 GameObject 或 GameObject 的任何父级上类型 T 组件的引用。 4public T[] GetComponents() 获取对指定 GameObject 上所有类型 T 组件的引用。 5public T[] GetComponentsInChildren(bool includeInactive) 获取对指定 GameObject 上所有类型 T 的组件以及该 GameObject 的任何子组件的引用。 6public T[] GetComponentsInParent(bool includeInactive) 获取对指定 GameObject 上所有类型 T 的组件以及该 GameObject 的任何父级的引用。 7public bool TryGetComponent(out T component) 获取指定类型对象的组件。 这个方法和GetComponent的区别在于当找不到指定类型的组件时不会在编辑器中进行分配。来看下面这段代码 if (objectToCheck.TryGetComponentHingeJoint(out HingeJoint hinge)) {hinge.useSpring false; }在上面的代码中如果找不到HingeJoint组件不会产生异常因为不会检查条件为false不会执行“hinge.useSpring false”这个语句。 在Unity 2022.3之后还增加了下面三个方法主要是用于访问Inspector里的组件。 8public Component GetComponentAtIndex(int index) 获取对指定 GameObject 上特定索引处的组件的引用。 9public int GetComponentCount()返回此 GameObject 上的组件数量。 10public int GetComponentIndex(Component component) 获取指定 GameObject 上指定组件的索引。 接下来就以GetComponen()为例详细说明一下使用方法。 返回值T如果找到 该类型的组件则为其引用否则为null。方法描述T获取对指定 GameObject类型组件的引用。 此方法的典型用法是在对脚本所在 GameObject 以外的其他 GameObject 的引用上调用它。例如 myResults otherGameObject.GetComponentComponentType()但是如果在 MonoBehaviour 类中编写代码则可以省略前面的 GameObject 引用以便从脚本所附加到的同一GameObject中获取组件。在这种情况下实际上是在调用Component.GetComponent因为脚本本身是一种组件但结果与引用GameObject本身一样。例如 myResults GetComponentComponentType()GetComponent仅返回在调用它的GameObject上找到的第一个匹配组件并且检查组件的顺序未定义。因此如果有多个指定类型可以匹配并且需要找到一个特定的类型则应使用Component.GetComponents并检查返回的组件列表以识别所需的组件。 通过这些方法获取到组件后就可以对组件的属性进行修改。 比如我们获取到Rigidbody组件后改变其mass属性的值。 Rigidbody rb GetComponentRigidbody(); rb.mass 0.5f;第四章 应用场景 在 Unity 游戏开发过程中使用脚本来添加、删除和修改组件是常见的需求这种操作可以动态地改变游戏对象的行为和外观适应各种游戏逻辑和需求。以下是一些具体的应用场景和实际案例 动态添加组件 案例角色拾取物品 在游戏中角色可以拾取不同的装备如武器、防具。当角色拾取物品时可能需要为角色动态添加新的组件以增加新功能。 动态删除组件 案例移除临时效果 在一些游戏中角色可能会受到临时效果如加速、减速。当这些效果过期时需要移除相应的组件。 动态修改组件 案例改变角色属性 在游戏中角色可能会因为等级提升、技能效果等原因需要修改其属性。例如角色升级后增加攻击力。 动态切换状态 案例切换敌人AI状态 在复杂的AI系统中敌人的行为可能需要根据玩家的动作进行切换。例如敌人从巡逻状态切换到追击状态。 动态生成特效 案例生成粒子特效 在游戏中某些事件如角色释放技能、敌人死亡可能需要生成特效。可以通过脚本动态添加粒子系统组件。 第五章 总结 学习就是从薄到厚再从厚到薄的过程。 今天学习的重点可以总结为两点 1.场景、游戏对象和组件之间是包含关系 2.掌握对组件的操作方法 1添加组件AddComponent() 2删除组件Destroy(component) 3编辑组件GetComponent() 第六章 学以致用 下面就通过任务来刻意训练一下刚学到的知识吧。 在场景中创建一个平面Plane和一个球体Sphere,将球体的位置设置为 (0,1,0)并删除场景中的Directional Light。当你完成任务后就可以将脚本挂载到球体进行测试。 任务1手动添加和删除组件 运行的效果 1按A时添加Light组件。 2按G时将Light组件的color设置为红色range设置3intensity设置为10。 3按D时删除Light组件。 4通过Log显示添加和删除的结果。 最终运行效果如下 第七章 参考资料 https://docs.unity3d.com/cn/current/Manual/GameObjects.htmlhttps://docs.unity3d.com/cn/current/Manual/UsingComponents.htmlhttps://docs.unity3d.com/2021.3/Documentation/ScriptReference/Component.html 【学以致用】参考答案 任务1
http://www.dnsts.com.cn/news/191288.html

相关文章:

  • 措勤网站建设网站公司做网站修改会收费吗
  • 做电商网站的设计思路有什么意思广告设计工作内容
  • 常州制作网站公司电商网站制作方案
  • 手机建站网站网站上图片不能下载 该怎么做
  • 聚美优品的网站建设网站框架分类
  • 企业官网网站设计wordpress文档怎么制作
  • 泰安公司网站建设什么叫展示型网站
  • 宁波好的网站推广软件网站色彩搭配
  • 大连做企业网站排名开发的某网站建设公司网站源码
  • 服务器iis添加网站宁德住房和城乡建设部网站
  • 萧山城区建设有限公司网站蓝天云免费空间主机
  • 河南网站优化外包服务西安东郊网站建设公司
  • 做网站从什么做起手机上可以编程的app
  • 有什么网站可以做logo赚钱山东省城乡建设厅官网
  • 电子商务网站建设是什么意思wordpress搬家后乱码
  • 永州城乡建设中等职业技术学校网站浙江网站建设营销
  • 什么网站详情页做的好最美情侣高清视频播放
  • 建设新网站北京网站设计学习
  • 网站打开空白页wordpress the_author
  • 重庆网站制作托管微信api接口
  • 苏州有哪些网站制作公司海口网站运营托管咨询
  • 鹏达建设集团有限公司网站wordpress获取当前页面
  • 设计网站名字湖南长工工程建设有限公司官方网站
  • 免费的图库网站丹东网站推广
  • 手机网站生成app国外域名注册做违法网站
  • 绿茶直播滁州百度seo
  • 深圳电子商务网站 开发北京有哪些炫酷的网站页面
  • 潞城网站建设17网站一起做网店池尾商圈
  • 商城网站建设需要易语言跳到指定网站怎么做
  • 网络科技网站设计政协网站建设功能