Unity基础(四)认识脚本与常用API

目录

一.什么是组件

  二.脚本组件

          1.新建脚本

        2.添加脚本

        3.新建代码脚本详情

三.常用API

   1.Vector3

 2.Quaternion

3.Debug

 四.下一章继续API详解


一.什么是组件

        

空对象

         我们创建一个空对象,就只带一个"Transform"(包含物体的位置,旋转,缩放 基础信息)组件.按我的理解组件就是功能,比如想添加摄像机功能,就是在添加摄像机组件,想要平行光功能,添加平行光组件.

         Unity内置了很多功能,后面用到在详细的说明.这些组件也都是代码写成的.

  二.脚本组件

              开始我们这章的主要目的脚本组件.  

          1.新建脚本

                

          第一种是点击添加组件按钮,输入新的名字,回车.

                

              第二种是在文件夹,右键,然后左键点击创建,C#脚本.

        2.添加脚本

                第一种是鼠标左键按住脚本,拖动到要添加的物体上,第二种是点击添加组件按钮,找到新建的脚本组件.

        3.新建代码脚本详情

新建脚本内容

 ps:只有继承MonoBehaviour的才能挂载到物体上,

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
    //最早调用
    private void Awake()
    {

    }

    //组件激活时调用(首次运行会在Awake后调用一次)
    private void OnEnable()
    {
        
    }
    // Start在第一帧更新之前被调用(在OnEnable后,Update前调用一次)
    void Start()
    {
        
    }
    //固定频率调用,可在unity是指
    private void FixedUpdate()
    {

    }
    // 每帧调用一次Update(用于实现一些实时变化的逻辑,如物体的移动旋转)
    void Update()
    {
        
    }
    //在Update调用后,紧接着调用一次(可用于一些物体位置刷新)
    private void LateUpdate()
    {
        
    }
    //组件未激活时调用
    private void OnDisable()
    {
        
    }
    //组件销毁时调用.
    private void OnDestroy()
    {
        
    }

}

以上就是一些Unity封装的基础的生命周期方法,还有一些比如碰撞检测(物体接触,物体进入,物体离开等等)后续用在在详细展开.

        ps:多个物体同时激活,脚本的Awake的顺序,可以在unity编辑器的设置里修改.(编辑->项目设置->脚本执行顺序)

三.常用API

        既然脚本已经建好了,就可以写代码实现功能了,在介绍一些常用的API,让我们做功能时会事半功倍.

   1.Vector3

        Vector3结构体由X,Y,Z三个值组成,一般用来表现物体的位置,旋转(为了避免万向锁,也用四元数表示,这里了解一下就行),缩放,也有Vector2(由X,Y两个值,用来对应2D物体的位置等等).

     Vector3 vector3 = new Vector3(0,0,0);


        Vector3.Normalize(vector3);//返回一个规范化向量
        Vector3.Magnitude(vector3);//返回向量的模
        Vector3.zero;//静态属性,返回Vector3(0,0,0)
        Vector3.one;//静态属性,返回Vector3(1,1,1)
        Vector3.forword;//静态属性,返回Vector3(0,0,1)
        Vector3.back;//静态属性,返回Vector3(0,0,-1)
        Vector3.left;//静态属性,返回Vector3(-1,0,0)
        Vector3.right;//静态属性,返回Vector3(1,0,0)
        Vector3.up;//静态属性,返回Vector3(0.1.0)
        Vector3.down;//静态属性,返回Vector3(0,-1,0)
        Vector3.Angle(Vector3 from,Vector3 to);//返回Vector3返回两个向量的夹角
        Vector3.Distance(Vector3 A, Vector3 B);//返回Vector3返回两个点的距离
        Vector3.Dot(Vector3 A, Vector3 B);//两个向量点乘
        Vector3.Cross(Vector3 A, Vector3 B);//两个向量叉乘

 2.Quaternion

        Quaternion包含一个标量和一个三维向量,用于描述物体的旋转

        Quaternion quaternion = new Quaternion(x,y,z,w);

        Quaternion.identity //单位旋转,相当于无旋转
        Quaternion.Angle(Quaternion a , Quaternion b) //返回两个旋转之间的角度
        Quaternion.Euler(x,y,z) //通过欧拉角创建一个四元数
        Quaternion.LookRotation(Vector3 forward , Vector3 upward) //返回forward向量与参数向量旋转相同的四元数

3.Debug

        用于调试,在控制台输出语句.

        Debug.Log("普通");
        Debug.LogWarning("警告");
        Debug.LogError("错误");

 

    void Update()
    {

        Debug.DrawLine(new Vector3(0, 0, 0), new Vector3(0, 1, 0), Color.blue);//两点之间绘制直线

        Debug.DrawRay(new Vector3(0, 0, 0), new Vector3(0, 0, 1), Color.red);//在起点和一个方向绘制直线
    }

 四.下一章继续API详解

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Unity3D中常用API包括Component、Transform、GameObject、Object和Time等。\[1\]这些API可以用于处理游戏对象的组件、变换、实例化和销毁等操作。例如,可以使用Component来获取和管理游戏对象的组件,使用Transform来控制游戏对象的位置、旋转和缩放,使用GameObject来创建、查找和销毁游戏对象,使用Object来处理资源的加载和释放,使用Time来获取游戏的时间信息。此外,还有一些常见的API函数,如Instantiate函数用于实例化预制件,Start函数和Update函数用于处理游戏对象的初始化和更新等。\[2\]\[3\]这些API和函数是Unity开发中经常使用的工具,可以帮助开发者实现各种功能和效果。 #### 引用[.reference_title] - *1* [Unity3D数字孪生笔记——Unity常用API篇](https://blog.csdn.net/Lcl_huolitianji/article/details/120875486)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Unity3D常用API](https://blog.csdn.net/u011360242/article/details/77046732)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【Unity 3D】常见API的讲解以及在C#脚本中的执行(附源码)](https://blog.csdn.net/jiebaoshayebuhui/article/details/128510864)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一然明月

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

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

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

打赏作者

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

抵扣说明:

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

余额充值