【Unity3d学习笔记 常用组件及分析】

1.组件概览

  1. Unity3D = GameObject + Component

2.组件的使用

在编写C#脚本的时候,类继承的MonoBehaviour的类,他是一个基类,继承他的类都有gameObject,可以进行添加,查询,删除:

        //add
        gameObject.AddComponent<ParticleSystem>(); // 挂在粒子

        //query  
        ParticleSystem ps = gameObject.GetComponent<ParticleSystem>(); // 查询组件
        
        //下面这几种查询方法不常用
        ParticleSystem[] pss = gameObject.GetComponents<ParticleSystem>(); // 返回查询的这个组件的很多个
        ParticleSystem ps2 = gameObject.GetComponentInChildren<ParticleSystem>();
        ParticleSystem[] pss2 = gameObject.GetComponentsInChildren<ParticleSystem>();
        ParticleSystem[] pss_parents = gameObject.GetComponentsInParent<ParticleSystem>();

        // delete
        Destroy(ps);

3.组件的周期

unity默认有一个Start()和Update()的函数,我们需要override他。

一般比较常用的有:

    private void Awake()
    {
        // 组件初始化,类似于构造函数
    }
    
    // start在第一帧执行,只运行一次
    void Start()
    {
   
    }

    // Update is called once per frame
    void Update()
    {

    }
    private void OnDestroy()
    {
        
    }

    private void OnEnable()
    {
        
    }
    private void OnDisable()
    {
        
    }

Transorm组件:

unity使用的是左手坐标系,transform的XYZ是指这个组件的中心在世界坐标系下的位置,rotation是指局部坐标系与世界坐标系之间的角度的关系。
transform可以获得gameObject的父子关系要注意一下。

        // 把正方体左上角的一个顶点转换为世界坐标
        Vector3 point = gameObject.transform.TransformPoint(new Vector3 (-1, 1, 1));
        //Z轴永远对着dst的元件
        gameObject.transform.LookAt(dst); 
         gameObject.transform.RotateAround(Vector3.up, 90); // 绕z轴旋转90°

        Vector3 p1 = gameObject.transform.position; //返回世界坐标系下的点
        Vector3 p2 = gameObject.transform.localPosition; // 返回局部坐标系下的点
        Quaternion qua = gameObject.transform.rotation; // 四元数的形式
        Vector3 sca = gameObject.transform.localScale; // 得到缩放

        Transform par = gameObject.transform.parent; // 得到父节点
        

Light组件

比较常见的有直线光Directional light、点光Point light、聚光灯Spotlight。

  1. 顶点光:只计算顶点的光照
  2. 像素光:每个像素都要计算

产生阴影的条件:1.有光源,2有几个物体,3:选择产生光源的选项。

在移动端使用实时光源很消耗资源。
在这里插入图片描述

Camera组件

如果使用渲染纹理的功能,那么就必须使用两个相机,一个用来渲染纹理,另一个就是相机的功能。
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瞲_大河弯弯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值