Unity --- 游戏案例 --- 英雄无敌与Ruby

1.如何在场景中标识出一个空游戏物体(对象集群)

1.选中该空游戏物体,然后在Inspector面板处的物体名旁边添加想要的颜色的图标即可,最终效果如下图

2.这个图标只在场景中能开到,在游戏画面中是看不到的,其存在的作用是方便程序员对其进行编辑

3.一条游戏路线由一个个点组成,而每个点都可以由一个空游戏物体来进行管理。

4..设置好一个个点组成一条路线后可以再创建一个空游戏物体,并让所有的点成为该游戏物体的并行子物体来统一管理这些路线点(PS:该空游戏物体就可以命名为游戏路线)


5.为A游戏物体做的动画片段不能够套用到B游戏物体上;为一个游戏物体做的动画片段只能够用到这个游戏物体本身上

6.创建类(脚本)的时候有一个原则 --- 类的单一调用原则 --- 简单来说就是一个类只能有一种调用它的理由

 

1.在根路线(所有路线的起始点)处我们要实现的功能有:

一.生成敌人

二.为敌人选择一条只路线路线

三.生成路线

(每一条路线都需要一个路线类来记录它的信息,比如该路线涉及到的所有点,以及是否有被使用)

2.Time.deltaTime也是相对于游戏内时间的,如果想在scaleTime等于0,即游戏内时间暂停的时候依然能够获得每帧渲染所消耗的帧时间的话,就需要调用这个属性 --- Time.unscaleDeltaTime

(游戏内总时间同理(Time.time 与 Time.unscaletime))

3.Invoke() 和 InvokeReapting() 方法都是 MonoBehaviour 类中的实例方法(非静态方法,无法通过类名直接调,必须先实例化对象之后通过对象来进行调用,当然,如果类继承了MonoBehaviour类的话则可以在类中直接调用该方法)

4.每一个拥有Transform组件的游戏对象(对象集群)中的任何一个组件(脚本)对应的类实例化的对象都能够直接通过 --- 对象名 + 点操作符 + transform来访问到该游戏对象上的Transform组件

1.写一个脚本时,如果想要找到对象集群中的某一个组件的话,格式如上:

一.创建一个成员变量,该变量是要找的组件的引用

二.在Strat方法中通过调用继承的GetComponent()方法找到组件,并将其赋值给引用,让其指向这个组件。(后面直接通过这个引用来访问组件中的属性和方法就可以了)

(PS:GetComponent()方法最好千万不要在Updata方法和FixedUpdate方法中调用,因为该方法比较消耗性能,需要尽可能的少调用,而放在上面这两个方法中调用的话一个会每帧调用,一个会隔0.02s调用,十分消耗性能。最好是放在Start方法和Awake方法这些只执行一次的生命周期中)

2.往Updata方法中塞东西要十分谨慎,因为Uodata方法是每帧执行一次,如果塞错东西的话这个错误就会被每帧执行一次(最恐怖的是内存泄漏错误),这会导致非常严重的后果。

