Exemplo n.º 1
0
        public Vector3 GetStartPosition(GameObject _object, Vector3 _offset)
        {
            if (_object == null)
            {
                return(Vector3.zero);
            }

            if (AttachedCollider == null)
            {
                AttachedCollider = GetComponent <BoxCollider>();
            }

            Vector3 _point = AttachedCollider.bounds.ClosestPoint(_object.transform.position);

            Vector3 _point_offset = PositionTools.FixInverseTransformPoint(AttachedCollider.transform, _point);

            Vector3 _size = AttachedCollider.size * 0.5f;

            _point_offset.z = (_point_offset.z < 0 ? _point_offset.z + _size.z: _point_offset.z - _size.z);
            _point_offset.x = (_point_offset.x < 0 ? _point_offset.x + _size.x : _point_offset.x - _size.x);

            _point_offset += ClimbingOffset + _offset;

            _point = PositionTools.FixTransformPoint(AttachedCollider.transform, _point_offset);

            _start_point = _point;

            return(_point);
        }