当前位置: 首页 > article >正文

Unity-Transform-坐标转换

世界坐标转本地坐标


        print(Vector3.forward);

        世界坐标系 转本地坐标系 可以帮助我们大概判断一个相对位置

        世界坐标系的点 转换 为相对本地坐标系的点

 
        //受到缩放影响
       

         print("转换后的点 " + this.transform.InverseTransformPoint(Vector3.forward));

        世界坐标系的方向 转换 为相对本地坐标系的方向 
       

        //不受缩放影响
        print("转换后的方向" + this.transform.InverseTransformDirection(Vector3.forward));
   

         //受缩放影响
        print("转换后的方向(受缩放影响)" +this.transform.InverseTransformVector(Vector3.forward));
 

 本地坐标转世界坐标

        本地坐标系的点 转换 为相对世界坐标系的点 受到缩放影响
       

         print("本地 转 世界 点" + this.transform.TransformPoint(Vector3.forward));

       

        本地坐标系的方向 转换 为相对世界坐标系的方向 
       

        //不受缩放影响
        print("本地 转 世界 方向" + this.transform.TransformDirection(Vector3.forward));
        //受缩放影响
        print("本地 转 世界 方向" + this.transform.TransformVector(Vector3.forward));

练习

public class NewBehaviourScript : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        CreatBoll();
    }

  
    public void Creat()//在自己坐标系下的-1,0,1位置创建一个空物体
    {
        GameObject a = new GameObject("C");    //先转换成世界坐标的位置    
                                               //再在世界坐标的位置创建,下同

        a.transform.position = transform.TransformPoint(new Vector3(-1, 0, 1));

    }

    public void CreatBoll()//在自己坐标系下的3个位置创建三个球
    {

      GameObject a=  GameObject.CreatePrimitive(PrimitiveType.Sphere);
        a.transform.position = transform.TransformPoint(new Vector3(0, 0, 1)); 
        GameObject b = GameObject.CreatePrimitive(PrimitiveType.Sphere);
        b.transform.position = transform.TransformPoint(new Vector3(0, 0, 2));
        GameObject c = GameObject.CreatePrimitive(PrimitiveType.Sphere);
        c.transform.position = transform.TransformPoint(new Vector3(0, 0, 3));
    }
}


http://www.kler.cn/a/311063.html

相关文章:

  • 扫雷游戏代码分享(c基础)
  • LLM时代下Embedding模型如何重塑检索、增强生成
  • [ Linux 命令基础 3 ] Linux 命令详解-文件和目录管理命令
  • SSE (Server-Sent Events) 服务器实时推送详解
  • 自动驾驶为什么需要时间同步?高精度时间同步如何实现?
  • Ubuntu 20.04安装CUDA 11.0、cuDNN 8.0.5
  • k8s环境下的相关操作
  • (SERIES12)DM性能优化
  • Bandicam简体中文版下载与安装百度网盘资源
  • 多路径文件批量下载工具V1.0.3-支持批量下载文件到单独文件夹的工具-供大家学习研究参考
  • 攻防世界——simple_php(NO.GFSJ0485)
  • pikachu下
  • JavaScript基础学习:预解析机制
  • 8-----手机机型维修工具助手 功能较全 涵盖解锁 刷机 修复等选项 维修推荐
  • dll注入的实现及session0注入
  • 编译器/工具链环境:GCC vs LLVM/Clang,MSVCRT vs UCRT
  • 继承1 2024_9_18
  • kafka之路-01从零搭建环境到SpringBoot集成
  • leetcode 四数相加||
  • PostgreSQL - SQL语句1
  • 系统在哪些情况下会触发缺页中断
  • oracle pkg正在跑如何停止
  • A review on rumour prediction and veracity assessment in online social network
  • ROM和RAM的区别
  • 简易CPU设计入门:本CPU项目的指令格式
  • macOS平台编译MAVSDK源码生成mavsdk库与mavsdk_server服务可执行文件