3.需要往游戏对象上挂载的脚本都必须继承MonoBehaviour类,不需要往游戏对象上挂载的脚本就不用继承该类。(没有继承MonoBehaviour类的话,则这个类是一个独立于Unity的类(或者说就是一个普通C#类),Unity中所有的方法它都不能够直接调用,但他能够通过实例化其它继承了MB类的类,然后通过对象间接调用)

4.Update方法中主要是执行调用其它方法的操作

5.bool值的默认值是false


6.如何通过脚本创建游戏物体 ---- 将GameObject类实例化后(创建GameObject类对象)就能够在Hirarchy面板创建一个游戏对象

7.如何通过脚本创建特定的游戏对象呢?

在脚本中创建一个公开的成员变量 --- 这个成员变量是一个GameObject类数组引用

创建好后Unity会在挂载脚本的游戏物体的Inspector面板中出现 Size选项,这里指的是元素个数,输好后就会让我们输入对应的元素,此时将想要创建的游戏对象拖入即可

2.在Unity中如果想判断游戏物体是否到达某一个位置时(已知该位置的空间点Vector坐标)

不要采用判断游戏物体的Positon是否与目标位置点的Positon == 的方式,因为这个判断条件太苛刻了,在实际游戏过程中可能因为各种各样的原因游戏物体到达了目标位置但是二者之间的坐标不完全重合

一般我们都使用距离(Distance)判断法 --- 通过判断游戏物体与目标位置的距离是否大于或小于某个特定值来判断游戏物体是否离开 / 到达目标位置

3.在C#中,在方法中直接写个return的话,执行到这一行代码时就会自动结束该方法

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vulnhub项目:Web Machine(N7)

靶机地址:Web Machine(N7)渗透过程:kali ip:192.168.56.104,靶机ip,使用arp-scan进行查看靶机地址:192.168.56.128收集靶机开放端口:nmap -sS -sV -T5 -A 192.168.56.128开放了80端口&#xff0…

索尼mxf变成rsv的修复方法

索尼的影视级摄像机一般是用MXF文件结构,在一些极端情况下(如断电)会生成RSV文件,遇到这种情况我们应该如何处理?下面来看看今天这个案例。故障文件:12.51G RSV文件故障现象:断电后仅生成了一个扩展名为rsv的文件,使用播放器可以播…

python+django+vue全家桶鲜花商城售卖系统

重点: (1) 网上花店网站中各模块功能之间的的串联。 (2) 网上花店网站前台与后台的连接与同步。 (3) 鲜花信息管理模块中鲜花的发布、更新与删除。 (4) 订单…

java多线程之线程的六种状态

线程的六种状态(1) NEW(初始状态)(2) TERMINATED(终止状态 / 死亡状态)(3) RUNNABLE(运行时状态)(4) TIMED_WAITING(超时等待状态)(5) WAITING(等待状态)(6) BLOCK(阻塞状态)sleep和wait的区别:操作系统里的线程自身是有一个状态的,但是java Thread 是对系统线程的封装,把这里的…

基于C++的AI五子棋游戏项目开发教程

项目资源下载 基于C的AI五子棋游戏项目源码压缩包下载地址基于C的AI五子棋游戏项目源码Github下载地址基于C的AI五子棋游戏项目所需素材基于C的AI五子棋游戏项目所需要的EasyX 项目简介 本项目基于C开发,整体来说比较简单,实现了人与AI之间的五子棋对弈…

Java实习生------Redis常见面试题汇总(AOF持久化、RDB快照、分布式锁、缓存一致性)⭐⭐⭐

“年轻人,就要勇敢追梦”🌹 参考资料:图解redis 目录 谈谈你对AOF持久化的理解? redis的三种写回策略是什么? 谈谈你对AOF重写机制的理解?AOF重写机制的具体过程? 谈谈你对RDB快照的理解&a…

面试官:说一下MySQL中的锁机制吧

5. 1MySQL有哪些锁? 为保证数据的一致性,需要对并发操作进行控制,因此产生了锁。同时锁机制也为实现MySQL的各个隔离级别提供了保证。 锁冲突 也是影响数据库并发访问性能的一个重要因素。所以锁对数据库而言显得尤其重要,也更加…

seata服务搭建

它支持两种存储模式,一个是文件,一个是数据库,下面我们分别介绍一下这两种配置nacos存储配置,注意如果registry.conf中注册和配置使用的是file,就会去读取file.config的配置,如果是nacos则通过nacos动态读取…

Kafka和RabbitMQ有哪些区别,各自适合什么场景?

目录标题1. 消息的顺序2. 消息的匹配3. 消息的超时4. 消息的保持5. 消息的错误处理6. 消息的吞吐量总结1. 消息的顺序 有这样一个需求:当订单状态变化的时候,把订单状态变化的消息发送给所有关心订单变化的系统。 订单会有创建成功、待付款、已支付、已…

Cookie和Session详解

目录 前言: Session详解 Cookie和Session区别和关联 服务器组织会话的方式 使用Tomcat实现登录成功跳转到欢迎页面 登录前端页面 登录成功后端服务器 重定向到欢迎页面 抓包分析交互过程 小结: 前言: Cookie之前博客有介绍过&#x…

音视频技术开发周刊 | 285

每周一期,纵览音视频技术领域的干货。新闻投稿:contributelivevideostack.com。GPT-4 Office全家桶发布谷歌前脚刚宣布AI工具整合进Workspace,微软后脚就急匆匆召开了发布会,人狠话不多地祭出了办公软件王炸——Microsoft 365 Cop…

使用GPT-4生成QT代码

一、概述最近ChatGPT火爆起来了,ChatGPT是一种基于GPT的自然语言处理模型,可以用于生成自然语言文本,例如对话、文章等。最近又发现了一个优秀且免费的代码生成工具Cursor.so ,Cursor.so集成了 GPT-4 ,可以帮助你快速编…

Python3,5行代码,生成自动排序动图,这操作不比Excel香?

5行代码生成自动排序动图1、引言2、代码实战2.1 pynimate介绍2.2 pynimate安装2.3 代码示例3、总结1、引言 小屌丝:鱼哥,听说你的excel段位又提升了? 小鱼:你这是疑问的语气? 小屌丝:没有~ 吧… 小鱼&…

计算机网络复习重点

文章目录计算机网络复习重点第一章 计算机网络和因特网概念与应用1、什么是因特网2、协议protocol3、入网方式4、物理媒介5、数据交换模式6、延时与丢包什么时候发生延时?延时的类型丢包何时发生7、协议层次与模型因特网协议栈TCP / IP模型ISO/OSI参考模型协议数据单…

MySQL-存储过程

什么是存储过程我们前面所学习的MySQL语句都是针对一个表或几个表的单条 SQL 语句,但是在数据库的实际操作中,并非所有操作都那么简单,经常会有一个完整的操作需要多条SQL语句处理多个表才能完成。例如,为了确认学生能否毕业&…

归并排序和快速排序

目录 归并排序 思路: 代码执行: 快速排序 运行流程图: 代码思路: 代码执行: 归并排序 定义:归并排序是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法&#x…

【JavaSE】类和对象(中)

类和对象(中)4. this引用4.1 为什么要有this引用4.2 什么是this引用4.3 this引用的特性5. 对象的构造及初始化5.1 如何初始化对象5.2 构造方法(构造器)5.2.1 概念5.2.2 特性5.3 默认初始化5.4 就地初始化6. 封装6.1 封装的概念6.2…

常用hook

Hook 是 React 16.8 的新增特性。它可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性。理解:hook是react提供的函数API官方提供的hook基础hookuseState APIconst [state, setState] useState(initialState); //返回state值 以及更新state的方法 …

壹沓科技完成近2亿元B轮融资:构建数字机器人,实现业务超自动化

RPA中国获悉,全球领先的数字机器人公司壹沓科技近期宣布完成近2亿元B轮融资,本轮融资由鼎晖VGC(创新与成长基金)领投,创享欢聚投资基金、IDG资本、钟鼎资本跟投,指数资本继续担任独家财务顾问。 壹沓科技CEO卞晓瑜表示&#xff1…

栈、队列、优先级队列的模拟实现

优先级队列的模拟实现栈stack的模拟实现push()pop()top()size()empty()swap()stack总代码队列queue的模拟实现push()pop()front()back()empty()size()swap()queue总代码优先级队列(堆)push()pop()top()empty()size()swap()priority_queue总代码deque的了解栈 在CSTL中栈并不属…