【Unity每日一记】常见的类你都掌握了吗,没有就过来看看吧

这篇具有很好参考价值的文章主要介绍了【Unity每日一记】常见的类你都掌握了吗,没有就过来看看吧。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【Unity每日一记】常见的类你都掌握了吗,没有就过来看看吧,# Unity每日一记,unity,游戏引擎


👨‍💻个人主页:@元宇宙-秩沅

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 秩沅 原创

👨‍💻 收录于专栏unity每日一记

⭐🅰️推荐文章⭐


⭐【Unityc#专题篇】之c#系统化大礼包】

⭐【unity数据持久化】数据管理类_PlayerPrfs

⭐【unity本站最全系列】unity常用API大全一篇文章足以
【Unity每日一记】常见的类你都掌握了吗,没有就过来看看吧,# Unity每日一记,unity,游戏引擎


⭐常见的类_篇【一】⭐




🎶(A) gameObject类


成员变量

  • 名字: this.gameObject.name

  • 是否激活
    this.gameObject.activeSelf

  • 是否是静态
    this.gameObject.isStatic

  • 层级
    this.gameObject.layer

  • 标签
    this.gameObject.tag

创建几何体

GameObject.CreatePrimitive(PrimitiveType.Cube);——正方体

查找——消耗性能

  • 通过名字:GameObject.Find(“名字”);
  • 通过标签:GameObject.FindGameObjectWithTag(“标签名”);

实例化

GameObject.Instantiate(xx);

销毁

  • GameObject.Destroy(xx)

    Destroy方法  本质上给这个对象加了一个移除标   一般情况下 它会在下一帧时把这个对象移除并从内存中移除 如果没有特殊需求 就是一定要马上移除一个对象的话 建议使用上面的 Destroy方法 因为 是异步的 降低卡顿的几率
    

场景不移除对象

  • GameObject.DontDestroyOnLoad( xx );

    切换场景后物体会被删除,该API对象 过场景不被删除
    

添加脚本

  • xx.AddComponent<脚本名>();

标签比较

  • this.gameObject.CompareTag(“xx”)
  • this.gameObject.tag == “xx”

激活失活设置

  • obj.SetActive(false);

🎶(B)MonoBehavior类



【Unity每日一记】常见的类你都掌握了吗,没有就过来看看吧,# Unity每日一记,unity,游戏引擎

  • 🧠transform.enable()+transform.Active
  • 🧠xx.GetComponent<>()泛型获取
  • 🧠XX.GetComponent() as XX
  • 🧠XX.GetComponent(Typeof()) as XX Typey类型获取
  • 🧠gameObject.name
  • 🧠 new 脚本类型 [ ] yy / yy = this.GetComponents();//得到多个脚本
  • 🧠 getComponentInChrild/Parent //子对象或父对象组件的获取
  • 🧠更安全的获取脚本TryGetComponent<>();

👨‍💻👍1,鼠标回调事件函数


  • 适用于界面操作

private void OnMouseDown()
{
print(“在挂载的物体身上按下了鼠标”);
}

private void OnMouseUp()
{
print(“在挂载的物体身上按下的鼠标抬起了”);
}

private void OnMouseDrag()
{
print(“在挂载的物体身上用鼠标进行了拖拽操作”);
}

private void OnMouseEnter()
{
print(“鼠标移入了挂载的物体”);
}

private void OnMouseExit()
{
print(“鼠标移出了挂载的物体”);
}

private void OnMouseOver()
{
print(“鼠标悬停在了挂载的物体上方”);
}

private void OnMouseUpAsButton()
{
print(“鼠标在挂载的物体身上松开了”);
}


🎶(C) Input系统接口类



👨‍💻👍0,相关


  • 输入相关的内容一定是哟啊写在Update里面
  • 长按和点按的区别在于有没有Dwon和Up
  • 按任意键继续 – Input.AllKey()
  • 得到输入的是哪个键(Stirng)-Inpout.inputString()
  • 得到鼠标的位置——Input.MousePosition()
    +GetAxis 和 GetAxisRaw 的区别 ——后者返回的只有三个值 -1 0 1

