unity脚本基础笔记

来源:互联网 发布:淘宝游戏王店铺推荐 编辑:程序博客网 时间:2024/06/08 11:48

//一些脚本里用到的东西吧,纯手打总结 对新手诚意满满。

Translate Rotate

Translate 改变对象位置 Rotate 使对象旋转
//Translate 函数给定一个方向比如 Vector3.Forward 给一个速度 speed=10 在给定一个时间Time.deltatime 以秒为单位
//Rolate 和Translate 差不多用法 第一个参数式按照什么轴旋转? 然后是旋转速度和时间

LookAt

//可以让对象的正前方 朝向设定的方向 可以实现 跟着我们的 主角走 Transfrom 一个对象引用。然后在 面板里给引用赋值 在script 里面调用 lookat
//实现了跟着 白球走。

线性插值

//三个参数 起始值 终止值 和插值的 比例 例: mathf.Lerp(3f,5f,0.5f);返回就是 4
也就是 说 可以用在 vect3 和 color里面 例: Vector3 from=new Vector3(1f,2f,3f); Vector3 to=new Vector3(4f,5f,6f);Vector3.Lerp(from,to,0.75f);
//颜色是四个值 红黄蓝和透明度 同时 也可以用作平滑处理 但是 平滑处理有更好的函数
例: 在Update里面 light.intensity=Mathf.lerp(light.intensity,8f,0.5f);使intensity趋近于8f

Destory函数

可以在游戏运行时候移除物体或者组件 第二个参数可以设置 延迟时间 。
//可以通过引用来销毁 对象 比如 在白球里面引用了 红球,当按下 空格键的时候利用destory函数将红球销毁掉。
//也可以不销毁对象只销毁组件。 例如销毁 MeshRender 这样对象将不会被渲染。

Input.GetButton

Input.GetButton()可以取到自定义按键 Input Manager 可以对输入进行命名并指定对应的按键
// 这个设置其他 的按键也可以 引用设置好的字符串 比如 Jump 默认按键是Space 改变 Space按键 但可以引用设置好的字符串Jump
//GetButton会检测 按键是不是被持续的按下 GetButtonDown 会检测是不是当前帧按下了按键
//检测按钮时 用预先设定好的字符串名称比如 Input.GetButton(“Jump”); 因为GetKey只能用特定按键 所以推荐用GetButton;

Input.GetAxis

GetAxis 返回浮点值 范围在 1 ~ -1之间 //Gravity 表示松开按钮后 返回值归零的速度。
//Sensitivity 表示按下按钮时 返回值到达1 ~-1 的速度。和Fravity相反
//如果是使用摇杆来控制坐标轴 可以设置dead dead 值越大 摇杆也需要移动更大的距离才能获取返回值
//勾选snap 当 正反 按钮同时 按下时 会返回0 如果想获得 水平和垂直方向的输入 那就用Input.GetAxies(“Horizontal”);Input.GetAxies(“Vertical”);
//如果在不需要平滑处理的2D游戏中 也 可以 直接返回整数。

OnMouseDown

OnMouseDown 应该是一个 重载 函数添加这个 函数可以 获取 对象被点击的情况 如果对象被点击了,那么会调用这个函数。

GetComponent

//GetComponent 获得 对象中的组件,这个 用到好多次了。感觉用着不错 脚本引用变量的名称 就是 脚本的 名称 这个函数的 开销可能有点大 deltaTime 是差值时间 可以计算 Update 或者 FixUpate两次调用之间的时间差值。

deltaTime

可以用于 平滑移动 或者其他增量的计算 每一帧的间隔是不固定的 所以如果让每一帧 移动相同的距离时候 整体效果看起来不是很平滑
//于是当在这里面使用了 deltaTime 时候时 间较长的帧移动的距离也就较长 而时间较短的帧移动距离也相对较短
int value;
debug.log(value); //显示信息 在输出里面看到提示信息

Awake Start Update FixedUpdate

在start awake 中赋值变量 不会被 界面的inspactor重写 隐式是在其后进入的
Awake()先被调用,即使脚本未被启用.最好用做设置脚本之间的引用和初始化。
Start中写脚本被启用所需要执行的动作 可以写一些初始化的代码
Awake 和 Start只在脚本的生命周期中被调用一次。
Update() 使用这个函数的脚本每一帧都会被调用。 他不是根据时间轴来的。也就是如果帧间转换速度不一样那么调用所花费的时间也不一样。
FixedUpdate() 是根据正常的时间轴来的 每次调用的时间间隔是相同的。所以一些物理计算在这里实现 比如有钢体 的物理对象.

坐标轴

坐标轴 可以用 左手定则 记住 X Y Z 分别是拇指 食指 中指
坐标是按 (X,Y,Z)的顺序给出的?也就是左右 上下 前后?
Vector3.magnitude会自动计算向量的大小.
通过点积判断是否垂直 x*x+y*y+z*z vector3.doc…()自动计算点积。
通过×积得到垂直于两个向量的向量 A^B=C; vector3.Cross()自动计算叉积。叉积在游戏中可以用来判断扭矩。

启用禁用对象或者组件

启用或者禁用组件可以使用enabled关键字。
同时可以用 enabled 来禁用脚本
可以 启用 或者 禁用 对象 。当禁用了 父对象 旗下的子对象一样不会再游戏里面显示 但是启用复选框会显示打钩。
Object.SetActivity()

原创粉丝点击