4.Unity中的 Transform,旋转,移动的使用

2023-10-27

在这里插入图片描述
脚本文件的名称必须和C#脚本的名称相同

在这里插入图片描述

Transform

Transform组件可以获得并修改 游戏物体的transform栏的信息
即位置,旋转,缩放
在这里插入图片描述
例如:

        //this表示当前游戏物体,即脚本挂在什么物体上,this就指向该物体
        Debug.Log(this.transform.position.x);       //世界坐标X的值
        Debug.Log(this.transform.localPosition.x);  //父类坐标X的值
        Debug.Log(this.transform.rotation.x);       //世界旋转X的值
        Debug.Log(this.transform.localRotation.x);  //父类坐标旋转X的值
        Debug.Log(this.transform.localScale.x);    //父类坐标缩放X的值
        Debug.Log(this.transform.lossyScale.x);    //世界坐标缩放X的值

旋转:

旋转主要通过Tranform组件下的Rotate和RotateAround来进行设置

Rotate的命名格式为:public void Rotate(Vector3 axis, float angle);
RotateAround的命名格式为:public void RotateAround(Vector3 point, Vector3 axis, float angle);

Vector 3:

表示 3维向量数组,表示3D的向量和点。用于在Unity传递3D位置和方向。它也包含做些普通向量运算的函数。除了下面列出的函数,其他类用于处理向量和点。例如Quaternion(四元数)和Matrix4x4类用于旋转或变换向量和点。
在这里插入图片描述

旋转的使用:

自转:

transform.Rotate(Vector3.up, 0.5f);		//绕着Y轴旋转,速度为0.5f

公转:

    public GameObject target;		//目标中心
    public float speed = 0.5f;			//旋转速度


    void Update()
    {
        transform.RotateAround(target.transform.position, Vector3.forward, speed);
    }

移动:

根据玩家所按下的 键进行相应的操作 以WSAD为例
Time.deltaTime(增量时间),若播放速度为1秒60帧,则增量时间为 1 / 60

        if (Input.GetKey("w"))
        {
            tmpCube.transform.Translate(new Vector3(0.5f, 0, 0) * Time.deltaTime, Space.Self);      //前进    (0.5f, 0, 0) * Time.deltaTime(增量时间)
        }
        if (Input.GetKey("s"))
        {
            tmpCube.transform.Translate(new Vector3(-0.5f, 0, 0) * Time.deltaTime, Space.Self);     //后退    (-0.5f, 0, 0) * Time.deltaTime(增量时间)
        }
        if (Input.GetKey("a"))
        {
            this.transform.Rotate(new Vector3(0, -1, 0));       //旋转-1°
        }
        if (Input.GetKey("d"))
        {
            this.transform.Rotate(new Vector3(0, 1, 0));        //旋转1°
        }

利用鼠标控制旋转:

    public float tmpX = 0f;
    public float tmpY = 0f;



        float x = Input.GetAxis("Mouse X");
        float y = Input.GetAxis("Mouse Y");
        tmpX = tmpX + x;
        tmpY = tmpY + y;
        this.transform.rotation = Quaternion.Euler(0, tmpX * speed, 0);		//绕着Y轴旋转

转自:点击此处

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

