【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:选择产生光源的选项。

在移动端使用实时光源很消耗资源。
【Unity3d学习笔记 常用组件及分析】_第1张图片

Camera组件

如果使用渲染纹理的功能,那么就必须使用两个相机,一个用来渲染纹理,另一个就是相机的功能。
【Unity3d学习笔记 常用组件及分析】_第2张图片
【Unity3d学习笔记 常用组件及分析】_第3张图片

你可能感兴趣的:(学习,unity,游戏引擎)