👨‍💻👍1,连续检测(按键,鼠标)


  • print(“当前玩家输入的水平方向的轴值是:”+Input.GetAxis(“Horizontal”));
  • print(“当前玩家输入的垂直方向的轴值是:” + Input.GetAxis(“Vertical”));
  • print(“当前玩家输入的水平方向的边界轴值是:” + Input.GetAxisRaw(“Horizontal”));
  • print(“当前玩家输入的垂直方向的边界轴值是:” + Input.GetAxisRaw(“Vertical”));
  • print(“当前玩家鼠标水平移动增量是:”+Input.GetAxis(“Mouse X”));
  • print(“当前玩家鼠标垂直移动增量是:” +Input.GetAxis(“Mouse Y”));
  • 鼠标的某一个键按下 ——Input.GetMouseButtonDown( 0/1/2)
  • 得到鼠标的位置——Input.GetMousePosition()——起点在屏幕左下角
  • 鼠标的滚动——Input.MouseScrollDeltta()——改变Y轴的值
  • 鼠标滚动的应用-------炮管的升降

👨‍💻👍2.连续检测(事件)


手柄相关

  • 得到所有按钮的名字 ——Input.GetJoystickNameS()

  • if (Input.GetButton(“Fire1”))
    {
    print(“当前玩家正在使用武器1进行攻击!”);
    }

  • if (Input.GetButton(“Fire2”))
    {
    print(“当前玩家正在使用武器2进行攻击!”);
    }

  • if (Input.GetButton(“RecoverSkill”))
    {
    print(“当前玩家使用了恢复技能回血!”);
    }


👨‍💻👍3.间隔检测(事件)


  • if (Input.GetButtonDown(“Jump”))
    {
    print(“当前玩家按下跳跃键”);
    }

  • if (Input.GetButtonUp(“Squat”))
    {
    print(“当前玩家松开蹲下建”);
    }

  • if (Input.GetKeyDown(KeyCode.Q))
    {
    print(“当前玩家按下Q键”);
    }

  • if (Input.anyKeyDown)
    {
    print(“当前玩家按下了任意一个按键,游戏开始”);
    }

  • if (Input.GetMouseButton(0))
    {
    print(“当前玩家按住鼠标左键”);
    }

  • if (Input.GetMouseButtonDown(1))
    {
    print(“当前玩家按下鼠标右键”);
    }

  • if (Input.GetMouseButtonUp(2))
    {
    print(“当前玩家抬起鼠标中键(从按下状态松开滚轮)”);
    }



🎶(D)MathF类



👨‍💻👍1,MathF类的静态变量

Math和MathF的区别:mathf是unity封装的类它在基于math数学类的基础上添加了适合unity游相关的方法

强制类型转换和向下取整&向下取整:除去c#中常用的三个强转 —ceilToInt() 和 FloorInt()

钳制函数MathF.clamp()

Mathf.sigh()-判断正负

Mathf.MoveTowords()——无限接近但不完全相等


👨‍💻👍1,MathF类的静态变量


  • print(Mathf.Deg2Rad+“,度到弧度换算常量”);
  • print(Mathf.Rad2Deg+ “,弧度到度换算常量”);
  • print(Mathf.Infinity+“正无穷大的表示形式”);
  • print(Mathf.NegativeInfinity + “负无穷大的表示形式”);
  • print(Mathf.PI);

👨‍💻👍2,MathF类的静态函数


  • print(Mathf.Abs(-1.2f)+ “,-1.2的绝对值”);

  • print(Mathf.Acos(1)+“,1(以弧度为单位)的反余弦”);

  • print(Mathf.Floor(2.74f)+“,小于或等于2.74的最大整数”);

  • print(Mathf.FloorToInt(2.74f)+“,小于或等于2.74的最大整数”);

  • print(Mathf.Lerp(1,2,0.5f)+“,a和b按参数t进行线性插值”);

  • print(Mathf.LerpUnclamped(1, 2, -0.5f) + “,a和b按参数t进行线性插值”);


