|
|
本帖最后由 zhoupenghao 于 2025-11-7 23:37 编辑
void Start(){ //脚本文件启动时只执行一次
}
void Update(){ //脚本文件启动后每帧执行一次,也就是实时刷新
}
涉及到的关键词transform(坐标);position(坐标轴位置)对应代码如
将某数值赋予坐标实现位移 注:Vector3是三维的意思
void Update(){
transform.position= new Vector3(数值.0.0);
}
可以直接将Vector3赋予为变量数值就可以动态调整坐标且是3d坐标
using省略
public class 左右移动:MonoBehaviour
{
pubilc Vector3 左右移动值;//数值可在游戏调试运行面板更改
void Start(){
}
void Update(){
transform.position=左右移动值
}
bool 开关 //用于假定状态可在游戏面板中调试用于调试或参与if语句
if(Input.GetKeyDown(KeyCode.A) //获取键位用于位移(Input.GetKey)是长按数据;加Down是点按
{
transform.position+=new Vector3(-1f,0,0);//若是长按需要坐标位置后跟f下面讲明
- //+= 运算符表示将偏移量叠加到当前位置上
- //此段代码仅在针更新代码块中有效
- //乘以 Time.deltaTime 可以让移动速度不受帧率影响,确保在不同设备上移动速度一致(单位变为 单位 / 秒
- //如transform.position+=new Vector3(-1f,0,0)*Time.deltaTime;
}
在代码中给数值加上 f(比如 1f、-1f)是为了明确指定这个数值是单精度浮点数(float 类型),这在 C#(Unity 的主要开发语言)中是一个重要的语法细节。
原因如下:
- C# 的默认数值类型规则:
直接写 1 或 -1 时,C# 会默认将其视为 整数(int 类型);而 Vector3 的构造函数参数要求是 float 类型。
如果写成 new Vector3(-1, 0, 0),编译器会自动将 int 转换为 float(隐式转换),表面上能运行,但这是不规范的写法。 - 避免歧义与潜在错误:
当数值是小数时(比如 0.5),C# 会默认视为 双精度浮点数(double 类型)。如果直接写 new Vector3(0.5, 0, 0),编译器会报错,因为 double 不能直接隐式转换为 float,必须显式加 f(0.5f)才能正确匹配 Vector3 的参数类型。
为了统一规范(尤其是处理小数时),即使是整数,也推荐加上 f 明确指定为 float,避免因类型转换产生意外错误。
简单说:f 是告诉编译器 “这个数是 float 类型”,确保与 Unity 中 Vector3 等 API 的参数类型匹配,是规范且安全的写法。
Debug.log(""); //在调试区域打印内容()括号内写string类型
|
|