美文网首页
Unity3D新手入门教程(三)脚本:物体控制,参数,运行,输入

Unity3D新手入门教程(三)脚本:物体控制,参数,运行,输入

作者: Die时而动 | 来源:发表于2022-05-02 17:59 被阅读0次

十一 物体的运动

  • 物体的运动
    • 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)

相关文章

网友评论

      本文标题:Unity3D新手入门教程(三)脚本:物体控制,参数,运行,输入

      本文链接:https://www.haomeiwen.com/subject/pudvyrtx.html