Unity3D新手入门教程(三)脚本:物体控制,参数,运行,输入
2022-05-02 本文已影响0人
Die时而动
十一 物体的运动
- 物体的运动
- transform.Translate(dx,dy,dz,...)
- 相对运动
- tarnsform.Translate(dx,dy,dz,space)
- space=Space.World|space.Self
- 运动方向
- 获取目标物体
- GameObject.Find()
- 转向目标
- transform.LookAt()
- z轴指向目标
- 获取目标物体
- 小练习:达到目标停止
- vector.magnitude获取向量值
- if语句
十二 物体的旋转
- 物体旋转
- transform.rotation不建议用
- transform.eulerAngles
- transform.LocalEulerAngles
- 匀速转动
- 相对旋转
- transform.Rotate()
- 自转和公转
- 公转:围绕另一个物体一起转动
十三 脚本的运行
- 脚本的运行
- 场景的加载过程
- 创建节点
- 实例化组件
- 实例化脚本组件
- 场景的加载过程
- 消息函数(事件函数,回调函数)
- Awake
- Start
- Update
- OnEnable
- OnDisable
- 脚本执行顺序
- 消息函数调用顺序
- 第一阶段初始化Awake()
- 第二阶段Start()
- 帧更新
- 脚本优先级
- Execution Order
- 消息函数调用顺序
- 主控脚本
- MainLogic
十四 脚本的参数
- 脚本参数
- 公有数据成员
- 参数赋值顺序
- 类中初始化默认值
- 检查器赋值
- Awake
- Start
- 值类型
- 结构体类型
- int,float,boll...
- Vector3,Color
- 引用(类)类型
- 节点
- 组件
- 资源
- 数组类型
- 结构体类型
- 运行时调试保存参数
- play mode下copy component
- edit mode下paste component values
十五 鼠标键盘输入
- 鼠标输入
- Input.GetMouseButtonDown(int)
- Input.GetMounseButtonUp(int)
- Input.getMouseButton(int)
- 0左键,1右键,2中键
- 更多细节
- 事件只触发一次
- 状态每帧一次
- 全局事件互不干扰
- 屏幕坐标
- 获取屏幕坐标
- Input.mousePosition
- 左下角原点
- 世界坐标转化屏幕坐标
- Camera.main.WorldToScreenPoint(world pos)
- 屏幕对象
- Screen.Width
- 获取屏幕坐标
- 键盘输入
- Input.GetKeyDown(keycode)
- Input.GetKeyUp(keycode)
- Input.GetKey(keycode)
- KeyCode.A
附件 脚本汇总
//脚本
//this当前脚本组件继承自MonoBehaviour
//消息函数
void Start()
void Update()
//获取物体,读写其属性
//获取当前物体
GameObject obj = this.gameObject;
//获取场景内其他物体
flag = GameObject.Find("红旗");
//获取位置
//this.gameObject.transform等同于this.transform
Vector3 pos = this.transform.position;
pos = this.transform.localPosition;
//物体运动
//匀速运动:根据速度设置前进距离
distance = speed * Time.deltaTime;
this.transform.Translate(0, 0, distance);
//运动方向
this.transform.LookAt(flag.transform);
//匀速转动
this.gameObject.transform.localEulerAngles += new Vector3(0, rotationSpeed * Time.deltaTime, 0);
float rotationSpeed = 120;
this.transform.Rotate(0, rotationSpeed * Time.deltaTime, 0, Space.Self);
//监听输入
Input.GetMouseButtonDown(0)
Input.GetKey(KeyCode.W)
//全局设置
//设置近似帧率
Application.targetFrameRate = 60;
//常用类的静态属性&方法
//时间
Time.time
Time.deltaTime
//屏幕
Screen.width
//输入
Input.mousePosition
//摄像机
Camera.main.WorldToScreenPoint(this.transform.position)