Unity中的C#脚本都继承了Monobehaviour类(Monobehaviour类的分析)

这篇具有很好参考价值的文章主要介绍了Unity中的C#脚本都继承了Monobehaviour类(Monobehaviour类的分析)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、Monobehaviour类

Unity中的脚本都是继承Monobehaviour,定义了脚本的基本行为。必然是继承.
我们之前所熟知的声明周期函数。

除了必然事件,还定义了对各种特定事件的相应函数,均已On开头
MonoBehaviour中的事件响应函数都是已On开头的,比如:鼠标事件,脚本激活、销毁,碰撞等。

  • OnApplicationFocus:当玩家获得或失去焦点时发送给所有游戏物体。可以作为协同程序,在函数中使用yield语句即可

  • OnApplicationPause:当玩家暂停时发送到所有的游戏物体。可以作为协同程序,在函数中使用yield语句即可。

  • OnApplicationQuit:在应用退出之前发送给所有的游戏物体。当用户停止运行模式时在编辑器中调用。当web被关闭时在网络播放器中被调用。

  • OnBecameInvisible:当renderer(渲染器)在任何相机上都不可见时调用OnBecameInvisible。

  • OnBecameVisible:当renderer(渲染器)在任何相机上可见时调用OnBecameVisible。

  • OnCollisionEnter:当此collider/rigidbody与另一个rigidbody/collider接触时调用。

  • OnCollisionExit:当此collider/rigidbody停止触发另一个rigidbody/collider时。

  • OnCollisionStay:当此collider/rigidbody触发另一个rigidbody/collider时,OnCollisionStay将会在每一帧被调用。

  • OnConnectedToServer:当你成功连接到服务器时,在客户端调用。

  • OnDisconnectedFromServer:失去连接或从服务器端断开时在客户端调用。

  • OnFailedToConnectToMasterServer:当连接主服务器出现问题时在客户端或服务器端调用。

  • OnControllerColliderHit:在移动的时,当controller碰撞到collider时OnControllerColliderHit被调用。

  • OnDestroy:脚本销毁时调用。

  • OnDisable:对象禁用或者取消激活时调用。

  • OnEnable:对象变为可用或激活状态时此函数被调用。

  • OnDrawGizmosSelected:如果想在物体被选中时绘制gizmos,执行这个函数。

  • OnGUI:渲染和处理GUI事件时调用。

  • OnJointBreak:当附在同一对象上的关节被断开时调用。

  • OnLevelWasLoaded:一个新关卡被载入时此函数被调用。

  • OnMouseEnter : 鼠标移入GUI控件或者碰撞体时调用

  • OnMouseOver : 鼠标停留在 GUI控件或者碰撞体时调用

  • OnMouseExit : 鼠标离开 GUI控件或者碰撞体时调用

  • OnMouseDown :鼠标离开 GUI控件或者碰撞体上按下时调用

  • OnMouseUp :鼠标按键释放时调用

  • OnMouseDrag : 当鼠标拖拽的时候调用

  • OnMouseUpAsButton:只有当鼠标在同一个GUIElement或Collider按下,在释放时调用。

  • OnTriggerEnter:当Collider(碰撞体)进入trigger(触发器)时调用OnTriggerEnter。

  • OnTriggerExit:当Collider(碰撞体)停止触发trigger(触发器)时调用OnTriggerExit。

  • OnTriggerStay:当碰撞体接触触发器时,OnTriggerStay将在每一帧被调用。

void OnMouseDown()
{
    Debug.Log("当按下鼠标的时候调用");
}

void OnMouseUp()
{
    Debug.Log("当抬起鼠标的时候调用");

}

void OnMouseOver()
{
    Debug.Log("当一直点击不松开鼠标会一直调用");
}


void OnMouseDrag()
{
    Debug.Log("当按下鼠标并且拖动的时候调用");
}

void OnMouseEnter()
{
    Debug.Log("鼠标进入游戏对象的时候调用");
}

void OnMouseExit()
{
    Debug.Log("鼠标离开游戏对象的时候调用");
}

void OnMouseUpAsButton()
{
    Debug.Log("当按下鼠标并抬起的时候调用");
}

文本框

GUILayout.TextArea

按钮

GUILayout.Button

标签

GUILayout.Label

滑动条

GUILayout.HorizontalSlider

小案例(获取屏幕坐标的鼠标位置)

private string mouse;
void Update()
{
  Vector3 v3 = Input.mousePosition;
    mouse = v3.ToString();
}

void OnGUI()
{
    GUILayout.TextArea(mouse);
}

unity继承monobehaviour,Unity,c#,unity,开发语言

2、基础函数

创建脚本就默认的update、start方法:(这些官方的文档都是有的)

  • Start:Update函数第一次运行前调用,一般用于游戏对象的初始化。比如GetComPonent之类。

  • Update:每帧调用;一般用于更新场景和状态,物理相关不建议在此处处理。

  • Awake:脚本实例对象被创建时调用,也可以用于游戏对象的初始化,但是Awake是在所有脚本的Start之前执行。

  • FixedUpdate:固定间隔执行,一般用于物理状态更新。

  • LateUpdate:每帧执行,在Update之后。一般和摄像机有关的状态放在这里处理。

3、默认组件