4.Unity中的 Transform,旋转,移动的使用 的相关文章

  • Unity 资源加载卸载过程

    什么时候才是UnusedAssets 看一个例子 Object obj Resources Load MyPrefab GameObject instance Instantiate obj as GameObject Destroy in
  • 【UGUI】2D头顶血条制作

    前言 近期因为需要制作玩家和敌人头顶的2D血条 查找了很多博客 发现很多都拘束于Canvas的渲染模式必须要设定为ScreenSpace Overlay 还有应该是版本原因 我的是unity2019 1 11f1 用RecttTransfo
  • Unity WebGL错误集锦

    ips 0 Unity的PlayerSettings的otherSettings或者Publish Settings里面的Enable Exceptions里面选择Full StackTrace 可以在打出的包中的浏览器的webgl打印出错
  • 1.17 从0开始学习Unity游戏开发--场景切换

    前面的所有文章我们都在一个固定的游戏场景内进行开发 在最开始介绍场景这个概念的时候就已经提及 这个场景可以是一张地图 或者是一个对战房间等等 所以显然这个场景可以有多个 并且可以从一个场景切换到另外一个场景 那么在Unity中如何进行场景切
  • Unity中级客户端开发工程师的进阶之路

    上期UWA技能成长系统之 Unity高级客户端开发工程师的进阶之路 得到了很多Unity开发者的肯定 通过系统的学习 可以掌握游戏性能瓶颈定位的方法和常见的CPU GPU 内存相关的性能优化方法 UWA技能成长系统是UWA根据学员的职业发展
  • Unity动画系统详解

    目录 动画编辑器 编辑器面板 动画复用 前言 人形重定向动画 Humanoid 通用动画 Generic 旧版本动画 Legacy 动画控制器 系统状态 切换条件 状态机脚本 IK动画 反向动力学 BlendTree 混合树 Animato
  • Unity3d 插件 系列——DoTweenPro介绍(图文详细+案例)

    Unity3d 插件 系列 DoTweenPro介绍 图文详细 案例 前言 一 DoTweenPro简介 二 DoTweenPro安装 三 DoTweenPro主要组件 1 DoTweenAnimation 2 DoTweenPath 3
  • Unity中UI框架的使用1-添加面板、显示Loading页面

    其中BasePanel和Canvas都是挂在面板的预制物上的 1 导入我们的UI框架 本篇文章中有用的是两个UIPanelType NUIManager和NBasePanel 会放在文章最后供大家使用 2 先将我们做好的Panel设置成预制
  • Unity之获取游戏物体对象或组件的几个方法

    文章目录 前言 通过物体名称获取对象 GameObject Find Transform Find 通过物体标签获取对象 GameObject FindWithTag GameObject FindGameObjectWithTag Gam
  • unity后台加密时间锁

    前言 在做一些项目的时候 有些不良甲方在给完项目后会有不给尾款的情况 之前都是加一些水印啥的 感觉不是很方便 第一不美观 第二如果甲方给完尾款后还得重新打包去水印 然后又做过一个本地的时间锁 等到时间 程序直接退出 但是感觉还是不方便 有时
  • 【IMGUI】 各种辅助类 EditorGUIUtility、EditorUtility、GUIUtility、GUILayoutUtility

    EditorGUIUtility class in Editor 继承自 GUIUtility EditorGUI 的各种辅助程序 EditorGUIUtility currentViewWidth 我尝试打印了下这个值和position
  • VLC for unity 插件如何使用

    VLC for unity 插件如何使用 先去下载一个VLC播放器 安装完成后 然后导入插件链接https download csdn net my 这个插件我的另一个上传资源里有 或者到商店去下载 这个插件链接下载完是一个txt文档 里面
  • 【Unity】按Esc进入操作菜单

    本文章是基于如下视频的自我总结 https www youtube com watch v JivuXdrIHK0 步骤如下 1 在Canvas 界面添加一个Panel Panel中添加一个按钮 调整按钮的大小为合适大小 调整字体的大小为合
  • Unity打包WebGL的优化常用操作?

    1 贴图部分优化 如果贴图格式时2048 在不影响画面效果的情况下 改成1024或者5 12 还可以缩小包体 2 压缩和解压缩问题 WebGL打包的时候分三种压缩情况 gzip 比Brotli文件打 但打包快 http和https都支持 B
  • unity实现鼠标右键控制视角

    主要实现的功能是相机跟随主角 鼠标右击移动后 相机的视角会旋转 思路 在主角里创建空的子物体 把相机绑在空物体上 通过旋转空物体来实现视角的旋转 要把相机调整到适当位置 代码如下 public float rotateSpeed 100 设
  • Unity万向节死锁解决方案(2023/12/4)

    1 万向节死锁无法解决 这是因为它的特性就是如此 就像玻璃杯就是玻璃 这不可否认 别钻牛角尖昂 2 大多数情况下欧拉角足够用 例如 CF 摄像机不可能绕z轴旋转 x轴旋转也不会超过九十度 因为那样人物的腰子会被扭断 塔防游戏 保卫萝卜 吃鸡
  • unity3d 自定义的图片无法放入source image中

    须将图片的texture type改为 sprite
  • Unity中URP下的指数雾

    文章目录 前言 一 指数雾 雾效因子 1 FOG EXP 2 FOG EXP2 二 MixFog 1 ComputeFogIntensity 雾效强度计算 2 lerp fogColor fragColor fogIntensity 雾效颜
  • 游戏开发常见操作梳理之小地图的制作

    游戏中一般存在小地图系统 实际上就是设置一个新的摄像机放置在玩家的正上方 然后在小地图上显示新摄像机看见的东西就可以了 在小地图上一般存在放大地图和缩小地图的按钮可以方便放大和缩小地图 这些操作是如何实现的呢 接下来直接上核心代码 usin
  • 游戏开发常见操作系列之敌人系统的开发一(U3D)

    在开发游戏的过程中 我们常常会出现一些敌人攻击我们玩家 并且实现掉血以及死亡的现象 敌人还会源源不断地生成 这是怎么制作的呢 接下来为大家提供方法 其中使用了NGUI 后续会更新其它方法 敬请期待 使用HUDText实现扣血时显示文本 直接

随机推荐