Skip to content

Instantly share code, notes, and snippets.

@WestHillApps
Last active January 1, 2016 15:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save WestHillApps/8163360 to your computer and use it in GitHub Desktop.
Save WestHillApps/8163360 to your computer and use it in GitHub Desktop.
Unity4.3のRigidBody2DでKinematicがONだと、トリガー系に反応しなくなるバグ回避用
using UnityEngine;
using System.Collections;
/// <summary>
/// Unity4.3のRigidBody2DでKinematicがONだと、トリガー系に反応しなくなるバグ回避用
/// このスクリプトが有効な間、KinematicがOFFでも強制的に物理移動しなくする
/// </summary>
[RequireComponent (typeof(Rigidbody2D))]
public class NonKinematic2D : MonoBehaviour
{
Transform myTransform;
Rigidbody2D myRigidBody2D;
Vector3 fixedPosition;
float orgGravityScale;
void Awake ()
{
#if !UNITY_4_3
// 4.3以降は直っているので使わない
rigidbody2D.isKinematic = true;
enabled = false;
return;
#endif
myRigidBody2D = rigidbody2D;
myRigidBody2D.isKinematic = false;
myTransform = transform;
fixedPosition = myTransform.localPosition;
}
void Update ()
{
myRigidBody2D.velocity = Vector3.zero;
myRigidBody2D.angularVelocity = 0;
myTransform.localPosition = fixedPosition;
}
void OnEnable ()
{
orgGravityScale = myRigidBody2D.gravityScale;
myRigidBody2D.gravityScale = 0f;
}
void OnDisable ()
{
myRigidBody2D.gravityScale = orgGravityScale;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment