脚本的响应事件与组件访问

物体与组件的开关

组件的 Enable/Disable
        就是控制物体上组件是否作用 可以通过 GetComponent<XXX>().enable = bool; 来控制组件的 Enable


物体的 Active/Inactive
        主要就是用来控制物体的显隐,也就是物体在编辑器内  Inspector 中的小对勾,通过 gameobject.SetActive(bool); 来控制,新手在这里一定要注意,如果物体是通过 Find 的方式得到的,那 SetActive(false) 后有可能就找不到物体了,这时可以通过定义 public 变量用拖拽的方式 或者 transform.find 的方式得到物体进行操作。通过gameObject.selfActive 可以获取到物体当前的显隐状态。


OnEnable、OnDisable、OnDestroy
        OnEnable():当对象变为可用或激活状态时该方法被调用
        OnDisable():当对象变为不可用或非激活状态时该方法被调用
        OnDestroy():当 MonoBehaviour 将被销毁时,这个方法被调用




Message 响应事件

启动与刷新方法:
        启动:
                Reset()
                Awake()
                Start()
        刷新:
                FixedUpdate()
                Update()
                LateUpdate()
交互方法:
        物理:
                OnTriggerEnter()
                OnTriggerExit()
                OnTriggerStay()
                OnCollisionEnter()
                OnCollisionExit()
                OnCollisionStay()
                OnControllerColliderHit()
                OnJointBreak()
                OnParticleCollision()
        输入:
                OnMouseEnter()
                OnMouseOver()
                OnMouseExit()
                OnMouseDown()
                OnMouseUp()
                OnMouseDrag()
                OnMouseUpAsButton()
        渲染:
                OnGui()
                OnDrawGizmos()
                OnDrawGizmosSelected()
                OnPreCull()
                OnPreRender()
                OnPostRender()
                OnRenderObject()
                OnWillRenderObject()
                OnRenderImage()
        对象:
                OnEnable()
                OnDisable()
                OnDestroy()
        场景:
                OnLevelWasLoaded()
        程序:
                OnApplicationPause()
                OnApplicationFocus()
                OnApplicationQuit()
        网络:
                OnPlayerConnected()
                OnServerInitialized()
                OnConnectedToServer()
                OnPlayerDisconnected()
                OnDisconnectedFromServer()
                OnFailedToConnect()
                OnFailedToConnectToMasterServer()
                OnMasterServerEvent()
                OnNetworkInstantiate()
                OnSerializeNetworkView()
        动画:
                OnAnimatorMove()
                OnAnimatorIK()
        声音:
                OnAudioFilterRead()




物理引擎与碰撞检测

                         
BoxCollider 是一个碰撞体,如果勾选了 Is Trigger 那么它就成为了一个碰撞检测体,即该 BoxCollider不会产生物理碰撞,会有检测物体是否碰撞的功能。
                               

Rigidbody 刚体,物体有了刚体便有了物理属性,比如重量、重力等等。负责进行物理运算。
Drag 阻尼系数
Use Gravity  是否受到重力影响
Is Kinematice  是否会被物理引擎驱动,勾选不会受到物理引擎驱动
InterPolate 计算插值
Collision Detection  碰撞检测频率
        - Discrate 不连续检测
        - Continuous 连续检测
        - Continuous Dynamic 动态连续检测


牛顿第二定律: F = M * A
冲量公式:I = F * T = M * V      T 为时间,即力将作用多久


ForceMode 里面有四种力分别是:
        Acceleration (加速度)
        Force(力)
        Impulse(冲量)
        VelocityChange


碰撞检测:
  未勾选 Trigger
        - Static Collider
        - Rigidbody Collider
        - Kinematic Rigidbody Collider
  勾选 Trigger
        - Static Trigger Collider
        - Rigidbody Trigger Collider
        - Kinematic Rigidbody Trigger Collider


去碰撞的一方也就是运动的一方如果要有碰撞效果是必须要有 rigidbody 的 而被碰撞的一方如果不需要检测碰撞是可以没有 rigidbody 的。


勾选Trigger
OnTrigger
        OnTriggerEnter()  当 Collider(碰撞体)进入 Trigger(触发器)时调用
        OnTriggerExit()  当 Collider(碰撞体)停止触发 Trigger(触发器)时调用
        OnTriggerStay()  当碰撞体接触触发器时,将在每一帧被调用


未勾选 Trigger

OnCllision
        OnCollisionEnter()  当此 Collider/rigidbody 触发另一个 rigidbody/collider 时被调用
        OnCollisionExit()  当此 Collider/rigidbody 停止触发另一个 rigidbody/collider 时被调用
        OnCollisionStay()  当此 Collider/rigidbody 停止触发另一个 rigidbody/collider 时,将会再每一帧被调用


Collision
        contacts:接触点,当两物体碰撞时候可以计算出接触点
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值