unity 四元数, 两行等价的代码

Vector3 tmpvc;

1. tmpvc = Quaternion.Euler (new Vector3 (0, 30, 0)) * new Vector3 (0, 0, 1);
2. tmpvc = new Vector3 (sin (30.0f), 0, cos (30.0f));

transform.position = target.transform.position + tmpvc.normalized * 5;

  第二个tmpvc 不用normalized

  float sin (float v)
    {
        return Mathf.Sin (real (v));
    }
    
    float cos (float v)
    {
        return Mathf.Cos (real (v));
    }

  float real (float v)
    {
        return v / 180.0f * 3.1415926f;
    }

时间: 2024-10-10 12:49:55

unity 四元数, 两行等价的代码的相关文章

asp.net mvc应用架构的思考--Unity的应用及三层代码

最近要做一个项目,和国外的架构师聊过之后.对方提到了他准备采用asp.net mvc, jquery, Unity 等技术来代替老的技术: 如asp.net web form. 他请我帮他想一些关于架构的东西.一直以来,关于asp.net mvc应用的架构,有一些想法.正好借这个机会写出来.资深的人士可能已经知道了,就当是复习吧.欢迎发表意见.指出不足. Unity的应用 Unity出来已经有几年了.早几年的1.2版就可以实现这里所说的功能.目前最新稳定版是2.1.正在开发的3.0也许会给我们带

Unity如何有效的组织的代码

转自知乎:梁伟国 准确地说,代码作为Unity项目里的一种资源,此问题应该扩展到如何组织Unity资源.简单说说我们的经验:- Unity有一些自身的约定,譬如项目里的Editor,Plugins等目录作为编辑器,插件目录等等.知名的插件会自己存放一个目录,譬如NGUI等.所以我们自己的代码,一般目录名会以下划线开头,譬如 "_Scripts", "_Prefabs"等.对于场景,文档等目录,用两条下划线,以便他们能排在最顶部.- 代码用C#,别用JS.必要的话用n

Unity四元数和旋转

四元数介绍 旋转,应该是三种坐标变换--缩放.旋转和平移,中最复杂的一种了.大家应该都听过,有一种旋转的表示方法叫四元数.按照我们的习惯,我们更加熟悉的是另外两种旋转的表示方法--矩阵旋转和欧拉旋转.矩阵旋转使用了一个4*4大小的矩阵来表示绕任意轴旋转的变换矩阵,而欧拉选择则是按照一定的坐标轴顺序(例如先x.再y.最后z).每个轴旋转一定角度来变换坐标或向量,它实际上是一系列坐标轴旋转的组合. 那么,四元数又是什么呢?简单来说,四元数本质上是一种高阶复数(听不懂了吧...),是一个四维空间,相对

Unity 延迟执行一段代码的较为优雅的方式

在Unity中,延时执行一段代码或者一个方法或者几个方法的情况非常普遍. 一般会用到Invoke和InvokeRepeating方法.顾名思义,第一个是执行一次,第二个是重复执行. 看下定义: void Invoke(string methodName, float time); 第一个参数是方法名(注意是字符串形式),并不是更方便的委托.第二个是延时多少秒.只执行一次. void InvokeRepeating(string methodName, float time, float repe

Unity 延迟执行一段代码的实现比较好的方式

欢迎来到unity学习.unity培训.unity企业培训教育专区,这里有很多U3D资源.U3D培训视频.U3D教程.U3D常见问题.U3D项目源码,我们致力于打造业内unity3d培训.学习第一品牌. 在Unity中,延时执行一段代码或者一个方法或者几个方法的情况非常普遍. 一般会用到Invoke和InvokeRepeating方法.顾名思义,第一个是执行一次,第二个是重复执行. 看下定义: void Invoke(string methodName, float time); 第一个参数是方

Unity调用android平台java代码

最近因为公司需要开始研究Unity平台的sdk接入.首先从调用最简单的java代码开始. 1.首先建立android lib项目. package unityPlugin; import com.unity3d.player.UnityPlayer; import android.widget.Toast; public class UnityPluginTest { public static void show(){ UnityPlayer.currentActivity.runOnUiTh

【转】Unity四元数和向量相乘作用及其运算规则

作用:四元数和向量相乘表示这个向量按照这个四元数进行旋转之后得到的新的向量. 比如:向量vector3(0,0,10),绕着Y轴旋转90度,得到新的向量是vector3(10,0,0). 在unity中表示为: 运行结果为: 复合旋转就是四元数依次相乘,最后乘以向量 多来几例: 想了解其中的运算过程的可以往下看. 将四元数的四个值分别计为:(w,x,y,z),unity中的四元数中的四个数字是(x,y,z,w),不影响下面的计算过程. 绕任意轴旋转任意角度的四元数为: 那么绕着Y轴旋转90度的四

Unity学习笔记 之 关于 Unity UI 的 Slider 的代码记录

代码如下: using UnityEngine; using System.Collections; //1.引入 UI . using UnityEngine.UI; public class testSliderEvent : MonoBehaviour { //2.定义一个 Text 目标对象. public Text targetTextObject; //3.定义一个 Slider 目标对象. public Slider targetSliderOject; // Use this f

unity四元数

若想要某个物体(i,j,k)绕着a(x,y,z)轴旋转θ度.这个旋转用四元数表示就是q = ((x,y,z)sinθ/2, cosθ/2) 该物体用四元数表示为p = ((j,j,k),0).那么旋转之后的物体的点为p′,则: 通过某个公式能算出p′的值. Quaternion.AngleAxis (30.0f, transform.right) 这个方法的意思是创建一个四元数表示饶transform.right轴旋转30度.四元数可以用*操作符来进行多个旋转操作比如: transform.ro