Unity C#中常用类的讲解和移动的控制

本文介绍了Unity中重要的C#类,包括MonoBehavior、GameObject、Transform和Rigidbody。讲解了各个类的核心方法如Awake、Start、Update、碰撞与触发事件、实例化、销毁、获取组件等,并通过实例演示了如何控制游戏对象的移动和旋转,适用于游戏开发的学习者。
摘要由CSDN通过智能技术生成

MonoBehavior类

1. 必然事件

必然事件是从MonoBehavior继承而来,就是Monobehavior的生命周期,我们先来了解MonoBehavior函数的
执行顺序
Awake()-OnEnable()-Start()-Update()-LateUpdate()-OnDisable()-Destory()

  1. Awake函数

    Awake()函数是加载场景是运行的,一般用于初始化游戏变量或游戏状态。

  2. Start函数

    Start()函数在第一次启动时执行,一般用于游戏对象的初始化,在Awake()函数之后。

  3. Update函数

    Update()函数是在运行时每一帧执行的函数,用于更新游戏场景或者状态。

  4. FixedUpdate函数

    FixedUpdate()函数与Update()相似,但是每一个固定的物理时间间隔调用一次,用于物理状态的更新。

  5. LateUpdate函数

    LateUpdate()函数在Update()函数被执行后再次被执行。

2.Collision事件

  1. OnCollisionEnter()函数

    当碰撞体与其他碰撞提或刚体开始接触时调用。

  2. OnCollisionStay()函数

    当碰撞体与其他碰撞提或刚体保持接触时调用。

  3. OnCollisionExit()函数

    当碰撞体与其他碰撞提或刚体停止接触时调用。

3.Trigger事件

  1. OnTriggerEnter()函数

    当其他碰撞体与进入触发器时调用。

  2. OnTriggerStay()函数

    当其他碰撞体与停留在触发器时调用。

  3. OnTriggerExit()函数

    当其他碰撞体与离开触发器时调用。

    Tirgger事件和Collision事件的区别:
    使用Trigger事件时必须具备以下条件。
    双方都要有碰撞,至少一个有刚体组件,双方碰撞器至少开启一个IsTrigger,只要开启,就会
    触发Tigger事件而不会触发Collision事件,但是会穿透另一个碰撞器,若不开启IsTrigger,只
    触发Collision时间而不会相互穿透。

GameObject类

1. Instantiate()实例化

instantiate()是克隆游戏对象的方法,应用非常广泛,
格式:
Instantiate(GameObject,position,rotation)
(1)GameObject是指生成克隆的游戏对象,也可以是Prefeb预制体。
(2)position是游戏对象的初始位置,类型是Vector3.
(3)rotation是生成对象的初始角度,类型是Quaternion。

2. Destroy()销毁

格式:
Destroy(GameObject,time);
(1)Gameobject是销毁的游戏对象,time是时间;
下面写一个简单的案例:

	void OnCollisionEnter(Collision collision){
   
		Destroy(collision.gameObject,2);
	}

//代码控制接触碰撞体后两秒销毁

在Unity中创建几个物体:

在这里插入图片描述
给小球附上代码并且加上刚体(rigidbody)使其能自由落体。
我们就会得到这样的效果:
在这里插入图片描述

3.GetComponent()获取组件

GetComponent()是访问游戏对象组件的方法
格式:
GameObject.GetComponent< type >()
(1)GameObject是定义GameObject的变量名。
(2)type是组建名称,类型是string。

例如:Ball.GetComponent< Rigidbody >.mass = 20 ;//把rigidbody组件的质量改为20

4.SetActive()显示/隐藏游戏对象

格式:
GameObject.SetActive(value);
value是让物体是否隐藏,类型是bool。

Transform类

场景里的每一个对象都有Transform,用来存储物体的大小,旋转,缩放,Transform组件的成员变量有:
(1)transform.position:指物体在世界坐标下的位置。
(2)transform.Translate:指物体的相对移动单位。
(3)transform.Rotate:指物体旋转。
(4)transform.eulerAngels:指物体的角度。
(5)transform.localScale:指物体的缩放(三个轴都不为0,否则会消失)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值