改变帧率
Application.targetFrameRate = 60;
- 这行代码用于设置游戏的目标帧率为60帧每秒。这意味着游戏将尽力在每秒渲染60帧画面,以实现更流畅的动画和交互。
Application.targetFrameRate = 60;
使用Input.GetAxis()移动游戏对象
void Update()
{
// 获取水平和垂直输入值
float horizontal = Input.GetAxis("Horizontal");
float vertical = Input.GetAxis("Vertical");
// 获取游戏对象的当前位置
Vector2 position = transform.position;
// 使用输入值来修改位置
position.x = position.x + 2.5f * horizontal * Time.deltaTime;
position.y = position.y + 2.5f * vertical * Time.deltaTime;
// 将新的位置应用到游戏对象
transform.position = position;
}
获取输入值
float horizontal = Input.GetAxis("Horizontal");
float vertical = Input.GetAxis("Vertical");
- 这两行代码用于获取水平和垂直输入值。`Input.GetAxis()` 方法用于获取输入轴的值,根据传入的参数来选择特定的输入轴。在这里,我们分别获取了水平和垂直方向上的输入值。
修改位置
position.x = position.x + 2.5f * horizontal * Time.deltaTime;
position.y = position.y + 2.5f * vertical * Time.deltaTime;
- 这两行代码使用获取到的输入值来修改游戏对象的位置。水平输入值(`horizontal`)用于控制水平移动,垂直输入值(`vertical`)用于控制垂直移动。
- 乘以 `2.5f` 用于调整移动速度。你可以根据需要调整此值来控制移动速度。
- `Time.deltaTime` 用于考虑到每帧的时间间隔,以使移动操作平滑,不受帧率的影响。
在代码中,`f` 是一个后缀,用于将数值文字(literal)标记为浮点数(float literal)。在C#中,编译器默认将小数点后的数字视为`double`类型,而不是`float`类型。为了明确告诉编译器这是一个`float`类型的值,我们可以在数值后面加上`f`后缀。
例如,`0.1f` 表示一个`float`类型的值,而 `0.1`(没有`f`后缀)将被视为`double`类型的值。
在Unity中,通常使用`float`类型来表示位置、旋转、缩放等变换信息,因为这些信息的精度通常不需要太高。因此,在修改坐标值时,使用`0.1f` 表示0.1个浮点数单位的增量,这是一种常见的做法。
新手之跃宝箱密码:b
获取"Luna"的位置
Vector2 position = transform.position;
在这一行代码中,我们首先声明了一个名为`position`的`Vector2`类型的变量,这个变量将用于存储"Luna"游戏对象的位置信息。
通过`transform.position`,我们获取到了"Luna"游戏对象的当前位置,并将其赋值给了`position`变量。这意味着`position`现在包含了"Luna"的当前位置(包括X和Y坐标)。
修改位置变量
position.x = position.x + 0.1f; // 让人物“Luna”向右进行移动
在这一行代码中,我们修改了`position`变量的X坐标,以实现"Luna"向右移动。具体来说,我们将`position`的X坐标增加了0.1个单位,这会使"Luna"在X轴方向上向右移动一小段距离。
重新赋值位置
transform.position = position; // 把位置再重新赋值
最后一行代码是将修改后的`position`变量的值重新赋给了"Luna"游戏对象的位置。这意味着我们的移动操作已经生效,"Luna"的位置被更新,游戏对象在画面上发生了实际的位移。
Update()
方法中,而 Update()
方法会在每一帧都被调用,所以移动操作会一直执行。这可能不是你想要的行为,特别是如果你只想让"Luna"移动一次或在某个条件下移动。
什么是变量?
在计算机编程中,变量就像一个命名的盒子,用来存储数据。这个盒子有一个名字,你可以通过这个名字来访问里面的内容。
举个例子: 假设你有一个盒子,名字叫`treasureBox`。你可以把一些贵重的物品放进这个盒子里,然后通过`treasureBox`这个名字来找到和取出这些物品。在编程中,变量就像这个`treasureBox`,是用来存储数据的容器。
声明变量
在代码中,声明一个变量的过程就是创建一个盒子,然后给这个盒子起一个名字。下面是一个示例:
Vector2 position;
在这里,我们声明了一个名为`position`的变量。这告诉计算机在内存中为`position`分配适当的空间,以便存储一个`Vector2`类型的值。
变量类型
变量类型告诉计算机我们要存储哪种类型的数据,以便计算机可以为变量分配正确大小的内存空间。在这里,`Vector2`是一种特殊的数据类型,用于存储包含两个数字的值,通常用于表示二维坐标,包括X和Y坐标。
赋值操作符
position = transform.position;
在这行代码中,我们使用了赋值操作符`=`。它的作用是将右侧的值(`transform.position`)赋给左侧的变量(`position`)。这意味着我们将"Luna"游戏对象的位置信息赋给了`position`变量,就像将一个物品放入了`treasureBox`盒子中一样。
探索基础脚本结构
了解基本结构
csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour
{
void Start()
{
// 在游戏开始时执行的代码
}
void Update()
{
// 在每一帧更新时执行的代码
}
}
命名空间与引用
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
类定义
public class NewBehaviourScript : MonoBehaviour
- `public` 表示这个类是公共的,可以在其他脚本中访问。
- `class` 关键字表示这是一个类。
- `NewBehaviourScript` 是类的名称,可以根据需要进行更改。
- `: MonoBehaviour` 表示这个类继承自`MonoBehaviour`类,这是Unity所有脚本的基类。
Start() 方法
void Start()
{
// 在游戏开始时执行的代码
}
- `void` 表示这个方法不返回任何值。
- `Start()` 是一个特殊的方法,在游戏开始时执行一次。
Update() 方法
void Update()
{
// 在每一帧更新时执行的代码
}
- `Update()` 也是一个特殊方法,它在每一帧都会被调用。
新手之跃宝箱密码:X
Input 输入监听 浮点类型(float)
渲染层级
Input.GetAxis()的参数是Input Manager里面的
Input用于监听对象
Input.GetAxis("监听对象")
z
rigidbody 刚体
双方都要有碰撞器且一方有刚体且最好是运动方
变量是内存存储的一个位置
相当于给内存地址取一个名字
变量类型:存储的盒子的类型( )
Order in layer 属性 : 值越大越后渲染,值大的会覆盖值小的。
ztxb
zt
Z
b
907课程提示转码失败。不播放视频。麻烦管理员解决一下,谢谢