unity3d培训_004

来源:互联网 发布:原生js dialog 编辑:程序博客网 时间:2024/06/05 18:11

向量与坐标

using UnityEngine;using System.Collections;public class direct : MonoBehaviour {// Use this for initializationvoid Start () {        Vector3 a = new Vector3();        float x = a.x;        float y = a.y;        float z = a.z;        a.Normalize();//获取a的单位向量,且a长度变为1。        Vector3 b = a.normalized;//获取a的单位向量,且a不变。        float L = a.magnitude;//获取a向量的长度。/*        Vector3.up;//世界坐标系上 Y 轴方向单位向量。        Vector3.down;//        Vector3.right;//X轴的        Vector3.left;//        Vector3.forward;//Z轴的        Vector3.back;        Vector3.zero;//表示世界坐标系的原点。*/        //获取向量 v1. v2 间角度。        Vector3 v1 = new Vector3(0.0f, 0.0f, 1.0f);        Vector3 v2 = new Vector3(1.0f, 1.0f, 1.0f);        Vector3.Angle(v1,v2);        //获取两点间距离。        Vector3 pos1 = new Vector3(0.0f, 0.0f, 0.0f);        Vector3 pos2 = new Vector3(1.0f, 1.0f, 1.0f);        float distan = Vector3.Distance(pos1, pos2);        //向量点乘        float aa=Vector3.Dot(v1, v2);        Vector3 bb = Vector3.Cross(v1,v2);}// Update is called once per framevoid Update () {}}

transform的函数使用

using UnityEngine;using System.Collections;public class Reda : MonoBehaviour {// Use this for initializationvoid Start () {        //transform 获取游戏对象的位置        //transform.position 世界坐标系的三维坐标        //transform.localPosition 局部坐标位置        Vector3 pos = transform.position;        print(pos);        //transform.rotation 旋转属性,一般不用它修改        //transform.localRotation        //Vector3 a = transform.localScale;            }    // Update is called once per frame    void Update () {        if(Input.GetKeyDown(KeyCode.P))        {            //transform.position = Vector3.zero;//移到原点            //transform.localPosition=Vector3.zero;//局部坐标的改变            transform.localScale = new Vector3(10f,10f,100f);//放大10,10,100倍        }        if (Input.GetKey(KeyCode.O))        {            transform.Translate(new Vector3(0, 0.2f, 0));//该函数表示:当前位置加上后面的三维向量。        }        if(Input.GetKey(KeyCode.I))        {            transform.Rotate(Vector3.up,0.1f);//可以给一个向量。在当前角度追加角度。物体的x绕所给的x向量,y绕y,z绕z,去旋转。            //或者给一个轴,再给一个度数。如本例。        }        if (Input.GetKey(KeyCode.U))        {            transform.eulerAngles = new Vector3(0f,45f,45f);//(欧拉角)旋转到这个角度。第二次执行看不出效果。        }        if (Input.GetKey(KeyCode.Y))        {            //transform.parent 返回当前对象父对象的transform 组件可以set和get。            //transform.root 返回当前最外层父对象。只能get。不能set。            //transform.Find("cube"); 获取当前游戏对象叫做cube的子对象。            //transform.FindChild("cube"); 返回第一个叫cube的子对象。        }        if(Input.GetKeyDown(KeyCode.T))        {            print("游戏开始了 : " + Time.time + " 秒。");//Time.time 返回游戏从开始到现在的秒数。            print("从上帧到这一帧的时间为: " + Time.deltaTime + " 秒");//一般计算机为60帧每秒。具体看情况。        }        transform.Rotate(Vector3.up, 30f * Time.deltaTime);//每秒30度旋转。因为 Updata按照每秒deltatime 次刷新。        float tt = Time.timeScale;//时间的缩放。比如游戏快进,慢放等。为0时,就是游戏暂停。正常值为1。        //Mathf.Abs(-100);//Math类。数学函数类。3D 游戏很常用。里面函数很多。        //Mathf.Max(100,400,30,500);返回最大值的。Mathf.sqrt();求平方        //Mathf.Sin();等等。可以查圣典手册。官网查询等。    }}




0 0