我的Unity3D学习日记-04(Transform,Time,Mathf类以及动态在场景中生成Prefab)

这篇博客介绍了Unity3D中的Transform组件,包括如何获取和修改位置、旋转和缩放属性。同时讲解了Time类的使用,如获取时间差和时间比例。还涉及了Mathf类的数学函数应用。最后展示了如何在场景中动态生成Prefab对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//直接小写transform表示获取当前脚本所挂载的游戏对象身上的Transform组件

  Vector3 p= transform.position;

       //获取当前对象的位置存储到p

       //transform.localPosition; 获取局部坐标系位置

       print(p);

       //获取当前游戏对象的rotation

       //transform.rotation;旋转属性

       //transform.localRotation;局部坐标系中的旋转属性

       //rotation直接返回的数为四元数,而非vector3

       //transform.localScale; 获取对象的缩放属性

 

//关于改变游戏的对象的transform属性

//transform.Translate(new Vector3(1,0,0));

//改变当前游戏对象的位置

//transform.Rotate(Vector3.up, 10f);

//旋转当前游戏对象

//transform.eulerAngles = new Vector3(0f,10f,0f);

//使用欧拉角进行旋转,赋予一个状态,重复调用无法再次旋转

 

//关于获取对象的父对象与子对象的Transform属性

       transform.parent; //获取对象的父对象的transform,能够更改

       transform.root; //获取对象的根对象(最外层的父对象)的transform,不能更改

       transform.Find("Cube");//通过参数来查找当前对象的子对象

 

//关于Time

t = Time.time; //从游戏开始到当前帧所用的时间(秒)

        dt = Time.deltaTime;//从上一帧到当前帧所用的时间

        ts = Time.timeScale;//表示时间流逝的快慢,默认为1

        //改为2表示时间加快为两倍,改为0表示时间停止,游戏暂停

        transform.Rotate(Vector3.up, Time.deltaTime * 30f);//每秒钟转30

 

//关于数学类Mathf

Mathf.Min();//求最小值

        Mathf.Max();//求最大值

        Mathf.Abs();//绝对值

        Mathf.Sin();//sin函数

        Mathf.PI;//pi

        Mathf.Sqrt();//求平方根


以下这段代码是在按下P键时能在场景中随机位置生成一个Prefab

public class NewPrefab : MonoBehaviour {

    public GameObject prefab0;//通过公共字段获得一个预设体
	
	void Update () {
        if (Input.GetKeyDown("p"))
        {
            Vector3 pos = new Vector3();
            pos.y = 0.5f;
            pos.x = Random.Range(-5f, 5f);
            pos.z = Random.Range(-5f, 5f);
            Instantiate(prefab0,pos,Quaternion.identity);
//Quaternion.identity表示为空
//也可以使用Quaternion.AngleAxis(,);来指定一个欧拉角


//要获取到添加的游戏对象可使用以下方法:
            //GameObject p= Instantiate(prefab0,pos,Quaternion.identity) as GameObject;
            //使用Instantiate方法在场景中添加游戏对象,返回值类型为Object
            //使用as关键字将返回值转换为GameObject类型
        }
	}
}

以下为实现效果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值