👨‍💻👍3,MathF类中的 倒计时 函数


Math.MoveTowards()

   void Update()
    {
        print("游戏倒计时:" + endTime);
        endTime = Mathf.MoveTowards(endTime,0,0.1f); //每次减0.01 直到endTime为0     
    } 

🎶(E)Time类


帧间隔时间

  • Time.deltaTime ",
    完成上一帧所用的时间(以秒为单位
  • Time.unscaledDeltaTime
    不受scale影响的帧间隔时间

物理帧间隔时间

  • Time.fixedDeltaTime
    执行物理或者其他固定帧率更新的时间间隔",fixedDeltatime是一个固定的时间增量。Unity中默认fixeddeltaTime为0.02秒,但FixedUpdate并不是真的就0.02秒调用一次

以下的总时间并不精确,适用于对时间精确不是特别严格的情况

  • Time.fixedTime + ",表示FixedUpdate(生命周期)已经执行的时间,可以作为自游戏启动以来的总时间(以物理或者其他固定帧率更新的时间间隔累计计算的),基本上是以0.02慢慢累加(有误差)

  • Time.time + ",游戏开始以来的总时间、

精确时间

  • Time.time + “,游戏开始以来的总时间”

  • Time.realtimeSinceStartup + “,游戏开始以来的实际时间”

  • Time.smoothDeltaTime + ",经过平滑处理的Time.deltaTime的时间

  • Time.timeSinceLevelLoad + ",自加载上一个关卡以来的时间(进入了新场景后的时间)

时间缩放比例

  • 时间停止
    Time.timeScale = 0;
  • 恢复正常
    Time.timeScale = 1;
  • 2倍速
    Time.timeScale = 2;

一共跑了多少帧(多少次循坏)

Time.frameCount


👨‍💻👍慢动作功能 —时间成员变量


  • ime.timeScale

时间流逝的标度,可以用来慢放动作、它的默认值为1,为0.5时可将当前游戏程序中所有时间放慢到原来的0.5倍,若为3 则为原来的三倍

Time.timeScale = 3;


🎶(F)Application类


  • 在UnityEngine命名空间下
  • 作用:对程序运行的数据进行操作控制
    【Unity每日一记】常见的类你都掌握了吗,没有就过来看看吧,# Unity每日一记,unity,游戏引擎
  • ❤️ Application.LoadLevel() ——老式场景资源加载的方法
  • ❤️ Application.Quit()——退出游戏(前提是游戏已经打包后运行)
  • ❤️ Application.Ispaly——是否是运行模式or编辑模式

🎶(G)cursor类


  • 在UnityEngine命名空间下
  • 鼠标的隐藏 ——Cursor.Visible();
  • 鼠标的锁定,限制范围 CursorState = CursorLockMode.下面三个
    【Unity每日一记】常见的类你都掌握了吗,没有就过来看看吧,# Unity每日一记,unity,游戏引擎
  • 设置鼠标图片——Cursor.setCursor(三个参数如下)
    【Unity每日一记】常见的类你都掌握了吗,没有就过来看看吧,# Unity每日一记,unity,游戏引擎【Unity每日一记】常见的类你都掌握了吗,没有就过来看看吧,# Unity每日一记,unity,游戏引擎


🎶(H)Vector类


👨‍💻👍1.Vector2结构体的静态变量


1.Vector2.up // 以下的形式pint之后是 (X,y)
2.Vector2.down
3.Vector2.Left
4.Vector2,Riht
5.Vector2.one //单位化之后的值
6.Vetor2.zero // 原点的值


👨‍💻👍2.Vector2 结构体的成员变量


1.x
2.y
3.XX.normalized //返回 单位化的值
4XX.magnitude //返回该向量的模长
5.XX.sqrMagnitude //返回该向量 模长的平方
‘’‘’‘’‘’‘’‘’


👨‍💻👍3.索引器的格式和存在的目的


1,格式
访问修饰符 + 数据类型+ this [ 索引类型 index]
{
get
set
}
【Unity每日一记】常见的类你都掌握了吗,没有就过来看看吧,# Unity每日一记,unity,游戏引擎

2.目的:

简化结构体或者类成员的引用 (简化代码),可向数组用下标那样调用成员


👨‍💻👍4.Vector2的公共函数-Equrls()


Equrls(); // 比较两个向量是否相等
用法 : XX1 . Equals( XX2 );


👨‍💻👍5,Vector2的静态方法


  • 1.vector2.Angle(); 返回两个向量的夹角

  • 2.vevtor2.Distance(): 返回两个点(向量)的距离

  • 3.Vetor2.Lerp(a , b, t) ;返回两个向量的差值 (二维向量线性差值)

  • 4.Vecor.LerpUnclamped(a,b,t) ; 在 a 与 b 之间按 t 进行线性插值,t 没有限制。

  • 5.Vector2.MoveTowards(a , b,t): t为限制向量的移动步频(可以理解为规定速度移动)、

  • 6.vector2.max();

  • 7.vector2.min();

  • 8.vecotr2.smoothDamp(a,b,v ,t);平滑阻尼,可理解为汽车刹车效果,v为速度是二维向量,t为平滑时间

【Unity每日一记】常见的类你都掌握了吗,没有就过来看看吧,# Unity每日一记,unity,游戏引擎


🎶(J)transform类


👨‍💻👍1.transform的位置信息


transform.position ----游戏物体trans组件的世界位置信息
transform.Rotation----游戏物体的四元旋转信息
transform.enlerAugle- —游戏物体的欧拉角的信息(也就是Inspactor面板中的Rotation信息)
transform.localposition/localRotion/localenleAugle--------表自身的自身信息

  • 当前游戏物体的世界四元旋转值为——transform.rotation
  • 当前游戏物体的自身大小为——transform.localScale
  • 当前游戏物体的自身位置为——transform.localPosition
  • 当前游戏物体的自身四元旋转位置——transform.localRotation
  • 当前游戏物体的世界欧拉角为——transform.eulerAngles
  • 当前游戏物体的自身欧拉角为——transform.localEulerAngles

👨‍💻👍2.游戏物体的自身方向和世界轴方向


针对自身:
==transform.forword ==----向前Z轴方向
transform.up------向上y轴方向
transform.right----向右x轴方向
针对世界:
vector.XX…
针对看向:
transform.LookAt(某个方向)——一直看向某个方向
transform.LookAt(某个物体)——一直看向某个物体
针对缩放
#region 知识点一 缩放
//相对世界坐标系
print(this.transform.lossyScale);
//相对本地坐标系(父对象)
print(this.transform.localScale);

距离运动相关

  • 当前的位置 + 我要动多长距离 == 得出最终所在的位置

this.transform.position = this.transform.position + this.transform.up * 1 * Time.deltaTime;

  • 始终会朝向相对于自己的面朝向去动

this.transform.position += this.transform.forward * 1 * Time.deltaTime;

  • 相对于世界坐标系的 Z轴 动 始终是朝 世界坐标系 的 Z轴正方向移动

this.transform.Translate(Vector3.forward * 1 * Time.deltaTime, Space.World);

  • 相对于世界坐标的 自己的面朝向去动 始终朝自己的面朝向移动

this.transform.Translate(this.transform.forward * 1 * Time.deltaTime, Space.World);

  • 相对于自己的坐标系 下的 Z轴正方向移动 始终朝自己的面朝向移动

this.transform.Translate(Vector3.forward * 1 * Time.deltaTime, Space.Self);


👨‍💻👍 3.用transform组件来进行查找(包含索引查找)


  • 被创造的游戏物体的世界坐标位置是——xx.transform.position

  • 当前transform组件挂载的游戏物体对象的名字是——transform.name

  • 当前transform组件挂载的游戏对象的子对象的数量——transform.childCount

  • 查找当前游戏物体的子对象的trans组件名称为——transform.Find(“zz”)

  • 查找当前游戏物体的第一个子对象——transform.GetChild(0));

  • 查找该游戏物体在父类中子对象的索引位置"——transform.GetSiblingIndex()


