查看: 992|回复: 1
打印 上一主题 下一主题

[其他] 坐标的表达

[复制链接]
may    

8830

主题

81

听众

7万

积分

首席设计师

Rank: 8Rank: 8

纳金币
52336
精华
343

最佳新人 热心会员 灌水之王 活跃会员 突出贡献 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2015-10-17 23:56:12 |只看该作者 |倒序浏览

====1===
物体A前后左右上下7米处坐标表达
          Vector3 qian = A.transform.position + A.transform.forward * 7f;//物体A前方7米的坐标.
          Vector3 hou = transform.position +  (transform.rotation * Vector3.back)*7f;
          Vector3 zuo = transform.position + (transform.rotation * Vector3.left)*7f;
          Vector3 you = transform.position + transform.right * 7f;
          Vector3 shang = transform.position + transform.up * 7f;
          Vector3 xia = transform.position +  (transform.rotation * Vector3.down)*7f;

          Debug.DrawLine (transform.position,qian,Color.red);
          Debug.DrawLine (transform.position,hou,Color.blue);
          Debug.DrawLine (transform.position,zuo,Color.black);
          Debug.DrawLine (transform.position,you,Color.green);
          Debug.DrawLine (transform.position,shang,Color.gray);
          Debug.DrawLine (transform.position,xia,Color.white);

=====2===
角色Y轴80度方向,前方5米处的坐标
float angle = 80f;
float length = 5f;
Quaternion q = Quaternion.Euler(transform.rotation.eulerAngles.x,angle, transform.rotation.eulerAngles.z); ///求出第i个点的旋转角度
Vector3 Point = transform.position +(q*transform.forward) * length;
更多注释
//360代表(360度,把360分成多少分,第几份).如果a = 4前方a=2后方a= 3右方a=1左方
//Quaternion q = Quaternion.Euler(transform.rotation.eulerAngles.x, transform.rotation.eulerAngles.y - (360/4 * a), transform.rotation.eulerAngles.z); ///求出第i个点的旋转角度


//运行代码
        void Update ()
        {
                Vector3 qian = transform.position + transform.forward * 7f;
                Vector3 hou = transform.position +  (transform.rotation * Vector3.back)*7f;
                Vector3 zuo = transform.position + (transform.rotation * Vector3.left)*7f;
                Vector3 you = transform.position + transform.right * 7f;
                Vector3 shang = transform.position + transform.up * 7f;
                Vector3 xia = transform.position +  (transform.rotation * Vector3.down)*7f;
                Debug.DrawLine (transform.position,qian,Color.red);
                Debug.DrawLine (transform.position,hou,Color.blue);
                Debug.DrawLine (transform.position,zuo,Color.black);
                Debug.DrawLine (transform.position,you,Color.green);
                Debug.DrawLine (transform.position,shang,Color.gray);
                Debug.DrawLine (transform.position,xia,Color.white);

                float angle = 80f;
                float length = 5f;
                Quaternion q = Quaternion.Euler(transform.rotation.eulerAngles.x,angle, transform.rotation.eulerAngles.z); ///求出第i个点的旋转角度
                Vector3 Point = transform.position +(q*transform.forward) * length;
                Debug.DrawLine (transform.position, Point, Color.yellow);

        }


分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

1

主题

6

听众

1025

积分

助理设计师

Rank: 4

纳金币
72
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2015-10-26 10:41:31 |只看该作者
好东西,谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-25 12:47 , Processed in 0.160599 second(s), 28 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部