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

news/2024/12/22 14:15:25/

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的话,执行到这一行代码时就会自动结束该方法

 


http://www.ppmy.cn/news/33906.html

相关文章

Hadoop运行模块

二、Hadoop运行模式 1)Hadoop官方网站:http://hadoop.apache.org 2)Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式。 本地模式:单机运行,只是用来演示一下官方案例。生产环境不用。伪分布式模式:也是单机运行,但是具备Hadoop集群的所有功能,一台服务…

XCPC第十一站,带你学会图论基本算法

我们约定:以下n表示点的数目,m表示边的数目。 引子1——邻接表存储图的方法()(暂时不考虑重边和自环) 现在我们有n个点(编号为1~n)和m条边,要用数组存储它们&#xff0c…

【专项】93. 复原 IP 地址

93. 复原 IP 地址 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 ‘.’ 分隔。 例如:“0.1.2.201” 和 “192.168.1.1” 是 有效 IP 地址,但是 “0.011.255.…

Spring Cloud之一:注册与发现-Eureka工程的创建

目录 环境 Eureka工程的创建步骤 系列目录(持续更新。。。) Spring Cloud之一:注册与发现-Eureka工程的创建 Spring Cloud之二:服务提供者注册到Eureka Server 环境 Spring Boot版本: 2.7.9 编辑器:Id…

如何做好品牌营销,这些重点带你“破局”

一个品牌从最初诞生时的“默默无闻”,到拥有深远的市场认知度,离不开营销的发力,可以说贯穿着品牌的整个生命周期。今天就来跟大家分享下,在品牌发展的各个阶段如何做好品牌营销?一、品牌的生命周期品牌的诞生与一个生…

CSS实现文字凹凸效果

使用两个div分别用来实现凹凸效果;text-shadow语法 text-shadow: h-shadow v-shadow blur color; h-shadow:必需。水平阴影的位置。允许负值。 v-shadow :必需。垂直阴影的位置。允许负值。 blur:可选,模糊的距离。 co…

设计模式2 - 观察者模式

定义: 观察者模式又叫发布订阅模式,它定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。 组成: Subject(通知者/被观察者)&#…

【ZYNQ】制作从 QSPI Flash 启动 Linux 的启动文件

在 这篇文章 中学习了使用 PetaLinux 定制 Linux 的方法,制作了 SD 卡启动文件,本期介绍如何使用 PetaLinux 配置生成从 QSPI Flash 启动的 Linux 镜像文件。 复制 Petalinux 工程 如果我们想保留 SD 卡启动的 Petalinux 工程,但是又不想新…