private void UnLock() { lockedOn = false; lockTarget.UnFreeze(); lockTarget = null; lockRealeased = Time.realtimeSinceStartup; angleLocked = false; }
private void HeadCollision() { Collider2D[] overLapping = { null, null, null, null, null }; Physics2D.OverlapCollider(headCollider, dangerousMask, overLapping); foreach (Collider2D obsticle in overLapping) { if (obsticle != null) { dangerousCollidable crashedObject = obsticle.GetComponent <dangerousCollidable>(); if (crashedObject == lockTarget) { UnLock(); } crashedObject.Hit(transform.position, velocity); } } }
private void attemptLock(string direction) { //TODO: Find nearest Objectin area Collider2D[] lockTargetColliders = { null, null, null }; EdgeCollider2D colliderLockDirection = direction == "Right" ? rightLockCollider : leftLockCollider; Physics2D.OverlapCollider(colliderLockDirection, dangerousMask, lockTargetColliders); foreach (Collider2D collider in lockTargetColliders) { if (collider != null) { dangerousCollidable target = collider.GetComponent <dangerousCollidable>(); if (target != null) { lockedOn = true; target.Freeze(); lockTarget = target; Debug.Log(target); maxLength = Vector3.Distance(transform.position, target.transform.position); return; } } } }