|
十一 物体的运动
- 物体的运动
transform.Translate(dx,dy,dz,...)
- 相对运动
tarnsform.Translate(dx,dy,dz,space)space=Space.World|space.Self
- 运动方向
- 小练习:达到目标停止
vector.magnitude获取向量值if语句
十二 物体的旋转
- 物体旋转
transform.rotation不建议用transform.eulerAnglestransform.LocalEulerAngles匀速转动
- 相对旋转
- 自转和公转
十三 脚本的运行
- 脚本的运行
- 消息函数(事件函数,回调函数)
AwakeStartUpdateOnEnableOnDisable
- 脚本执行顺序
- 消息函数调用顺序
第一阶段初始化Awake()第二阶段Start()帧更新
- 脚本优先级
- 主控脚本
十四 脚本的参数
- 脚本参数
- 参数赋值顺序
- 值类型
- 结构体类型
int,float,boll...Vector3,Color
- 引用(类)类型
- 运行时调试保存参数
play mode下copy componentedit mode下paste component values
十五 鼠标键盘输入
- 鼠标输入
Input.GetMouseButtonDown(int)Input.GetMounseButtonUp(int)Input.getMouseButton(int)0左键,1右键,2中键
- 更多细节
- 屏幕坐标
- 获取屏幕坐标
- 世界坐标转化屏幕坐标
Camera.main.WorldToScreenPoint(world pos)
- 屏幕对象
- 键盘输入
Input.GetKeyDown(keycode)Input.GetKeyUp(keycode)
- Input.GetKey(keycode)
附件 脚本汇总
//脚本 //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) |
|