笔记_Unity中的C#编程_112-116

Unity中的C#编程 B站112-116

.NET dotent简介

Microsoft新一代多语言的开发平台,用于构建和运行应用程序

C#

Microsoft 专为.NET推出的高级语言

##Mono

NOvell公司支持在其他操作系统下开发.NET程序的框架

Unity借助Mono实现跨平台,核心是.NET Framework 框架


脚本是附加在游戏物体上用于定义游戏对象行为的指令代码,就是.cs的文本文件,也就是类文件。 附加到游戏物体中,定义游戏对象行为指令的代码。

Unity支持三种高级编程语言:

C#,javaScript和Boo Script

语法结构

using 命名空间(避免类的重名);
public class 类名:MonoBehaviour
{
void 方法名()
	{
	Debug.Log("显示调试信息");
	print("本质就是Debug.Log方法");
	}
}
  • 文件名与类名必须一致(不一致就会导致编译失败)
  • 写好的脚本必须附加到物品上才执行
  • 添加到游戏物体的脚本类必须从MonoBehaviour类继承

在Unity中通过菜单设置修改默认的脚本编辑器:(Unity和vs没有连上的话可以修改这个)

Edit -> Preferences -> External Tools -> External Script Editor

脚本的生命周期

就是 Unity 脚本从唤醒到销毁的过程。也叫必然事件,也叫消息。

如果在编码过程中出现“不一致的行尾提示框”的话,直接点 “是” 就行了。

//序列化字段  作用:在编辑器中显示私有变量,想让别人看到,又不想让别人修改
[SerializeField]
private int a = 100;

//作用:在编辑器中隐藏字段,不希望你在编辑器里修改它,别人能够修改,但是又不想让别人看到他
[HideInInspector]
public int b;

//作用:设置范围
[Range(0,100)]
public int c;

不要在脚本里面写构造函数

  • Awake 唤醒: 当物体载入时立即调用一次;常用于在游戏开始前进行初始化,可以判断当满足某种条件执行此脚本 this.enable=true.

  • OnEnable 当可用: 每当脚本对象启用时调用

  • Start 开始:物体载入且脚本对象启用时被调用1次,常用于数据或者游戏逻辑初始化,执行时机晚于Awake

  • FixedUpdate 固定更新:脚本启用后,固定时间被调用,适用于游戏对象做物理操作,例如移动等。

↑设置更新频率: Edit -> Project Setting -> Time -> Fixed Timestep值,默认为0.02S

  • OnCollisionXXX碰撞: 当满足碰撞条件时调用。

  • OnTriggerXXX触发:当满足触发条件时调用。

  • Update 更新:脚本启用后,每次渲染场景时调用,频率与设备性能及渲染量有关

  • lateUpdate 延迟更新:在Update函数被调用后,适用于跟随逻辑。

  • 输入事件↓

  • OnMouseEnter 鼠标移入:鼠标移入到当前Collider时调用

  • OnMouseOver 鼠标经过:鼠标经过当前Collider时调用

  • OnMouseExit 鼠标离开:鼠标离开当前Collider时调用

  • OnMouseDown 鼠标按下:鼠标按下当前Collider时调用

  • OnMouseUp 鼠按抬起:鼠标在当前Collider上抬起时调用

  • 场景渲染↓

  • OnBecameVisible 当可见: 当Mesh Renderer 在任何相机 可见时调用

  • OnBecameInvisible 当不可见:当Mesh Renderer 在任何相机上都不可见时调用

  • 结束阶段↓

  • OnDisable 当不可用:对象变为不可用或附属游戏对象非激活状态时此函数被调用

  • OnDestory 当销毁:当脚本销毁或附属的游戏对象被销毁时被调用

  • OnAppliacationQuit 当程序结束:应用程序退出时被调用

      public class Demo01 : MonoBehaviour
      {
      // Start is called before the first frame update
      public int a = 100;
    
          public int A
          {
              get
              {
                  return this.a;
              }
              set
              {
                  this.a = value;
              }
          }
      
          //*************初始阶段***********
      
          //Awake的执行时机:创建游戏对象,立即执行   永远是Awake先执行,Start后执行
          //作用:初始化
          
          private void Awake()
          {
      
             // Debug.Log("Awake--" + Time.time+this.name);
          }
          //Start的执行时机:创建游戏对象,脚本启用之后,才执行
          //作用:初始化
          private void Start()
          {
              Debug.Log("Start--" + Time.time+this.name);
          }
          //*************物理阶段**************
          //FixedUpdate固更新的执行时机:每隔固定时间执行一次。(时间可以修改)
          //适用性:适合对物体做物理操作(移动、旋转。。。。。),不会受到渲染的影响
          private void FixedUpdate()
          {//渲染时间不固定(美珍渲染量不同、机器性能不同)
              Debug.Log(Time.time);
          }
          //Update执行时机:渲染帧执行.执行间隔不固定
          //适用性:处理游戏逻辑
          private void Upadate()
          {
      
          }
    
      }
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值