组件对应的变量名是组件名的小写。

  • Transform:对象的位置,角度,缩放。变量名:transform
  • Rigidbody:刚体属性。
  • Render:渲染物体模型。
  • Light:灯光属性。
  • Camera:相机属性。
  • Collider:碰撞体属性。
  • Animation:动画属性。
  • Audio:声音属性。
    unity继承monobehaviour,Unity,c#,unity,开发语言

4、组件获取函数

获取组件的方法由于比较耗时,所以如果你在update修改transform的话,一般可以先在Start中获取这个组件的引用,然后在update中使用引用去修改。

比如获取上面例子cube1的script1脚本:

Script1 spt1 = GetComponent<Script1>( );

下面是获取组件的函数:

  • GetComponent:获取组件。
  • GetComponents:获取组件列表。

GetComponentInChildren:返回Type类型组件,在GameObject或它的任何子物体使用深度优先搜索,仅返回激活的组件。

GetComponentsInChildren:在GameObject或任何它的子物体,返回全部Type类型组件。

5、获取场景中的游戏对象

同样和获取组件一样,该方法比较费时,一般在Start中获取引用。

GameObject cube1 = GameObject.Find("Cube1");
GameObject cube1 = GameObject.FindWithTag("tag_cube1");

除了上面的方法,也可以使用public对象,直接使用面板拖拽赋值。


本文仅供学习使用
本文部分参考:https://www.jianshu.com/p/87586839a55f文章来源地址https://www.toymoban.com/news/detail-660260.html

到了这里,关于Unity中的C#脚本都继承了Monobehaviour类(Monobehaviour类的分析)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【Unity之IMGUI脚本封装】—位置信息类和控件基类的封装

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : 缺点1:无法在编译过程进行可视化调整 缺点2:无法分辨率自适应 作用:让控件根据调整对齐 最终代码 特点: 类是抽象类:原因基类

    2024年02月17日
    浏览(34)
  • Unity基础2——MonoBehaviour的重要内容

    ​ 延迟函数顾名思,就是会延时执行的函数 ​ 我们可以自己设定延时要执行的函数和具体延时的时间,是 MonoBehaviour 基类中实现好的方法 ​ 脚本依附对象失活或者脚本自己失活,延迟函数可以继续执行,不会受到影响的 ​ 脚本依附对象销毁或者脚本移除,延迟函数无法继

    2024年02月11日
    浏览(29)
  • Unity MonoBehaviour事件函数的生命周期

    Unity运行时候的默认的几个函数的执行顺序: 首先是Awake,OnEnable,Start等,后面是FixUpdate Update 最后是OnDisable、OnDestroy

    2024年02月10日
    浏览(36)
  • 第八章 Unity C#脚本(上)

    脚本是使用 Unity 开发的所有应用程序中必不可少的组成部分。大多数应用程序都需要脚本来响应玩家的输入并安排游戏过程中应发生的事件。游戏对象的行为由附加的组件控制。虽然Unity内置了许多组件,但是我们仍然可以使用脚本来创建自定义组件。Unity支持C#编程脚本语言

    2024年02月09日
    浏览(36)
  • Unity的三种单例模式(饿汉,懒汉,MonoBehaviour)

    单例的使用场景 ​ 对象全局唯一,且经常被使用。 static静态字段介绍 所有对象共享static属性,即static属性在此类中是唯一的。 static属性不会被GC回收,随着程序开始而创建,随着程序结束而销毁(so 不要滥用单例哦) 学过面向对象的小伙伴对static想必都不陌生,其具有的特质

    2023年04月15日
    浏览(35)
  • 【Unity】脚本与组件操作 C#版

    利用Unity创建C#脚本,可以将脚本作为作为组件挂载到游戏物体上,这样脚本组件就会出现在检视窗口,可以像其他内置组件一样方便修改。 在工程窗口的某个目录中操作,右键Create-C# Script即可,要注意初始化命名, 文件名要与脚本中的类名保持一致 ,如果修改了脚本,类

    2024年02月04日
    浏览(25)
  • [C#基础训练]类的继承

    参考代码:

    2024年02月06日
    浏览(28)
  • unity脚本_Input鼠标键盘 c#

    获取鼠标坐标 检测鼠标输入 如果在运行游戏场景中点击一下鼠标左键 检测鼠标抬起 选中即可 检测键盘按下 当前屏幕分辨率 注意:获取的是显示器的分辨率 获取设备屏幕宽高 屏幕休眠模式 窗口/全屏模式 移动设备屏幕转向

    2024年02月04日
    浏览(30)
  • Unity快手上手【熟悉unity编辑器,C#脚本控制组件一些属性之类的】

    首先了解unity相关概述,快速认识unity编辑器,然后抓住重点的学:游戏对象、组件|C#脚本、预制体、UI ☺ 学习过程你会发现,其实Unity中主要是用c#进行开发。 因为在这个过程中,无非就是,对游戏对象通过挂载的C#脚本,修改一下组件的一些属性,控制一下激活之类的操作

    2023年04月13日
    浏览(49)
  • 【Unity】 基础交互入门(C#脚本互相调用的方法,含动态绑定脚本)

    脚本A: 在需要被调用的类里这样写: 脚本B: 在其他类里调用: 如果出现无法识别上下文的提示,检查一下以下问题: 1、两个脚本的命名空间是否一致,如果不需要的命名空间可以直接删除。 2、类名是否大写开头,且命名合法,且和文件名一致。 3、更新编译一下保存一

    2024年02月15日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包