⭐🅰️系统路线学习点击跳转⭐


⭐【Unityc#专题篇】之c#进阶篇】

⭐【Unityc#专题篇】之c#核心篇】

⭐【Unityc#专题篇】之c#基础篇】

⭐【Unity-c#专题篇】之c#入门篇】

【Unityc#专题篇】—进阶章题单实践练习

⭐【Unityc#专题篇】—基础章题单实践练习

【Unityc#专题篇】—核心章题单实践练习


你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!


【Unity每日一记】常见的类你都掌握了吗,没有就过来看看吧,# Unity每日一记,unity,游戏引擎文章来源地址https://www.toymoban.com/news/detail-516427.html


到了这里,关于【Unity每日一记】常见的类你都掌握了吗,没有就过来看看吧的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【unity每日一记】transform类精华之珠

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : unity每日一记 ⭐【Unityc#专题篇】之c#系统化大礼包】 ⭐【unity数据持久化】数据管理类_PlayerPrfs ⭐【unity本站最全系列】unity常用API大全

    2024年02月11日
    浏览(35)
  • 【Unity每日一记】资源加载相关和检测相关

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : unity每日一记 ⭐【软件设计师高频考点暴击】 ⭐【Unityc#专题篇】之c#系统化大礼包】 ⭐【unity数据持久化】数据管理类_PlayerPrfs ⭐【u

    2024年02月07日
    浏览(30)
  • 【unity每日一记】资源和场景加载图文详解

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : unity每日一记 ⭐【Unityc#专题篇】之c#系统化大礼包】 ⭐【unity数据持久化】数据管理类_PlayerPrfs ⭐【unity本站最全系列】unity常用API大全

    2024年02月10日
    浏览(34)
  • 【Unity每日一记】SceneManager场景资源动态加载

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : unity每日一记 ⭐【软件设计师高频考点暴击】 ⭐【Unityc#专题篇】之c#系统化大礼包】 ⭐【unity数据持久化】数据管理类_PlayerPrfs ⭐【u

    2024年02月12日
    浏览(27)
  • 【Unity每日一记】Unity不知道如何选择,移动方法,来瞧瞧

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : unity每日一记 ⭐【软件设计师高频考点暴击】 ⭐【Unityc#专题篇】之c#系统化大礼包】 ⭐【unity数据持久化】数据管理类_PlayerPrfs ⭐【u

    2024年04月15日
    浏览(35)
  • 【Unity每日一记】WheelColider组件汽车游戏的关键

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : unity每日一记 ⭐【软件设计师高频考点暴击】 ⭐【Unityc#专题篇】之c#系统化大礼包】 ⭐【unity数据持久化】数据管理类_PlayerPrfs ⭐【u

    2024年02月10日
    浏览(28)
  • 【Unity每日一记】摄像机相关代码API大全

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 :Unity基础实战 直接作为子对象课实现简单跟随 通过向量的加减更新相机位置来保持简单的跟随 差值位置的实时更新 😶‍🌫️步骤:

    2024年02月12日
    浏览(31)
  • 【unity每日一记】 Camera相机+ Screen屏幕+动画机

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : unity每日一记 ⭐【Unityc#专题篇】之c#系统化大礼包】 ⭐【unity数据持久化】数据管理类_PlayerPrfs ⭐【unity本站最全系列】unity常用API大全

    2024年02月10日
    浏览(57)
  • 【Unity每日一记】Unity中的计时器——4种方法的实现

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : unity每日一记 ⭐【软件设计师高频考点暴击】 ⭐【Unityc#专题篇】之c#系统化大礼包】 ⭐【unity数据持久化】数据管理类_PlayerPrfs ⭐【u

    2024年02月06日
    浏览(28)
  • 【Unity每日一记】关于物体(敌方)检测—(向量点乘相关)

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : unity每日一记 ⭐【Unityc#专题篇】之c#系统化大礼包】 ⭐【unity数据持久化】数据管理类_PlayerPrfs ⭐【unity本站最全系列】unity常用API大全

    2024年02月13日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包